Fine-tuning - не загрузка базы знаний в модель

В fine-tuning базовая модель дополнительно обучается на примерах входа и желаемого ответа, чтобы чаще воспроизводить нужное поведение. Это отличается от RAG, где актуальные документы извлекаются во время запроса и передаются как контекст.

Если цены, регламенты или каталог меняются каждую неделю, переобучение неудобно и не даёт удобной ссылки на источник. Если задача - стабильно классифицировать обращения в закрытую taxonomy или соблюдать особый формат, tuning может быть кандидатом.

1
измеримая ошибка до выбора метода
4
базовых рычага: prompt, RAG, tools, tuning
0
обучений без отдельного test set

Сначала диагностируйте тип ошибки

ПроблемаПервый кандидатПочему
Неясный формат результатаPrompt + JSON SchemaКонтракт можно задать явно
Не знает свежий документRAGФакт приходит во время запроса
Нужен точный расчёт или действиеTool/APIДетерминированная система надёжнее
Нестабильная узкая классификацияPrompt baseline, затем tuningПоведение можно обучить на примерах
Недостаточно общих способностейБолее подходящая base modelTuning не создаёт гарантированно новый фундамент

Матрица: prompt engineering, RAG, tools и fine-tuning

ПодходЛучше всего решаетГлавное ограничение
PromptИнструкции, формат, few-shotДлинный prompt и вариативность
RAGАктуальные частные знания и citationsКачество retrieval и контекста
ToolsДействия, расчёты, live dataСхемы, права и ошибки интеграции
Fine-tuningПовторяемое поведение и доменный паттернДанные, lifecycle и новая model version
КомбинацияСложный production workflowБольше компонентов для eval и monitoring

Подходы не взаимоисключающие. Tuned model может использовать RAG и tools, но каждый слой должен давать измеримую пользу.

Дерево решения: нужен ли fine-tuning

Decision tree
  1. Есть ли точный критерий успешного ответа? Если нет - определить.
  2. Есть ли eval-набор? Если нет - собрать до обучения.
  3. Решает ли задача подходящая base model с ясным prompt?
  4. Нужны ли свежие факты? Добавить retrieval или tool.
  5. Нужен ли точный формат? Добавить schema и validator.
  6. Остаётся ли повторяемая поведенческая ошибка?
  7. Есть ли качественные разрешённые примеры этой ошибки?
  8. Достаточен ли объём и разнообразие для train и test?
  9. Окупятся ли training, inference и обслуживание?
  10. Поддерживает ли tuning выбранная актуальная платформа?

Когда fine-tuning чаще всего оправдан

Сильные кандидаты имеют узкий стабильный контракт, много повторяемых запросов и понятную разметку. Примеры: классификация в корпоративную taxonomy, извлечение полей из устойчивого семейства документов, специфический стиль при строгих ограничениях, преобразование между фиксированными форматами.

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

Один контракт на большом потоке.

Разметка

Можно проверить правильный результат.

Экономика

Польза масштабируется на inference.

Когда fine-tuning лучше отложить

  • Требования к результату ещё меняются каждую неделю.
  • Нет размеченного eval-набора и владельца качества.
  • Основная проблема - отсутствие свежих документов.
  • Ошибки вызваны плохим OCR, retrieval или tool API.
  • Есть несколько десятков противоречивых примеров.
  • Данные нельзя законно или договорно использовать для обучения.
  • Base model скоро выводится из эксплуатации.
  • Сценарий низкочастотный и не окупает обслуживание.
  • Ожидается гарантированная истинность всех фактов.

Обучение может закрепить ошибки датасета и скрыть неопределённость за более уверенным стилем.

Baseline до обучения: дайте простой системе честный шанс

Выберите подходящую стабильную base model, сформулируйте контракт, добавьте few-shot examples и structured output. Для знаний подключите минимальный RAG. Измерьте качество, latency, токены, ручные исправления и стоимость успешной задачи.

Сценарий: [название]
Success criteria: [метрики]
Critical errors: [список]
Base model/version: [ID]
Prompt/schema/retrieval versions: [ID]
Eval dataset/version: [ID]
Quality by cohort: [данные]
P50/P95 latency: [данные]
Cost per successful task: [данные]
Top failure clusters: [список]
Гипотеза tuning: какой именно failure cluster должен уменьшиться и почему?

Данные для обучения: качество важнее случайного объёма

Training example показывает не только ответ, но и скрытую policy разметчика. Противоречивые примеры учат нестабильности. Создайте annotation guide с критериями, допустимым отказом и обработкой неоднозначности.

Dataset record
  1. Уникальный example ID и source provenance.
  2. Разрешение и data classification.
  3. Вход в production-подобном формате.
  4. Проверенный целевой ответ.
  5. Labeler и review status.
  6. Класс сложности и cohort.
  7. Причина включения.
  8. Связь с error taxonomy.
  9. Версия annotation guide.
  10. Дата и deletion policy.

