Все уроки · 44
Fine-tuning: когда он действительно нужен
Что такое fine-tuning по сути, почему он нужен позже, чем принято думать, как он соотносится с промптингом и RAG, сколько стоит и какие более дешёвые варианты стоит попробовать раньше.
Прочитайте сначала: fine-tuning вам, скорее всего, не нужен
Если вы попали сюда потому, что ваша функция на LLM пока недостаточно хороша, то решение почти наверняка — промптинг или RAG. Fine-tuning — последняя ступенька лестницы: он съедает недели на отбор данных, добавляет версию модели, которую придётся поддерживать вечно, и не лечит нехватку знаний. Возвращайтесь к этому уроку, когда ваш промпт уже работает — и вырос настолько, что отправлять его каждый раз накладно и медленно.
Почему это важно
Fine-tuning — самый эффектный инструмент AI-инженерии и тот, который чаще всего применяют не по делу. Если знать, когда его делать не нужно, это сбережёт вам недели. Fine-tuning меняет то, как модель себя ведёт, а не то, что она знает, — он удешевляет то, что уже работает. Если вы здесь, потому что ваша функция работает плохо, вы не на той ступеньке.
Что такое fine-tuning на самом деле
Fine-tuning (дообучение) — это продолжение обучения уже предобученной модели на ваших собственных примерах: её веса смещаются в сторону вашей задачи. После этого модели больше не нужны ваши примеры в промпте: поведение уже «зашито» в неё. Так модель усваивает определённый стиль поведения: формат вывода, тон, лаконичный профессиональный жаргон, единообразную структуру.
Частая путаница: fine-tuning — плохой способ добавить знания. Модели, дообученные на ваших документах поддержки, всё равно будут выдумывать детали о продукте: веса — это хранилище фактов с потерями. Знания должны жить в RAG, а поведение — в весах.
Слова, которые вы встретите
| Слово | Что оно значит здесь |
|---|---|
| Веса (weights) | Миллиарды чисел внутри модели, которые определяют, как она себя ведёт. Fine-tuning слегка подправляет их. |
| Предобученная модель (pretrained model) | Модель, уже обученная на огромном объёме текста. Вы начинаете с неё вместо обучения с нуля. |
| Fine-tuning (дообучение) | Дополнительное обучение на ваших примерах, чтобы поведение стало встроенным и его не приходилось объяснять заново в каждом промпте. |
| RAG | Поиск: документы ищутся в момент запроса, а найденные факты кладутся в промпт. Это инструмент для знаний; поведение модели он не меняет. |
| LoRA | Дешёвая разновидность fine-tuning: вместо обновления всех весов обучается небольшой дополнительный слой. Часы вместо дней, и его можно подключать и отключать. |
| Дистилляция (distillation) | Большая модель генерирует обучающие примеры для маленькой — короткий путь к дешёвой специализированной модели. |
| Дрейф (drift) | Ваша дообученная модель незаметно ухудшается, когда меняются мир, ваши данные или базовая модель. |
| Бенчмарк (benchmark) | Стандартный публичный экзамен для моделей. Полезен для сравнения моделей и почти бесполезен для оценки вашей собственной функции. |
Промптинг, RAG и fine-tuning: сравнение
Эти три подхода решают разные задачи:
| Промптинг | RAG | Fine-tuning | |
|---|---|---|---|
| Что меняет | Что вы спрашиваете — в этот раз | Что модель видит | Как модель себя ведёт |
| Подходит для | Формата, тона, ограничений | Недостающих, закрытых или меняющихся фактов | Стабильного стиля при больших объёмах |
| Стоимость | Минуты | Дни | Недели плюс набор данных |
| Обратимо? | Мгновенно | Мгновенно | Нет — теперь вы поддерживаете версию модели |
| Устаревает? | Нет | Нет — документы перечитываются | Да: при изменениях нужно дообучать заново |
Почему он нужен позже, чем вы думаете
Почти каждая команда хватается за fine-tuning слишком рано, потому что он звучит как «настоящее» инженерное решение. На практике на лестнице усложнения перед ним стоят другие ступеньки:
- Улучшенные промпты — более чёткие инструкции, примеры, структура вывода. Решают куда больше случаев вида «модель не умеет X», чем принято думать.
- Few-shot-промптинг — положите в промпт 3–5 решённых примеров. Fine-tuning для бедных: стоит токенов, но ничего не меняет навсегда.
- RAG — если проблема в недостающих или закрытых знаниях, поиск всегда выигрывает у дообучения.
- Fine-tuning — только когда поведение уже правильное, но его досадно дорого или медленно выражать промптами. Например, промпт раздулся до тысяч токенов из одних лишь примеров, а задержка и стоимость становятся болезненными при большом масштабе.
Практическое правило
Если вы не можете добиться нужного результата промптами и RAG, вы не готовы к fine-tuning: скорее всего, вы ещё не понимаете, чего хотите. Команды, у которых fine-tuning получается, почти всегда берутся за него после месяцев итераций над промптом, когда у них уже есть набор данных из трейсов реальной эксплуатации и золотой набор, собранный для оценок. Дисциплина оценки из этого раздела — необходимое условие.
Одной фразой: fine-tuning делает дешевле то, что уже хорошо работает.
Путь принятия решения
Идите по этим ступеням по порядку и останавливайтесь на первой, которая решает вашу проблему. Большинство команд дальше второй не заходят:
Перепишите инструкции, добавьте структуру, добавьте ограничения.
Самое дешёвое решение, которое часто срабатывает. Если качество подскочило — СТОП. Вы закончили; продолжайте улучшать на этом же уровне.
Сколько это стоит
В счёте три части, и видна только первая:
- Деньги — обучение обходится от нескольких долларов (небольшие открытые модели на ваших данных) до тысяч (флагманские модели, большие наборы данных). Обучение оплачивается за токены, поэтому небольшие эксперименты стоят дёшево; ловушка — в наборе данных.
- Данные — нужны сотни или тысячи качественных пар «вход — выход». Собрать, очистить и отобрать их — это недели работы, и обычно именно здесь настоящие затраты.
- Усилия, которые не заканчиваются — дообученную модель нужно поддерживать как отдельную версию: переобучать при обновлениях у провайдера, заново гонять оценки, следить за дрейфом. У промптов такого хвоста поддержки нет.
Одну альтернативу полезно знать по названию: дистилляция — большая модель генерирует обучающие данные для маленькой. Так многие команды получают дешёвую, быструю, специализированную модель, не сочиняя вручную тысячи примеров. Стоит почитать о ней, когда fine-tuning начинает казаться привлекательным.
Попробуйте: трезвый аудит перед обучением
Отдайте это своему агенту или вставьте в чат вместе с текущим промптом. Льстить вам ответ не будет:
Вот мой текущий промпт и описание того, что делает моя функция на LLM. Я думаю
о fine-tuning. Отнесись к этому скептически и отговори меня, если это ошибка.
МОЙ ПРОМПТ:
[ВСТАВЬТЕ СВОЙ ПРОМПТ]
ЧТО ОН ДЕЛАЕТ:
[один абзац: что это за функция и примерно сколько запросов в день]
ЧТО МЕНЯ НЕ УСТРАИВАЕТ:
[слишком медленно / слишком дорого / неверный формат / неверные факты / непоследовательный тон]
Отвечай в таком порядке:
1. Чего не хватает моей функции: ЗНАНИЙ или правильного ПОВЕДЕНИЯ? Скажи, чего
именно, и процитируй строку моего промпта, из-за которой ты так думаешь. Если
дело в знаниях, остановись и скажи, что вместо этого нужно положить в хранилище
для поиска.
2. Сколько токенов в моём промпте и сколько из них — примеры, которые никогда не
меняются? Если это число небольшое, прямо скажи, что fine-tuning пока не стоит
усилий.
3. Есть ли у меня сотни реальных, проверенных пар «вход — выход»? Если нет, скажи,
что потребуется, чтобы их собрать.
4. Вынеси вердикт: пока нет / возможно / да — и назови ОДНУ вещь, с которой мне
стоит начать вместо этого.
Не говори, что fine-tuning — хорошая идея, только потому, что я о нём спрашиваю.Проверьте себя
Ваш ассистент даёт неверные ответы о продукте, потому что никогда не видел вашу документацию. Что делать?
Когда fine-tuning — правильный ход?
Что обычно составляет главную стоимость fine-tuning?
Как понять, что дообученная модель себя оправдала?
Что унести с собой
Прежде чем тратить неделю на обучающие данные, пройдите по лестнице по порядку и остановитесь на первой ступени, которая решает проблему:
- Перепишите промпт. Часы. Срабатывает чаще, чем кто-либо ожидает.
- Добавьте поиск, если проблема в фактах. Дни. Большинство команд останавливаются здесь — навсегда и вполне довольны.
- Попробуйте few-shot — пять решённых примеров в промпте — прежде чем платить за обучение.
- Дообучайте только тогда, когда поведение уже правильное, а промпт, который его обеспечивает, стал огромным, медленным и дорогим при большом масштабе. Присмотритесь к LoRA, чтобы счёт оставался небольшим.
- Докажите оценками. Тот же золотой набор, те же оценки: дообученная модель должна обойти версию на промптах. Если не обходит, вы купили поддержку впустую.
Одна фраза, которую стоит запомнить: fine-tuning удешевляет то, что уже работает, и не чинит то, что сломано.