Використання великих мовних моделей для створення генеративних AI-додатків пов’язане з новими викликами. Ключова проблема — це забезпечення якості відповіді (точності та релевантності) у контенті, який генерує модель за заданим запитом користувача. У попередніх уроках ми обговорювали такі техніки, як prompt engineering та retrieval-augmented generation, які намагаються вирішити проблему шляхом зміни вхідного запиту до існуючої моделі.
В сьогоднішньому уроці ми розглянемо третю техніку — тонке налаштування (fine-tuning), яка намагається вирішити виклик шляхом перенавчання самої моделі за допомогою додаткових даних. Розглянемо деталі.
У цьому уроці ми вводимо поняття тонкого налаштування для попередньо натренованих мовних моделей, розглядаємо переваги та виклики цього підходу, а також надаємо рекомендації, коли і як застосовувати тонке налаштування для покращення продуктивності ваших генеративних AI моделей.
До кінця цього уроку ви зможете відповісти на такі питання:
- Що таке тонке налаштування для мовних моделей?
- Коли і чому тонке налаштування є корисним?
- Як я можу тонко налаштувати попередньо натреновану модель?
- Які обмеження має тонке налаштування?
Готові? Почнімо.
Хочете отримати загальну картину того, що ми розглянемо, перш ніж розпочати? Ознайомтеся з цим ілюстрованим посібником, який описує навчальний шлях цього уроку — від вивчення основних концепцій і мотивації тонкого налаштування до розуміння процесу та кращих практик виконання завдання тонкого налаштування. Це захоплива тема для дослідження, тож не забудьте відвідати сторінку Resources для додаткових посилань, які підтримають ваше самостійне навчання!
За визначенням, великі мовні моделі попередньо навчені на великих обсягах тексту з різних джерел, включно з інтернетом. Як ми дізналися в попередніх уроках, для покращення якості відповідей моделі на запити користувачів ("prompt") потрібні такі методи, як prompt engineering та retrieval-augmented generation.
Популярна техніка prompt engineering полягає в тому, щоб надати моделі більше вказівок щодо очікуваної відповіді: або через інструкції (явні вказівки), або подаючи кілька прикладів (неявні вказівки). Це називають few-shot learning, але у нього є два обмеження:
- Обмеження кількості токенів моделі може обмежити кількість прикладів і знизити ефективність.
- Вартість токенів моделі може зробити додавання прикладів до кожного запиту дорогим і знизити гнучкість.
Тонке налаштування — поширена практика у системах машинного навчання, де попередньо натреновану модель перенавчають на нових даних для покращення її продуктивності для конкретного завдання. У контексті мовних моделей можна тонко налаштувати попередньо натреновану модель на відібраному наборі прикладів для певного завдання або домену застосування, щоб створити кастомну модель, яка може бути точнішою та релевантнішою для цього завдання чи домену. Додатковою перевагою тонкого налаштування є те, що воно може зменшити кількість прикладів, необхідних для few-shot learning — знижуючи використання токенів та пов’язані витрати.
У цьому контексті, коли ми говоримо про тонке налаштування, ми маємо на увазі кероване (supervised) тонке налаштування, де перенавчання здійснюється шляхом додавання нових даних, які не входили до початкового навчального набору даних. Це відрізняється від некерованого (unsupervised) тонкого налаштування, де модель перенавчають на тих самих даних, але з іншими гіперпараметрами.
Важливо пам’ятати, що тонке налаштування — це просунута техніка, яка вимагає певного рівня експертизи для досягнення бажаних результатів. Якщо зробити це неправильно, воно може не принести очікуваних покращень, а навіть погіршити продуктивність моделі для вашого цільового домену.
Тож перш ніж вивчати "як" тонко налаштовувати мовні моделі, потрібно розуміти "чому" варто обрати цей шлях, і "коли" почати процес тонкого налаштування. Почніть із запитань:
- Випадок використання: Який ваш випадок використання для тонкого налаштування? Який аспект поточної попередньо натренованої моделі ви хочете покращити?
- Альтернативи: Чи пробували ви інші техніки для досягнення бажаних результатів? Використовуйте їх, щоб створити базовий рівень для порівняння.
- Prompt engineering: Спробуйте техніки, як few-shot prompting з прикладами релевантних відповідей. Оцініть якість відповідей.
- Retrieval Augmented Generation: Спробуйте доповнювати запити результатами пошуку у ваших даних. Оцініть якість відповідей.
- Витрати: Чи визначили ви витрати на тонке налаштування?
- Можливість налаштування — чи доступна модель для тонкого налаштування?
- Зусилля — на підготовку тренувальних даних, оцінку та доопрацювання моделі.
- Обчислювальні ресурси — для запуску завдань тонкого налаштування та розгортання моделі.
- Дані — доступ до достатньо якісних прикладів для ефективності тонкого налаштування.
- Переваги: Чи підтвердили ви переваги тонкого налаштування?
- Якість — чи перевищила тонко налаштована модель базову?
- Вартість — чи знижує це використання токенів за рахунок спрощення запитів?
- Розширюваність — чи можна використовувати базову модель для нових доменів?
Відповідаючи на ці питання, ви зможете вирішити, чи є тонке налаштування правильним підходом для вашого випадку. Ідеально, якщо переваги переважають витрати. Коли ви вирішите продовжувати, настав час подумати, як ви можете тонко налаштувати попередньо натреновану модель.
Хочете дізнатися більше про процес прийняття рішень? Дивіться Тонке налаштування чи ні
Щоб тонко налаштувати попередньо натреновану модель, вам потрібно мати:
- попередньо натреновану модель для налаштування
- набір даних для тонкого налаштування
- середовище для запуску завдання тонкого налаштування
- середовище для розгортання тонко налаштованої моделі
Microsoft Foundry — це сервіс, де сьогодні ви тонко налаштовуєте, розгортаєте та керуєте кастомними моделями на Azure (його було створено на основі Azure OpenAI Studio та Azure AI Studio). Перш ніж розпочати завдання, корисно зрозуміти вибір, який надає Foundry, та найкращі практики, які рекомендує платформа. Під капотом Foundry використовує LoRA (low-rank adaptation) для ефективного тонкого налаштування моделей, що робить навчання швидшим і дешевшим, ніж перенавчання кожної ваги.
Foundry підтримує три техніки тонкого налаштування. Починайте з SFT — вона охоплює найширше коло сценаріїв.
| Техніка | Що робить | Коли використовувати |
|---|---|---|
| Supervised Fine-Tuning (SFT) | Навчає на парах вхід/вихід, щоб модель навчилася створювати бажані відповіді. | За замовчуванням для більшості завдань: спеціалізація домену, виконання завдань, стиль і тон, виконання інструкцій та адаптація мови. |
| Direct Preference Optimization (DPO) | Навчається на парах «бажана проти небажаної» відповіді для узгодження результатів з людськими вподобаннями. | Покращує якість відповіді, безпеку та узгодженість, коли є порівняльний зворотний зв’язок. |
| Reinforcement Fine-Tuning (RFT) | Використовує сигнали винагороди від оцінювачів для оптимізації складних поведінкових моделей з підкріплювальним навчанням. | Об’єктивні, з високим рівнем логіки домени (математика, хімія, фізика) з чіткими правильними/неправильними відповідями. Вимагає більшої компетентності в машинному навчанні. |
Foundry дозволяє обирати як і де відбувається навчання:
- Стандартний — навчає у вашому регіоні ресурсів та гарантує місце зберігання даних. Використовуйте, якщо дані мають залишатися у певному регіоні.
- Глобальний — дешевше і швидше в черзі, використовуючи ресурси поза вашим регіоном (дані і ваги копіюються до регіону навчання). Добрий стандарт, коли місце зберігання даних не критичне.
- Розробник — найнижча вартість, використання проста闲них ресурсів без гарантій затримки/доступності (завдання можна призупиняти й відновлювати). Ідеально для експериментів.
Моделі, які можна тонко налаштовувати, включають OpenAI gpt-4o-mini, gpt-4o, gpt-4.1, gpt-4.1-mini та gpt-4.1-nano (SFT; сімейство 4o/4.1 також підтримує DPO), моделі для логічного мислення o4-mini та gpt-5 (RFT), а також open-source моделі, такі як Ministral-3B, Qwen-32B, Llama-3.3-70B-Instruct та gpt-oss-20b (SFT на ресурсах Foundry). Завжди перевіряйте актуальний список моделей для тонкого налаштування для підтримуваних методів, регіонів та наявності.
Foundry пропонує два режими: serverless (оплата за споживання, немає потреби керувати квотою GPU, OpenAI та окремі моделі) та managed compute (власні віртуальні машини через Azure Machine Learning для найбільшого вибору моделей). Більшість користувачів слід починати з serverless.
- Спочатку базова лінія. Оцініть базову модель за допомогою prompt engineering та RAG перед тонким налаштуванням, щоб довести покращення.
- Починайте з малої кількості, потім масштабуйте. Спершу використовуйте 50-100 якісних прикладів для перевірки підходу, потім збільшуйте до 500+ для виробництва. Якість важливіша за кількість — видаляйте низькоякісні приклади.
- Правильно форматувати дані. Тренувальні та валідаційні файли мають бути у форматі JSONL, UTF-8 з BOM, розміром менше 512 МБ, використовувати формат повідомлень chat-completions. Завжди додавайте файл валідації для контролю перенавчання.
- Зберігайте системні підказки для інференсу. Використовуйте ту саму системну підказку, що й під час навчання.
- Оцінюйте контрольні точки — не розгортайте сліпо останню. Foundry зберігає останні три епохи як контрольні точки, які можна розгортати; обирайте ту, що найкраще узагальнює за
train_loss/valid_lossта точністю токенів. - Вимірюйте вартість токенів разом із якістю при порівнянні тонко налаштованої моделі із базовою.
- Ітеруйте з безперервним тонким налаштуванням. Можна тонко налаштовувати вже налаштовану модель новими даними (підтримується для моделей OpenAI).
- Увага до вартості хостингу. Розгорнута кастомна модель оплачується погодинно; неактивні розгортання видаляються через 15 днів — прибирайте непотрібне.
Пройдіть поетапний приклад у Кастомізація моделі з тонким налаштуванням, а також дивіться посібники для DPO та RFT, коли будете готові до інших технік.
Наступні ресурси надають покрокові уроки, які проведуть вас через реальний приклад на підтримуваній моделі з відібраним набором даних. Для роботи з ними вам потрібен акаунт у відповідного провайдера, а також доступ до потрібної моделі та наборів даних.
| Провайдер | Посібник | Опис |
|---|---|---|
| OpenAI | Як тонко налаштувати чат-моделі | Навчіться тонко налаштовувати останню чат-модель OpenAI для конкретного домену ("помічник з рецептами") шляхом підготовки навчальних даних, запуску завдання тонкого налаштування та використання тонко налаштованої моделі для інференсу. |
| Microsoft Foundry | Кастомізація моделі з тонким налаштуванням | Навчіться тонко налаштовувати підтримувану модель, наприклад gpt-4.1-mini на Azure за допомогою Microsoft Foundry: підготувати і завантажити тренувальні й валідаційні дані, запустити завдання тонкого налаштування, а потім розгорнути і використовувати нову модель. |
| Hugging Face | Тонке налаштування LLM з Hugging Face | Цей блог-спост пропонує вам пройти процес тонкого налаштування відкритої LLM (наприклад: CodeLlama 7B) з використанням бібліотеки transformers та Transformer Reinforcement Learning (TRL) з відкритими набори даних на Hugging Face. |
| 🤗 AutoTrain | Тонке налаштування LLM з AutoTrain | AutoTrain (або AutoTrain Advanced) — це бібліотека python, розроблена Hugging Face, яка дозволяє тонко налаштовувати багато різних задач, включно з тонким налаштуванням LLM. AutoTrain — це безкодове рішення, і тонке налаштування може бути виконане у вашому хмарному середовищі, на Hugging Face Spaces або локально. Підтримує як веб-інтерфейс GUI, CLI, так і навчання через yaml конфігураційні файли. |
| 🦥 Unsloth | Тонке налаштування LLM з Unsloth | Unsloth — це фреймворк з відкритим кодом, який підтримує тонке налаштування LLM та навчання з підкріпленням (RL). Unsloth спрощує локальне навчання, оцінювання та розгортання за допомогою готових блокнотів. Також підтримує синтез мови (TTS), BERT та мультимодальні моделі. Щоб розпочати, прочитайте їх покроковий Посібник з тонкого налаштування LLM. |
Виберіть один з наведених вище уроків і пройдіть його. Ми можемо відтворити версію цих уроків у Jupyter Notebook у цьому репозиторії виключно для довідки. Будь ласка, користуйтеся оригінальними джерелами безпосередньо, щоб отримати найновіші версії.
Після завершення цього уроку ознайомтеся з нашою Колекцією для навчання Генеративного ШІ, щоб продовжувати підвищувати свої знання у сфері Генеративного ШІ!
Вітаємо!! Ви завершили фінальний урок з серії v2 цього курсу! Не зупиняйтесь в навчанні і розвитку. **Перегляньте сторінку РЕСУРСИ для списку додаткових рекомендацій саме по цій темі.
Наша серія уроків v1 також оновлена з додатковими завданнями та концепціями. Тож приділіть хвилину, щоб освіжити свої знання — та, будь ласка, поділіться своїми питаннями та відгуками, щоб допомогти нам покращити ці уроки для спільноти.
Відмова від відповідальності: Цей документ було перекладено за допомогою сервісу штучного інтелекту для перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.

