Зачем вообще копаться в GGUF-файлах?
Если вы держите под рукой локальную модель, то наверняка сталкивались с ситуацией, когда вроде бы всё работает — но что-то не так. Модель генерирует сбивчиво, теряет нить диалога, а то и вовсе начинает «забывать» начало промпта. В случае с Mistral Medium 3.5 128B эта боль стала реальностью для многих, кто скачал GGUF-сборку от команды Unsloth раньше 28 апреля.
Какой баг сломали и как нашли
Ирония в том, что сама модель способна работать с контекстом до 1 млн токенов — это же заявлялось в оригинальном релизе. Но в GGUF-файлах, которые выкладывались на HuggingFace, критический параметр rope_scaling был прописан неверно. Фактически, при попытке подать на вход больше 32k токенов начиналась дикая деградация: модель «впадала в ступор», повторяла предложения и выдавала бессвязный поток слов.
Это та же проблема, что мы уже обсуждали в статье «Багрепорт: Mistral 4 в GGUF формате врет о контексте в 1 млн токенов» — только на этот раз Unsloth признали ошибку и оперативно выпустили патч.
Инженеры Unsloth пересобрали все квантизации (Q4_K_M, Q5_K_M, Q6_K и Q8_0) с корректными параметрами RoPE. Теперь реальный контекст работает на полную катушку — до 1M токенов, как и задумано. Кстати, сам факт, что модель размером 128B параметров удаётся запихнуть в GGUF и крутить локально — уже чудо. Но тот, кто пробовал запускать её на трёх GPU, оценит: без этого фикса происходило что-то похожее на ситуацию из «Mistral Vibe + Devstral2 Small: локальный монстр на 256k токенов и трех GPU», только в два раза больнее.
Что именно изменилось в файлах?
Если покопаться в диффе коммитов на HuggingFace, то заметно: исправлен блок tokenizer_config.json и config.json — прописано правильное значение rope_theta: 100000.0 и rope_scaling с типом linear и фактором 4.0. Звучит технически, но на практике это означает, что модель больше не «сходит с ума» после 30 тысяч токенов.
Проверить актуальность файлов можно по тегу v3-fix в названии папки репозитория Unsloth. Если вы скачивали до 27 апреля — у вас сломанная версия.
Занятно, что многие пользователи жаловались на «тупизну» модели при работе с большими документами — и списывали на то, что 128B слишком мала для сложных задач. А на самом деле тупил не мозг, а конфиг. Сколько ещё таких скрытых багов сидит в популярных сборках? Тут вспоминается недавний случай с Qwen3 Next в llama.cpp — там один пулл-реквест ускорил весь процесс на 30%.
Как обновить модель локально (без танцев с бубном)
Всё просто: идёте на страницу модели на HuggingFace (репозиторий unsoul/mistral-medium-3.5-128b-GGUF), скачиваете файлы с постфиксом v3-fix. Далее — перезаписываете старый GGUF в своей папке llama.cpp, Ollama или LM Studio. Если вы новичок, советую глянуть «Конвертация .pth в GGUF и настройка GPU в Ollama/LM Studio» — там всё разжёвано, но принцип тот же.
modelfile или параметры запуска, проверьте, что у вас не захардкожено rope_frequency_base — эта опция в старой версии могла перезаписать исправленный конфиг.А что с безопасностью? GGUF-файлы — мутная тема
Хорошо, что Unsloth — проверенная команда, и ошибка честно признана. Но мы же знаем, сколько «бинарных артефактов» гуляет по HuggingFace. Помните историю про GGUF-файлы на Hugging Face: как не скачать троян вместо модели? Проверяйте хеши и подписи, если модель от неизвестного автора.
Не повторяйте ошибок с кэшированием
Обновление файлов — это полдела. llama.cpp (особенно после недавних апдейтов) кэширует старые токены. Если после замены GGUF модель продолжает вести себя странно — очистите кэш. В противном случае вы нарвётесь на ситуацию из «Сломанные скрипты после обновления llama-server: как отключить миграцию кэша HuggingFace». Просто удалите папку ~/.cache/llama.cpp/hf или cache/ в вашей директории моделей.
Кстати, если вы тоже мучились с вызовами функций (tool calling) на Mistral Medium — возможно, баг не только в контексте. Вдохновляйтесь гайдом «Как исправить проблемы с Tool Calling у Qwen 2.5 27B»: подходы часто схожи, а архитектура Mistral это позволяет.
Что дальше?
Unsloth обещают перепроверить все свои крупные сборки на корректность конфигов. Надеюсь, это не последний такой фикс. Если у вас случались странности с другими квантизациями — пишите в комьюнити. Иногда баг прячется не в коде модели, а в сериализации. А мы пока ждём, когда кто-нибудь прикрутит к Mistral Medium 3.5 динамический RoPE — как в свежих сборках Qwen3 Next. И тогда 1M токенов будет не просто цифрой, а рабочим инструментом.