Усі уроки · 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 здешевлює те, що вже працює, і не лагодить те, що зламано.