Обновление модели ощущается как безобидное действие: одна команда, скачались новые веса, продолжаем работать. Через неделю выясняется, что она стала хуже держать формат ответа, чаще отвечает по-английски или перестала слушаться системного промпта — и вернуться уже некуда, старые веса удалены.
Проблема в том, что к модели относятся как к приложению, которое обновляют не глядя. А относиться к ней надо как к зависимости в проекте: с зафиксированной версией, копией предыдущей и приёмочной проверкой перед переключением.
#Что понадобится
- Установленный инструмент запуска и работающая модель. Базовый маршрут — в гайде по запуску моделей через Ollama.
- Свободное место на две версии модели одновременно. Это цена возможности откатиться.
- Набор из пяти-десяти своих задач с известным хорошим результатом. Без него проверять нечего.
#Почему обновление вообще может навредить
Три причины, и все встречаются на практике.
Плавающий тег. Короткое имя модели указывает на «последнюю» версию, и то, на что оно указывает, меняется. Сегодня за ним один файл, через месяц — другой, собранный иначе.
Изменение уровня квантизации или шаблона. Публикатор пересобрал сборку: другой квант по умолчанию, обновлённый шаблон чата, другие стоп-последовательности. Веса те же, поведение другое.
Настоящая смена версии модели. Новая версия обычно лучше в среднем и почти всегда иначе ведёт себя в частностях. «Лучше по бенчмаркам» и «лучше на ваших задачах» — разные утверждения.
#Регламент из пяти шагов
#Шаг 1. Зафиксировать текущее состояние
Прежде чем что-либо качать, запишите, что у вас работает:
ollama list
ollama show qwen2.5:7b
ollama show --modelfile qwen2.5:7b > backup-modelfile.txt
Из первой команды нужен идентификатор — он однозначно определяет содержимое, в отличие от имени. Из второй — фактические параметры. Третья сохраняет конфигурацию, включая шаблон и системный промпт.
Отдельно запишите результаты приёмочного набора на текущей версии. Без этой записи сравнивать будет не с чем: память о том, «как оно отвечало раньше», ненадёжна.
#Шаг 2. Сделать копию
ollama cp qwen2.5:7b qwen2.5-7b-known-good
Копия ссылается на те же данные и почти не занимает места, но переживает обновление исходного тега. Это ваш путь назад.
#Шаг 3. Обновлять в стороне, а не поверх
Скачивайте новую версию под другим именем или проверяйте её до переключения рабочих настроек. Правило простое: пока новая версия не прошла проверку, рабочим остаётся старое имя.
Если вы используете свой пресет с параметрами, соберите его заново на новой базе — и не удаляйте прежний. Порядок работы с пресетами — в гайде по Modelfile в Ollama.
#Шаг 4. Прогнать приёмочную проверку
Чек-лист ниже — минимальный. Прогоняется на новой версии, результаты сравниваются с записанными на шаге 1.
- Язык ответа. Заданный по-русски вопрос получает ответ по-русски, без сваливания на английский.
- Следование системному промпту. Указание формата и роли соблюдается.
- Формат вывода. Если вы просите список, таблицу или JSON — приходит именно это.
- Отказ выдумывать. На вопрос о заведомо несуществующем предмете модель говорит, что не знает, а не сочиняет.
- Длина ответа. Просьба ответить кратко даёт краткий ответ.
- Работа с контекстом. После десяти сообщений модель помнит содержание первого.
- Ваша профильная задача. Та, ради которой вы вообще держите локальную модель, — на реальном примере.
- Скорость. Замер по прежней методике: новая версия может иметь другой размер или квант.
- Расход памяти. Проверьте, что модель по-прежнему помещается с нужным контекстом.
Развёрнутая методика построения такого набора — в материале о том, как тестировать модель на своих задачах. Если речь о дообученной вами модели, критерии строже и описаны отдельно в материале о том, как оценить дообученную модель.
#Шаг 5. Переключиться или откатиться
Прошло — переключайте рабочее имя на новую версию и держите старую копию ещё неделю. Не прошло — удаляйте новую, оставайтесь на прежней:
ollama rm qwen2.5:7b
ollama cp qwen2.5-7b-known-good qwen2.5:7b
Копия сохранена на шаге 2 именно для этого момента.
#Проверка результата
Обновление считается успешным, если выполняются три условия. Первое: приёмочный набор пройден не хуже, чем на прежней версии, — не «в целом нормально», а по пунктам. Второе: модель по-прежнему помещается в память с рабочим контекстом. Третье: у вас на диске всё ещё лежит предыдущая версия, к которой можно вернуться.
Третье условие нарушают чаще всего, и обнаруживается это через неделю, когда возвращаться уже некуда.
#Что может пойти не так
Обновление удалило старую версию. Скачивание по тому же тегу заменяет содержимое. Копия, сделанная заранее, — единственная защита.
Модель перестала помещаться в память. Новая сборка может быть тяжелее: другой уровень квантизации по умолчанию, изменившийся размер словаря. Проверьте фактический размер и при необходимости возьмите более лёгкий вариант.
Сломалось поведение в стороннем приложении. Если вы использовали свой пресет, он остался на старой базе или собрался заново с потерей шаблона. Пересоберите пресет, начав с вывода текущей конфигурации.
«По бенчмаркам лучше, а у меня хуже». Нормальная ситуация. Публичные замеры описывают средний результат на чужих задачах. Ваш приёмочный набор важнее любого рейтинга.
Обновился инструмент, а не модель, и что-то изменилось. Такое тоже бывает: изменения умолчаний в движке влияют на поведение при неизменных весах. Фиксируйте в записи и версию инструмента.
#Частые вопросы
#Нужно ли обновлять модели вообще?
Не по расписанию, а по поводу: вышла версия с нужным вам улучшением, или текущая перестала устраивать на конкретной задаче. Работающая модель, которая вас устраивает, не требует обновления сама по себе.
#Как закрепить конкретную версию?
Используйте максимально явный тег вместо короткого имени и запишите идентификатор, который выдаёт список моделей. Идентификатор — единственное надёжное указание на содержимое: теги может переназначить публикатор.
#Сколько версий держать?
Две: рабочую и предыдущую известную хорошую. Больше обычно не нужно, а место они занимают гигабайтами.
#Что делать, если новая версия лучше в одном и хуже в другом?
Держать обе и использовать под разные задачи — это нормальный сценарий, а не компромисс. Именно поэтому пресеты создаются по имени, а не поверх единственной модели.
#Как выбрать, на какую модель переходить?
Не по свежести, а по соответствию задаче: язык, размер, лицензия, требования к памяти. Критерии разобраны в материале о том, какую модель выбрать.