Своя модель

Когда дообучение не нужно: сначала прочитайте это

Большинству людей, которые собрались дообучать модель, нужен не fine-tune, а промпт, RAG или модель побольше. Пять признаков, по которым это видно заранее, и таблица «симптом — правильный инструмент».

Человек читает про LoRA, видит, что порог входа упал, и решает: «дообучу модель под себя». Дальше он тратит неделю на сбор датасета, вечер на установку зависимостей, ещё день на то, чтобы понять, почему обучение падает с ошибкой про версию библиотеки, — и получает модель, которая отвечает примерно как раньше, только хуже держит темы, которых не было в его данных.

Это не редкий исход. Это типичный исход, когда инструмент выбран до постановки задачи.

#Короткий ответ

Большинству тех, кто думает, что им нужно дообучение, нужен другой инструмент: системный промпт, поиск по своим документам (RAG) или базовая модель побольше. Дообучение решает ровно одну задачу хорошо — устойчиво сдвинуть манеру ответа: тон, формат, длину, степень прямоты. Всё остальное — знания, свежие факты, доступ к вашим файлам, качество рассуждений — оно решает плохо, дорого или вообще не решает.

Правило, которое стоит применить до того, как вы откроете терминал:

Если задачу можно сформулировать словами в системном промпте и проверить за десять минут — дообучение вам не нужно. Если её решает подстановка вашего документа в контекст — тем более.

#Пять признаков, что дообучение будет потерей недели

Проверьте свою задачу по списку. Совпал хотя бы один пункт — начинайте не с обучения.

  1. Вы хотите, чтобы модель «знала» ваши документы. Дообучение не является способом загрузить в модель базу знаний. Веса — плохое хранилище фактов: они не обновляются точечно, из них нельзя удалить один факт, и модель начинает уверенно путать похожие записи. Нужен поиск по документам с подстановкой в контекст; разбор различий — в статье RAG или fine-tune: что выбрать.
  2. Вы хотите, чтобы модель стала умнее. Способность рассуждать закладывается на этапе предобучения базовой модели. LoRA на нескольких сотнях примеров её не добавляет — и при неаккуратных настройках отбирает. Если нужен более сильный интеллект, меняется база, а не количество эпох.
  3. Вы ещё ни разу не переписывали системный промпт. Это первый и самый дешёвый рычаг. Пока вы не попробовали внятную инструкцию с примерами желаемого ответа, вы не знаете, чего не хватает. Что в неё писать и чего не писать — в отдельном разборе системного промпта для личного ИИ.
  4. У вас меньше сотни примеров, которые вы готовы назвать эталонными. Не «сохранённых диалогов», а именно ответов, которые вы перечитали и подтвердили. Сколько нужно под разные цели — в статье сколько примеров нужно для дообучения.
  5. Вам нужен результат в ближайшие дни. Дообучение — итеративный цикл: собрать, обучить, проверить, найти брак, доработать данные, обучить снова. Первая попытка почти никогда не последняя, и это не пессимизм, а нормальный режим работы.

#Таблица: симптом и правильный инструмент

Слева — как задачу обычно формулируют вслух. Справа — что на самом деле её закрывает.

Что вы хотите Что реально нужно Почему не fine-tune
«Пусть отвечает короче и по делу» Системный промпт Меняется одной строкой, проверяется сразу
«Пусть знает мои проекты и заметки» Поиск по документам (RAG) Веса не обновляются точечно, факт из них не удалить
«Пусть не выдумывает цифры» RAG + требование ссылки на источник Дообучение усиливает уверенность, а не точность
«Пусть решает сложные задачи» База побольше или рассуждающая модель Интеллект приходит из предобучения
«Пусть говорит на моём жаргоне» Промпт со словарём терминов Работает, пока терминов десятки, а не сотни
«Пусть звучит как я, всегда, без напоминаний» Дообучение Единственный случай, где оно оправдано
«Пусть выдаёт строгий JSON» Ограниченная генерация или промпт с примерами Дообучение под формат работает, но это стрельба из пушки

Вывод из таблицы: единственная строка, где дообучение — правильный ответ, это устойчивый личный стиль. Всё остальное закрывается инструментами, которые дешевле в разы и проверяются за вечер.

#Почему промпт проигрывает не так часто, как кажется

Главный аргумент против промпта звучит так: «инструкции раздувают контекст, и модель про них забывает». Это верное наблюдение, но у него есть граница.

Промпт действительно перестаёт держать поведение, когда: инструкция разрослась до полутора-двух тысяч токенов и начинает конфликтовать сама с собой; нужное поведение должно проявляться в каждом ответе на протяжении длинного диалога; или модель слишком мала, чтобы удерживать много одновременных требований. Компактная модель на пару миллиардов параметров обычно выполняет две-три инструкции из семи — и вот здесь дообучение начинает окупаться.

Но если у вас модель среднего размера и промпт на двести токенов, который вы ни разу не дорабатывали после первой версии, — упирается не промпт, а его качество.

#Сколько стоит ошибиться с выбором