Train, validation и test: разделите до экспериментов

Test set используется для итогового сравнения и не должен направлять каждую правку. Validation помогает выбирать конфигурацию. Train используется для обучения. Разделение делайте так, чтобы почти одинаковые записи одного клиента, документа или цепочки не оказались в разных частях.

SplitНазначениеГлавный запрет
TrainОбновление моделиСкрытые запрещённые данные
ValidationВыбор гиперпараметров/версииПодгонять бесконечно
TestФинальная независимая оценкаИспользовать как train feedback
ChallengeРедкие риски и adversarial casesСмешивать со средним score

Data leakage и дубли: почему метрика может обмануть

Если шаблон того же документа встречается в train и test, результат завышен. Точные дубли легко найти hash, смысловые - embeddings или domain keys. Группируйте split по источнику, клиенту, времени или сущности.

  • Удалите exact и near duplicates.
  • Исключите ответы, скопированные из test benchmark.
  • Проверьте, не содержит prompt правильную метку.
  • Сделайте temporal holdout для меняющихся процессов.
  • Храните immutable manifest split.
  • Не выбирайте «лучший» test subset после результатов.

Права, персональные данные и memorization risk

Данные, допустимые для обычной обработки, не обязательно разрешено использовать для обучения. Проверьте purpose, договоры, лицензии, retention и механизм удаления. Минимизируйте персональные и секретные значения.

Data approval
  1. Источник и право использования задокументированы.
  2. Удалены credentials и ненужные identifiers.
  3. Клиентские данные не смешаны без разрешения.
  4. Есть owner, access control и audit.
  5. Понятно, где провайдер хранит training files и model artifacts.
  6. Определены retention и deletion requests.
  7. Проведены проверки на verbatim leakage.
  8. Юридическая оценка выполнена для конкретной юрисдикции.

Разметка: инструкция для людей - часть модели

Если два эксперта не согласны, модель не узнает единственную правильную policy. Проведите пилот разметки, измерьте agreement по важным классам, обсудите конфликты и обновите guide.

Annotation guide для [задача]:
- цель и нецели;
- единица разметки;
- закрытая taxonomy и определения;
- обязательные свойства ответа;
- допустимый отказ;
- порядок при нескольких подходящих классах;
- примеры positive, negative и boundary;
- правила для неполных данных;
- запрещённые предположения;
- escalation к эксперту;
- журнал спорных решений и версия guide.

Supervised fine-tuning: что именно он оптимизирует

Supervised fine-tuning учит модель воспроизводить целевые ответы из примеров. Google Cloud описывает SFT как способ обучить задаче на размеченных примерах; конкретные минимумы, форматы и поддерживаемые модели зависят от платформы.

Не переносите команды из старого tutorial: APIs и доступность меняются. Например, актуальная документация Gemini API сообщает, что после прекращения поддержки последней tuning-модели fine-tuning там сейчас недоступен, но он поддерживается в отдельной корпоративной платформе Google. Проверяйте текущую страницу выбранного сервиса.

Не обучайте все проблемы одновременно

Первый эксперимент должен проверять одну гипотезу: например, снизить путаницу двух классов или сократить prompt без падения качества. Если одновременно изменить dataset, base model, prompt, retrieval и schema, результат невозможно объяснить.

Hypothesis

Один failure cluster и механизм.

Evidence

Парное сравнение с baseline.

Decision

Ship, iterate или stop.

Evals: средний балл не должен скрывать критическую ошибку

Сравнивайте baseline и tuned candidate на неизменном test set. Автоматические validators проверяют schema и инварианты; domain graders - факты и классы; эксперты - сложные случаи. Критические ошибки имеют отдельный hard limit.

МетрикаЧто показываетРешение
Task successПринятый результатГлавный quality gate
Per-class precision/recallРедкие и важные классыНе скрывать imbalance
Critical error rateТяжёлый рискHard stop
Calibration/abstainПоведение при неопределённостиHandoff policy
Latency/cost per successProduction-экономикаБюджет и route

Экономика fine-tuning: считать нужно весь lifecycle

Стоимость включает подготовку и review данных, training jobs, эксперименты, inference tuned model, хранение, evals, monitoring и повторное обучение после дрейфа или смены base model. Экономия возможна, если tuned model уменьшает prompt или позволяет использовать более компактный base, но это нужно доказать.

TCO периода =
data collection + labeling + review +
training/experiments + evaluation +
inference of all attempts +
monitoring + incidents + retraining +
migration/deprecation work

Cost per successful task =
TCO периода / число результатов, прошедших acceptance criteria

Актуальные цены tuning и inference проверяйте у провайдера перед бюджетированием.

