Fine-tuning и веса · Fine-tuning and weights · урок 1 · 12 мин
Fine-tuning, RAG или prompt: когда что
Fine-tuning vs RAG vs prompting
ТемыFine-tuningRAG
Зачем
После урока ты объяснишь, когда задачу решает prompt, когда RAG, а когда fine-tuning, и защитишь выбор измерением, а не вкусом. Это первый вопрос любого собеседования про «свою модель» и первый спор на работе, когда кто-то предлагает «дообучить модель на наших документах».
Знать и вести себя — разные вещи
LLM (large language model, большая языковая модель) проходит два этапа. На pretraining (предобучение) она читает триллионы tokens (кусочков слов, которыми модель читает текст) и учится предсказывать следующий token; так в неё попадают язык, факты о мире и умение рассуждать. На post-training (обучение после предобучения) её учат быть ассистентом: отвечать по делу, держать формат, отказывать в опасном.
Fine-tuning (дообучение) — продолжение обучения готовой модели на твоих данных. Оно меняет weights (веса, числа внутри модели), а значит меняет поведение: тон, формат, язык ответа, длину, манеру вызывать tools (функции и API, которые модель может вызвать). Главная мысль урока: fine-tuning учит поведению, а не надёжным новым фактам. Авторы LIMA дообучили модель на 65B параметров всего на 1 000 отобранных пар «вопрос → ответ» и пришли к выводу, что «almost all knowledge in large language models is learned during pretraining». Дообучение настраивает форму ответа; знание приходит из предобучения.
Почему факты не вшивают в веса
Банк хочет, чтобы ассистент называл текущую комиссию за перевод. Соблазн — дообучить модель на таблице тарифов. Это плохая идея по четырём причинам: - тариф поменялся — модель надо переобучать, а старая версия ещё долго уверенно называет старую цифру; - модель не может сослаться на источник: нет документа, который можно показать клиенту или аудитору; - веса нельзя отфильтровать по правам доступа: что попало в веса, доступно любому пользователю модели; - факт, выученный из нескольких примеров, воспроизводится ненадёжно, и модель путает его с похожими.
Факты, которые меняются и требуют доказательства, приходят через RAG (retrieval-augmented generation: поиск по документам и подстановка найденного в context, окно текста, которое модель видит при ответе) и через tools (например, вызов API тарифов). Там гарантия живёт в коде: версия документа, фильтр прав, цитата. Гайд OpenAI по точности описывает это как две оси: оптимизация context, когда модели не хватает знаний, и оптимизация самой модели, когда не хватает «consistency of behavior» (стабильности поведения).
Лестница от дешёвого к дорогому
| Ступень | Что меняет | Данные | Цена |
|---|---|---|---|
| Prompt и context engineering | ничего в весах | 0 – десятки примеров | часы |
| RAG и tools | что модель видит при ответе | документы, API | дни – недели |
| SFT через LoRA | формат, тон, язык, вызов tools | сотни – тысячи пар | часы на одной GPU |
| Preference tuning (DPO, ORPO) | какой из двух ответов лучше | сотни – тысячи пар | часы |
| Continued pretraining | знание языка или домена | миллиарды tokens | дни на кластере |
| Обучение с нуля | всё | триллионы tokens | месяцы |
SFT (supervised fine-tuning, обучение на парах «запрос → эталонный ответ»), LoRA (low-rank adaptation, малая обучаемая добавка к замороженным весам), DPO и ORPO (обучение на парах «хороший ответ / плохой ответ») и continued pretraining (продолжение предобучения на сыром тексте) разберём в следующих уроках модуля. Сейчас важен порядок: подниматься на ступень выше только тогда, когда предыдущая измеримо упёрлась в потолок. Большинство прикладных задач останавливается на первых двух строках. Вторая по частоте остановка — LoRA на стиль или формат.
Гайд OpenAI говорит то же: «Prompt engineering is typically the best place to start». Причина практическая: лучший prompt — это baseline (точка отсчёта), с которым ты потом сравнишь любой fine-tune. Без него нельзя доказать, что обучение что-то дало.
Когда fine-tuning — правильный ответ
Законных поводов три. 1. Поведение, которое prompt стабильно не даёт. Строгий JSON для другой системы, тон на диалекте, классификация обращений по 30 категориям: prompt справляется в 90 % случаев, а бизнесу нужно 99 %. 2. Цена и задержка. Большая модель с длинным prompt делает узкую задачу хорошо. Маленькую модель можно дообучить делать то же без длинного prompt: она дешевле, быстрее и помещается на собственное железо. Обучение маленькой модели на ответах большой называют distillation (дистилляция знаний). 3. Язык, который база знает слабо. Никакой prompt не научит модель казахской морфологии; тут нужна работа с весами (урок a6-5).
И пять поводов не обучать: задача про факты; prompt ещё не выжат; нет held-out набора (отложенных примеров, которых модель не видела) и записанного критерия «достаточно хорошо»; данные не очищены от PII (personally identifiable information, персональные данные); нужное поведение можно гарантировать кодом — валидатором формата, фильтром, проверкой суммы.
Условный пример с числами
Банк хочет маршрутизатор обращений по трём направлениям: «карты», «споры», «продукты». Сейчас это делает большая модель через API. Цифры ниже учебные, важна форма решения. - Baseline: большая модель, prompt с пятью примерами — 94 % верных маршрутов на 500 новых обращениях, около 1 200 tokens prompt на каждый запрос. - Вариант A: модель на 8B параметров с тем же prompt — 81 %. Не проходит. - Вариант B: та же 8B с LoRA на 3 000 размеченных обращениях — 95 %, prompt 80 tokens, работает на своей GPU.
Вариант B оправдан: поведение узкое и стабильное, размеченные данные есть, prompt короче в 15 раз, и сравнение идёт с честным baseline, а не с голой моделью. Но тарифы маршрутизатор по-прежнему не называет — их даёт tool.
Как это звучит на собеседовании
Вопрос обычно смешан: «ассистент называет неверную комиссию и звучит слишком сухо — дообучать или RAG?». Сильный ответ делит его на две проблемы. Неверная комиссия — сначала смотрим trace (журнал всех шагов одного запроса): нашёлся ли нужный документ и попал ли он в context? Если нет, чиним индекс; если да, чиним генерацию. В обоих случаях fine-tuning — не тот инструмент. Сухой тон — это поведение: сначала system prompt с примерами и замер, LoRA только если prompt упёрся, и выпуск только если LoRA обыграл baseline на новых данных.
Схема
Термины · Key terms
- pretraining
- предобучение на огромном корпусе: язык и знания
- post-training
- обучение после предобучения: модель учится быть ассистентом
- fine-tuning
- дообучение готовой модели на своих данных; меняет веса
- weights
- веса, числа внутри модели, которые меняет обучение
- RAG (retrieval-augmented generation)
- поиск документов и подстановка их в context при ответе
- SFT (supervised fine-tuning)
- обучение на парах «запрос → эталонный ответ»
- LoRA (low-rank adaptation)
- малая обучаемая добавка к замороженным весам
- baseline
- точка отсчёта: базовая модель с лучшим prompt
- held-out set
- отложенный набор примеров, которых модель не видела при обучении
- distillation
- обучение маленькой модели на ответах большой
Сделай сам
Возьми три задачи и для каждой напиши ступень лестницы, одну фразу «почему» и что будет baseline: 1. Ассистент банка должен называть текущую ставку по депозиту. 2. Ответ модели должен быть валидным JSON с пятью полями для CRM, сейчас prompt даёт ошибку формата в 8 % ответов. 3. Ассистент должен вежливо отвечать по-казахски, а базовая модель пишет по-казахски с грамматическими ошибками.
Обсуди с тьютором: покажи свои три ответа и попроси тьютора защищать противоположный выбор для задачи 2 (например, «валидатор и повтор запроса вместо LoRA»); найди, при каких цифрах прав он, а при каких ты.
Проверь себя · ответ под вопросом
1Почему тарифы банка не учат через fine-tuning?
2Что такое baseline при решении о fine-tuning и почему это не «голая» модель?
3Назови два законных повода для fine-tuning.
Interview questions · US / UK
1Our customer assistant sometimes quotes the wrong fee and sounds too stiff. Should we fine-tune the model or use RAG?
2Follow-up: why not just fine-tune the fee table into the model?
3When is fine-tuning the right call? Give one concrete case.
Ключевые фразы · Say it aloud
- Fine-tuning teaches behaviour, not reliable facts.Дообучение учит поведению, а не надёжным фактам.
- Facts that change belong in retrieval or a tool.Изменчивые факты живут в поиске или в tool.
- The baseline is the base model with our best prompt.Точка отсчёта — базовая модель с нашим лучшим prompt.
- I'd climb the ladder one rung at a time, and only on a measured ceiling.Поднимаюсь по ступеням по одной и только при измеренном потолке.
- Before choosing a fix, I'd look at the trace.Прежде чем чинить, я посмотрю trace.
- A smaller fine-tuned model can win on cost and latency.Маленькая дообученная модель выигрывает в цене и задержке.
Материалы
- OpenAI — Optimizing LLM Accuracy — раздел «Understanding the tools»: две оси, context против поведения (8 мин)
- LIMA: Less Is More for Alignment (arXiv 2305.11206) — abstract: 1 000 пар и вывод про знание из предобучения (2 мин)
- Hugging Face LLM Course, глава 11, LoRA — разделы «Understanding LoRA» и «Key advantages of LoRA» (6 мин)