Все уроки · 44
Путь 3 · Дорожная карта AI-инженера·Урок 32 из 33

Fine-tuning: когда он действительно нужен

Что такое fine-tuning по сути, почему он нужен позже, чем принято думать, как он соотносится с промптингом и RAG, сколько стоит и какие более дешёвые варианты стоит попробовать раньше.

УровеньСреднийВремя~10 мин

Прочитайте сначала: 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 делает дешевле то, что уже хорошо работает.

Путь принятия решения

Идите по этим ступеням по порядку и останавливайтесь на первой, которая решает вашу проблему. Большинство команд дальше второй не заходят:

Промптинг → RAG → fine-tuning: остановитесь на первой ступени, которая работает
→→→→
1. Доработайте промпт

Перепишите инструкции, добавьте структуру, добавьте ограничения.

Самое дешёвое решение, которое часто срабатывает. Если качество подскочило — СТОП. Вы закончили; продолжайте улучшать на этом же уровне.

out› затраты: часы
1/5

Сколько это стоит

В счёте три части, и видна только первая:

  • Деньги — обучение обходится от нескольких долларов (небольшие открытые модели на ваших данных) до тысяч (флагманские модели, большие наборы данных). Обучение оплачивается за токены, поэтому небольшие эксперименты стоят дёшево; ловушка — в наборе данных.
  • Данные — нужны сотни или тысячи качественных пар «вход — выход». Собрать, очистить и отобрать их — это недели работы, и обычно именно здесь настоящие затраты.
  • Усилия, которые не заканчиваются — дообученную модель нужно поддерживать как отдельную версию: переобучать при обновлениях у провайдера, заново гонять оценки, следить за дрейфом. У промптов такого хвоста поддержки нет.

Одну альтернативу полезно знать по названию: дистилляция — большая модель генерирует обучающие данные для маленькой. Так многие команды получают дешёвую, быструю, специализированную модель, не сочиняя вручную тысячи примеров. Стоит почитать о ней, когда fine-tuning начинает казаться привлекательным.

Попробуйте: трезвый аудит перед обучением

Отдайте это своему агенту или вставьте в чат вместе с текущим промптом. Льстить вам ответ не будет:

Скопируйте этот промпт: нужен ли мне fine-tuning на самом деле?
Вот мой текущий промпт и описание того, что делает моя функция на LLM. Я думаю
о fine-tuning. Отнесись к этому скептически и отговори меня, если это ошибка.

МОЙ ПРОМПТ:
[ВСТАВЬТЕ СВОЙ ПРОМПТ]

ЧТО ОН ДЕЛАЕТ:
[один абзац: что это за функция и примерно сколько запросов в день]

ЧТО МЕНЯ НЕ УСТРАИВАЕТ:
[слишком медленно / слишком дорого / неверный формат / неверные факты / непоследовательный тон]

Отвечай в таком порядке:
1. Чего не хватает моей функции: ЗНАНИЙ или правильного ПОВЕДЕНИЯ? Скажи, чего
 именно, и процитируй строку моего промпта, из-за которой ты так думаешь. Если
 дело в знаниях, остановись и скажи, что вместо этого нужно положить в хранилище
 для поиска.
2. Сколько токенов в моём промпте и сколько из них — примеры, которые никогда не
 меняются? Если это число небольшое, прямо скажи, что fine-tuning пока не стоит
 усилий.
3. Есть ли у меня сотни реальных, проверенных пар «вход — выход»? Если нет, скажи,
 что потребуется, чтобы их собрать.
4. Вынеси вердикт: пока нет / возможно / да — и назови ОДНУ вещь, с которой мне
 стоит начать вместо этого.

Не говори, что fine-tuning — хорошая идея, только потому, что я о нём спрашиваю.

Проверьте себя

Проверьте себя

Ваш ассистент даёт неверные ответы о продукте, потому что никогда не видел вашу документацию. Что делать?

Когда fine-tuning — правильный ход?

Что обычно составляет главную стоимость fine-tuning?

Как понять, что дообученная модель себя оправдала?

Что унести с собой

Прежде чем тратить неделю на обучающие данные, пройдите по лестнице по порядку и остановитесь на первой ступени, которая решает проблему:

  1. Перепишите промпт. Часы. Срабатывает чаще, чем кто-либо ожидает.
  2. Добавьте поиск, если проблема в фактах. Дни. Большинство команд останавливаются здесь — навсегда и вполне довольны.
  3. Попробуйте few-shot — пять решённых примеров в промпте — прежде чем платить за обучение.
  4. Дообучайте только тогда, когда поведение уже правильное, а промпт, который его обеспечивает, стал огромным, медленным и дорогим при большом масштабе. Присмотритесь к LoRA, чтобы счёт оставался небольшим.
  5. Докажите оценками. Тот же золотой набор, те же оценки: дообученная модель должна обойти версию на промптах. Если не обходит, вы купили поддержку впустую.

Одна фраза, которую стоит запомнить: fine-tuning удешевляет то, что уже работает, и не чинит то, что сломано.