Дообучение не бесплатно, даже когда видеокарта своя. Считать надо не только машинное время:

  • Сбор и вычитка датасета. Это ручная работа, и её нельзя делегировать модели, ради стиля которой вы всё затеяли.
  • Настройка окружения. Тяжёлые пакеты, версии, совместимость с вашей картой. Один вечер в лучшем случае.
  • Неудачные запуски. Первый прогон почти всегда либо переобучен, либо не сдвинул стиль. Как это считать в деньгах при аренде — в разборе стоимости аренды видеокарты для дообучения.
  • Проверка результата. Без слепого сравнения с базовой моделью вы не узнаете, стало лучше или вам так кажется.

Для сравнения: переписать системный промпт и проверить его на десяти своих вопросах — это тридцать-сорок минут, и результат виден сразу.

#Где интуиция подводит

Заблуждение первое: «дообучу — и не придётся писать длинные промпты». Отчасти да, но системный промпт после дообучения никуда не девается: в нашем собственном пайплайне «второй копии» модель после обучения всё равно запускается с SYSTEM-блоком, который задаёт тот же характер. Обучение закрепляет поведение, промпт его называет; работают они вместе.

Заблуждение второе: «мои данные уникальны, значит, дообучение обязательно». Уникальность данных — это аргумент за поиск по ним, а не за вшивание их в веса. Уникальный стиль — аргумент за дообучение. Разница между «у меня особые данные» и «у меня особая манера» решает всё.

Заблуждение третье: «раз оно у меня уже собирается автоматически, надо использовать». Накопленный датасет — не повод обучать. Он повод сначала посмотреть, что в нём: если это в основном ответы облачной модели, которые вам понравились на первый взгляд, вы обучите компактную модель имитировать чужую манеру, а не свою.

Заблуждение четвёртое: «сначала обучу, потом посмотрю». Обратный порядок дешевле: зафиксируйте десять вопросов и свои эталонные ответы на них, прогоните на базовой модели с промптом, и вы получите точную картину разрыва. Если разрыв в тоне — обучение поможет. Если в фактах или в логике — не поможет.

#Что делать вместо дообучения: порядок действий

  1. Напишите нормальный системный промпт — с двумя-тремя примерами желаемого ответа прямо в тексте. Проверьте на десяти своих задачах.
  2. Подключите поиск по своим документам, если вопросы касаются ваших материалов.
  3. Смените базовую модель на более крупную и повторите шаг 1. Часто на этом всё и заканчивается.
  4. Соберите разрыв в письменном виде: что именно в ответах вас не устраивает после шагов 1–3. Если формулировки получаются вида «слишком вежливо», «слишком длинно», «не так расставляет акценты» — вот теперь дообучение оправдано, и маршрут описан в статье про свою модель и дообучение.

#Частые вопросы

#Как понять, что дообучение мне всё-таки нужно?

По одному признаку: вы можете назвать, чем ответ модели отличается от вашего, но не можете сформулировать это инструкцией так, чтобы модель выполняла её стабильно. Это и есть зона дообучения — устойчивое поведение, которое плохо описывается словами. Если разрыв формулируется одной фразой и модель ей следует — вам хватило промпта.

#Можно ли совмещать дообучение и поиск по документам?

Да, и это самая разумная комбинация: дообучение задаёт манеру, поиск поставляет факты. Они не конкуренты и работают на разных уровнях. Ошибка — пытаться закрыть фактическую часть дообучением, а стилевую промптом; получается наоборот дороже и хуже.

#Дообучение уменьшит галлюцинации?

Скорее наоборот. Обучение на небольшом наборе своих примеров делает модель увереннее в своей манере, но не точнее в фактах, и уверенная неправда читается убедительнее неуверенной. Против выдумок работает подстановка проверяемых источников, а не изменение весов.

#Стоит ли дообучать, если модель просто плохо говорит по-русски?

Нет. Качество языка — свойство базовой модели и её словаря; небольшим адаптером его не починить, а попытка обычно ломает то, что работало. Правильный ход — выбрать базу, у которой русский был в предобучении в достаточном объёме.

#Я всё равно хочу попробовать ради интереса. Это плохо?

Нет, если вы честно называете цель «научиться», а не «решить задачу». В учебном режиме берите самую маленькую базу и пару сотен примеров: цикл будет быстрым, и вы увидите весь механизм. Плохо — когда рабочая задача горит, а вы вместо неё осваиваете обучение.

#Вывод

Дообучение — узкий инструмент с высокой ценой входа. Оно оправдано, когда вам нужен устойчивый личный стиль и вы уже упёрлись в потолок промпта. Если задача про знания, про свежие факты, про доступ к файлам или про «пусть будет умнее» — вы возьмёте не тот инструмент и потеряете неделю.

Проверка занимает вечер: напишите промпт, подключите поиск по документам, попробуйте базу побольше. Если после этого вы всё ещё можете назвать разрыв — обучайте. Если разрыв исчез — вы только что сэкономили себе неделю.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт