«Чи варто донавчити модель на наших даних?» — одне з перших запитань, які ставлять бізнес-команди на старті AI-проєкту. Інтуїція зрозуміла: наші дані особливі, отже модель має їх вивчити. На практиці fine-tuning виявляється правильним першим кроком значно рідше, ніж очікують, а хибний вибір марнує місяці. У гайді пояснюємо, що насправді змінює кожен метод адаптації, що кажуть дані досліджень, і пропонуємо процес ухвалення рішення, який можна застосувати до вашого проєкту.
Три важелі — три різні ефекти
| Важіль | Що змінює | Найкраще для | Час до першого результату |
|---|---|---|---|
| Промпти (зокрема few-shot) | Інструкції й приклади, які модель бачить під час роботи | Поведінка, формат, тон, визначення задачі | Години |
| RAG | Знання, доступні під час роботи через пошук | Факти, документи, дані, що часто змінюються, цитування | Від днів до тижнів |
| Fine-tuning | Ваги моделі | Стабільний стиль чи формат у масштабі, вузькі навички, менші/дешевші моделі, затримка | Тижні |
Корисна ментальна модель: промпт каже моделі, що робити, RAG дає їй те, що треба знати, fine-tuning змінює її схильності в поведінці. Більшість реальних проблем стосуються перших двох.
Почніть із промптів
Сучасні моделі достатньо здібні, щоб добре структурований промпт із кількома прикладами розв'язував значну частку бізнес-задач: класифікацію, видобування даних, написання чернеток, підсумовування, переклад. Промпти мають величезні переваги: зміни займають хвилини, модель можна вільно змінювати, поведінку видно. Перш ніж розглядати щось інше, побудуйте якісний промпт і набір для оцінювання; методика — у статтях промпт-інженерія для розробників і evals для LLM.
Промпти впираються в межі, коли задача потребує знань, яких модель не має, коли промпти стають величезними й дорогими за великого обсягу або коли модель не може надійно дотримуватися складного формату навіть із прикладами.
Додайте RAG для знань
Якщо моделі потрібні факти вашої компанії — специфікації продуктів, політики, договори, тікети, ціни, — пошук майже завжди правильний підхід. RAG запропонували як спосіб поєднати параметричні знання моделі з непараметричною пам'яттю, яку можна шукати (Lewis et al., 2020), і він має властивості, недосяжні для fine-tuning:
- Актуальність. Оновіть документ — і наступна відповідь це відобразить. Донавчена модель заморожена на момент навчання.
- Цитування. Відповіді можуть посилатися на джерела, що будує довіру й робить помилки перевірюваними.
- Контроль доступу. Пошук може враховувати права користувача; ваги не можуть «забути» документ для конкретної людини.
- Видалення. Видалити дані (наприклад, за GDPR) — означає прибрати їх з індексу, а не перенавчати модель.
Дані досліджень теж свідчать на користь пошуку для знань. Дослідження, що порівнювало методи додавання знань, показало: RAG стабільно перевершував fine-tuning без учителя — і для знань, бачених під час навчання, і для цілком нових, а моделям важко вивчати нові факти лише через fine-tuning (Ovadia et al., 2023). Інша робота свідчить, що fine-tuning на нових фактах може посилювати галюцинації, бо модель вчиться впевнено відповідати поза межами реальних знань (Gekhman et al., 2024).
Побудова якісного RAG — окрема дисципліна: чанкінг, ембеддинги, гібридний пошук, переранжування. Див. RAG для бізнесу, ембеддинги та чанкінг і векторні бази даних.
Коли fine-tuning — правильний інструмент
Fine-tuning сильний тоді, коли треба стабільно й дешево змінити поведінку в масштабі:
- Вузькі задачі з великим обсягом. Класифікація мільйонів тікетів підтримки чи видобування полів з одного типу документів. Донавчена мала модель може зрівнятися з великою універсальною на цій одній задачі за частку вартості й затримки.
- Суворий стиль чи формат виводу, який промпти й structured outputs не забезпечують надійно, — голос бренду, доменна нотація.
- Коротші промпти. Якщо кожен запит несе 3000 токенів інструкцій і прикладів, fine-tuning може «вшити» їх у модель.
- Доменна мова, з якою базова модель справді не справляється: спеціалізована термінологія, мало представлені мови чи діалекти — хоча тут спершу протестуйте сильні багатомовні базові моделі.
- Дистиляція. Велика модель генерує якісні відповіді, а мала модель донавчається на них для продакшену.
- Патерни використання інструментів в агентах із фіксованим набором інструментів, коли потрібно, щоб мала модель надійно їх викликала.
Fine-tuning — хибний інструмент, щоб навчити факти, які змінюються, додати вміння цитувати, забезпечити права доступу чи виправити проблеми, які виправили б кращі промпти.
Методи fine-tuning коротко
Повний fine-tuning оновлює всі ваги. Для великих моделей дорогий і здебільшого непотрібний.
LoRA (Low-Rank Adaptation) заморожує базову модель і навчає невеликі низькорангові матриці, вбудовані в її шари. Для GPT-3 175B LoRA зменшила кількість параметрів, що навчаються, у 10 000 разів, а потребу в пам'яті GPU — утричі за порівнянної якості (Hu et al., 2021). Адаптери — невеликі файли, які можна підміняти під задачу.
QLoRA поєднує LoRA з 4-бітно квантизованою базовою моделлю, що дозволяє донавчити модель на 65 млрд параметрів на одному GPU з 48 ГБ (Dettmers et al., 2023). Саме це робить fine-tuning відкритих моделей практичним на скромному залізі.
Навчання на вподобаннях (RLHF, DPO) вчить модель, яка з двох відповідей краща, замість імітувати одну цільову. Корисне для тону й стилю, але потребує даних про вподобання (Rafailov et al., 2023).
Хмарний fine-tuning від провайдерів моделей (наприклад, fine-tuning OpenAI) бере інфраструктуру на себе, але дає менше контролю. Для моделей з відкритими вагами стандартний шлях — бібліотека Hugging Face PEFT та інструменти на її основі.
Дані: справжня вартість fine-tuning
Обчислення — зазвичай дешева частина. Дорога — дані:
- Кількість: сотні прикладів можуть зсунути стиль; для надійного виконання задачі типово потрібні тисячі; для складних задач — більше.
- Якість: кожен приклад має бути саме тим, що ви хочете отримувати від моделі. Неузгоджена розмітка вчить неузгодженості. Перевірка 2000 прикладів — це тижні роботи експерта.
- Покриття: приклади мають охоплювати граничні випадки, відмови й реальний розподіл вхідних даних.
- Відкладена оцінка: окремий тестовий набір, на якому ви ніколи не навчаєтеся, плюс ваш наявний набір evals.
- Супровід: коли змінюються вимоги, ви заново курируєте дані й перенавчаєте.
{"messages": [
{"role": "system", "content": "Classify the support ticket. Output one label."},
{"role": "user", "content": "Не можу завантажити акт звірки, кнопка сіра"},
{"role": "assistant", "content": "documents.export_bug"}
]}
Якщо ви не можете підготувати кілька тисяч прикладів такої якості, fine-tuning, найімовірніше, передчасний.
Комбінування важелів
Методи не виключають один одного. Поширені продакшен-комбінації:
- Промпти + RAG: стандарт для асистентів зі знаннями, ботів підтримки й внутрішнього пошуку.
- RAG + донавчена модель: модель донавчена відповідати на основі знайденого контексту в правильному форматі й казати «у документах цього немає» — ідея fine-tuning з урахуванням пошуку, як-от RAFT (Zhang et al., 2024).
- Велика модель → дистильована мала: прототип на фронтирній моделі з промптами, збір відповідей, потім fine-tuning малої моделі заради вартості й затримки, часто з власним хостингом.
- Маршрутизація: донавчена мала модель обробляє типові випадки, а невпевнені передаються великій. Див. оптимізація витрат на LLM.
Процес ухвалення рішення
- Визначте успіх і зберіть набір для оцінки зі 100+ реальних випадків.
- Запромптуйте сильну модель. Виміряйте.
- Якщо збої через брак знань → додайте RAG. Виміряйте.
- Якщо збої через поведінку чи формат → покращуйте промпти, приклади й structured outputs. Виміряйте.
- Якщо якість добра, але вартість чи затримка зависокі за вашого обсягу → розгляньте fine-tuning меншої моделі (дистиляцію). Виміряйте на тому самому наборі.
- Якщо якість вийшла на плато на вузькій задачі попри добрі промпти → розгляньте fine-tuning на кураторських даних.
Кожен крок має обґрунтовуватися результатами evals, а не інтуїцією. Нові релізи моделей також зсувають базову лінію: fine-tune, що перевершував торішню базову модель, може програти цьогорічній з добрим промптом — див. як обрати LLM.
FAQ
Чи можна донавчити модель на всіх документах компанії, щоб вона їх «знала»? Технічно так, але це найменш ефективний спосіб дати моделі знання: погане пригадування конкретних фактів, жодних цитат, жодних оновлень без перенавчання. Використовуйте RAG.
Чи потрібен fine-tuning для української мови? Зазвичай ні. Сильні комерційні й відкриті багатомовні моделі добре працюють з українською. Fine-tuning може допомогти для специфічного доменного стилю або для малих моделей.
Скільки коштує fine-tuning? LoRA на відкритій моделі на 7–14 млрд параметрів може коштувати від десятків до сотень доларів GPU-часу. Підготовка даних і оцінювання зазвичай коштують значно більше людського часу.
Чи допомагає fine-tuning проти галюцинацій? Він може навчити модель відмовлятися або триматися наданого контексту, але fine-tuning на нових фактах може посилювати галюцинації. Опора на RAG і верифікація надійніші.
Джерела
- Lewis et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.
- Ovadia et al. (2023). Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs.
- Gekhman et al. (2024). Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations?
- Hu et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models.
- Dettmers et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs.
- Rafailov et al. (2023). Direct Preference Optimization; Zhang et al. (2024). RAFT: Adapting Language Model to Domain Specific RAG.
- OpenAI. Fine-tuning guide; Hugging Face. PEFT.