RAG и fine-tuning вместе

Комбинация оправдана, когда tuned model стабильно следует доменному контракту, а RAG поставляет свежие факты. Разделяйте ответственность: модель не должна «вспоминать» цену, если она обязана цитировать текущий каталог.

Hybrid design
  1. Tuning отвечает за поведение, не за меняющиеся факты.
  2. RAG имеет versioned corpus и access filters.
  3. Ответ содержит provenance для утверждений.
  4. При отсутствии context модель умеет отказаться.
  5. Evals разделяют retrieval failure и generation failure.
  6. Новая tuned version проверяется с тем же RAG.
  7. Новая index version проверяется с обеими моделями.

Production rollout: alias, shadow, canary и rollback

Tuned model получает immutable ID и manifest: base model, dataset hash, training config, prompt/schema compatibility и eval report. Приложение использует alias, который можно быстро вернуть на baseline.

  1. Offline eval и security review.
  2. Shadow на разрешённой выборке без side effects.
  3. Canary по стабильному cohort.
  4. Сравнение quality, cost, latency и handoff.
  5. Постепенное расширение при прохождении gates.
  6. Rollback при critical error или нарушении SLO.
  7. Observation window после 100%.

Fallback на base model также тестируют: у неё может быть другой prompt и response contract.

Monitoring и дрейф после запуска

Production-распределение меняется: появляются новые продукты, языки и типы обращений. Следите за входными cohorts, label distribution, error taxonomy, abstain, ручными исправлениями и стоимостью.

Input drift

Новые форматы и сегменты.

Quality drift

Рост ошибок по cohorts.

Lifecycle

Base model, API и retraining deadline.

Итоговый чек-лист перед обучением

Fine-tuning gate
  1. Определены task success и critical errors.
  2. Создан воспроизводимый baseline.
  3. Prompt, schema, RAG и tools уже проверены.
  4. Осталась повторяемая ошибка, подходящая для tuning.
  5. Платформа и модель актуально поддерживают tuning.
  6. Данные разрешены, классифицированы и имеют provenance.
  7. Annotation guide согласован экспертами.
  8. Train/validation/test разделены до экспериментов.
  9. Дубли и leakage проверены.
  10. Test set отражает cohorts и редкие риски.
  11. Гипотеза обучения ограничена и измерима.
  12. Критические ошибки имеют hard stop.
  13. Посчитан полный TCO и cost per success.
  14. Есть alias, canary, rollback и fallback.
  15. Monitoring drift и lifecycle назначен владельцу.

Fine-tuning - инвестиция в повторяемое поведение. Если проблема состоит в данных, интеграции или неясном контракте, исправляйте соответствующий слой, а не пытайтесь обучить модель обходить архитектурный дефект.

Чем fine-tuning отличается от RAG?
Fine-tuning меняет поведенческие параметры модели на примерах, а RAG добавляет найденные документы во время запроса. Tuning подходит для устойчивого поведения; RAG - для свежих, частных и цитируемых знаний.
Можно ли загрузить базу знаний через fine-tuning?
Технически примеры могут повлиять на ответы, но это плохой основной механизм для часто меняющихся и проверяемых фактов. Для базы знаний обычно удобнее RAG или tools с provenance и управляемым обновлением.
Когда fine-tuning действительно нужен?
Когда есть узкий повторяемый сценарий, качественная разметка, измеримый baseline и устойчивая ошибка поведения, которую не устранили prompt, schema, RAG или tools. Также должна сходиться экономика полного lifecycle.
Сколько примеров нужно для fine-tuning?
Универсального числа нет: оно зависит от модели, разнообразия задачи, качества разметки и целевой ошибки. Ориентируйтесь на актуальные требования платформы и learning curve на независимом test set, а не на магическое число.
Может ли fine-tuning уменьшить стоимость LLM API?
Иногда: например, если сокращает длинный prompt или позволяет использовать компактную модель. Но нужно учесть разметку, обучение, evals, inference, monitoring, retraining и миграции; сравнивайте cost per successful task.
Как избежать утечки данных между train и test?
Разделяйте данные до экспериментов, группируйте по клиенту, документу, сущности или времени, удаляйте exact и semantic duplicates и храните immutable manifest split. Test set не используют для повседневной подгонки.
Можно ли сочетать RAG и fine-tuning?
Да. Tuned model может обеспечивать формат и поведение, а RAG - актуальные источники. Разделяйте зоны ответственности и диагностируйте retrieval и generation отдельно.
Как выпустить fine-tuned модель в production?
Зарегистрируйте immutable model и dataset manifest, выполните offline eval, shadow и canary, используйте alias и заранее протестированный rollback. После запуска следите за cohorts, drift, ошибками, стоимостью и lifecycle base model.
← Все статьи блога