Skip to content

Latest commit

 

History

History
105 lines (69 loc) · 21.9 KB

File metadata and controls

105 lines (69 loc) · 21.9 KB

Open Source Models

Тонке налаштування вашої LLM

Використання великих мовних моделей для створення генеративних AI-застосунків має нові виклики. Ключова проблема — забезпечення якості відповіді (точності та релевантності) у контенті, створеному моделлю для певного запиту користувача. У попередніх уроках ми обговорювали техніки, такі як інженерія підказок і генерація з пошуковою підтримкою, які намагаються розв’язати проблему шляхом модифікації вхідної підказки для існуючої моделі.

У сьогоднішньому уроці ми обговорюємо третю техніку — тонке налаштування, яке намагається подолати цю проблему шляхом повторного навчання самої моделі з додатковими даними. Давайте розглянемо деталі.

Цілі навчання

Цей урок вводить поняття тонкого налаштування для попередньо навчених мовних моделей, розкриває переваги та виклики цього підходу та надає вказівки, коли і як використовувати тонке налаштування для покращення продуктивності ваших генеративних AI-моделей.

Наприкінці цього уроку ви зможете відповісти на такі запитання:

  • Що таке тонке налаштування мовних моделей?
  • Коли і чому тонке налаштування корисне?
  • Як я можу тонко налаштувати попередньо навчену модель?
  • Які обмеження тонкого налаштування?

Готові? Почнемо.

Ілюстрований посібник

Хочете отримати загальне уявлення про те, що ми розглянемо, перш ніж заглиблюватися? Ознайомтеся з цим ілюстрованим посібником, який описує навчальний шлях для цього уроку – від вивчення основних понять і мотивації тонкого налаштування до розуміння процесу та найкращих практик виконання завдання тонкого налаштування. Це захоплива тема для дослідження, тому не забудьте відвідати сторінку Resources для додаткових посилань, які підтримають ваше самостійне навчання!

Illustrated Guide to Fine Tuning Language Models

Що таке тонке налаштування мовних моделей?

За визначенням, великі мовні моделі є попередньо навченими на великих обсягах тексту з різних джерел, включно з інтернетом. Як ми навчилися у попередніх уроках, потрібні техніки, такі як інженерія підказок і генерація з пошуковою підтримкою, щоб поліпшити якість відповідей моделі на запити користувача ("підказки").

Популярна техніка інженерії підказок полягає в тому, щоб дати моделі більше вказівок щодо очікуваної відповіді, або шляхом надання інструкцій (явних вказівок), або наданні кількох прикладів (неявних вказівок). Це називається навчання з незначною кількістю прикладів (few-shot learning), але має два обмеження:

  • Ліміти токенів моделі можуть обмежувати кількість наданих прикладів і знижувати ефективність.
  • Вартість токенів у моделі може робити додавання прикладів до кожної підказки дорогим і зменшувати гнучкість.

Тонке налаштування — це поширена практика в системах машинного навчання, коли беруть попередньо навчену модель і повторно навчають її з новими даними для покращення продуктивності у конкретному завданні. У контексті мовних моделей можна тонко налаштувати попередньо навчену модель за допомогою спеціально відібраного набору прикладів для певного завдання чи предметної області, створюючи кастомну модель, яка може бути точнішою та релевантнішою для цього конкретного завдання або області. Побічною перевагою тонкого налаштування є те, що воно також може зменшити кількість прикладів, необхідних для навчання з незначною кількістю прикладів — знижуючи використання токенів та пов’язані з цим витрати.

Коли і чому слід тонко налаштовувати моделі?

У цьому контексті, коли говоримо про тонке налаштування, ми маємо на увазі кероване тонке налаштування, при якому повторне навчання здійснюється шляхом додавання нових даних, які не були частиною початкового тренувального набору. Це відрізняється від некерованого тонкого налаштування, коли модель повторно навчається на оригінальних даних, але з іншими гіперпараметрами.

Головне, що слід пам’ятати: тонке налаштування — це просунутий метод, який вимагає певного рівня експертизи для досягнення бажаних результатів. Якщо його виконати неправильно, воно може не дати очікуваних покращень і навіть погіршити продуктивність моделі для цільової області.

Тож перед тим, як навчитися "як" тонко налаштовувати мовні моделі, потрібно зрозуміти, "чому" варто обрати цей шлях і "коли" починати процес тонкого налаштування. Почніть із запитань:

  • Сценарій використання: Який ваш сценарій використання для тонкого налаштування? Який аспект поточної попередньо навченої моделі ви хочете покращити?
  • Альтернативи: Чи пробували ви інші техніки для досягнення потрібних результатів? Використовуйте їх для створення базової лінії для порівняння.
    • Інженерія підказок: Спробуйте техніки, такі як few-shot prompting з прикладами релевантних відповідей. Оцініть якість відповідей.
    • Генерація з пошуковою підтримкою: Спробуйте підсилити підказки результатами пошуку у ваших даних. Оцініть якість відповідей.
  • Витрати: Чи ідентифікували ви витрати на тонке налаштування?
    • Можливість налаштування — чи доступна попередньо навчена модель для тонкого налаштування?
    • Зусилля — для підготовки тренувальних даних, оцінки та вдосконалення моделі.
    • Обчислення — для запуску процесів тонкого налаштування та розгортання тонко налаштованої моделі.
    • Дані — доступ до достатньої кількості якісних прикладів для впливу тонкого налаштування.
  • Переваги: Чи підтвердили ви переваги тонкого налаштування?
    • Якість — чи перевищила тонко налаштована модель базовий рівень?
    • Вартість — чи зменшує це використання токенів за рахунок спрощення підказок?
    • Розширюваність — чи можна використовувати базову модель для нових доменів?

Відповідаючи на ці питання, ви зможете вирішити, чи є тонке налаштування правильним підходом для вашого випадку. Ідеально, якщо підхід виправданий лише тоді, коли переваги переважають витрати. Як тільки ви вирішите рухатися далі, час подумати, як можна тонко налаштувати попередньо навчену модель.

Хочете отримати більше інформації про процес прийняття рішення? Дивіться To fine-tune or not to fine-tune

Як тонко налаштувати попередньо навчену модель?

Щоб тонко налаштувати попередньо навчену модель, вам потрібно мати:

  • попередньо навчену модель для тонкого налаштування
  • набір даних для тонкого налаштування
  • середовище для навчання, щоб запустити завдання тонкого налаштування
  • середовище для хостингу, щоб розгорнути тонко налаштовану модель

Тонке налаштування у дії

Наступні ресурси надають покрокові посібники, які проводять вас через реальний приклад із вибраною моделлю та спеціально підібраним набором даних. Щоб працювати з цими посібниками, вам потрібна обліковка у відповідного провайдера, а також доступ до відповідної моделі та наборів даних.

Провайдер Посібник Опис
OpenAI How to fine-tune chat models Навчіться тонко налаштовувати gpt-35-turbo для конкретної області ("помічник з рецептів") шляхом підготовки тренувальних даних, запуску процесу тонкого налаштування і використання тонко налаштованої моделі для інференсу.
Azure OpenAI GPT 3.5 Turbo fine-tuning tutorial Навчіться тонко налаштовувати модель gpt-35-turbo-0613 на Azure, виконуючи кроки створення та завантаження тренувальних даних, запуску процесу тонкого налаштування, розгортання та використання нової моделі.
Hugging Face Fine-tuning LLMs with Hugging Face У цьому блозі показано, як тонко налаштовувати відкриту LLM (наприклад, CodeLlama 7B) за допомогою бібліотеки transformers та Transformer Reinforcement Learning (TRL) із відкритими datasets на Hugging Face.
🤗 AutoTrain Fine-tuning LLMs with AutoTrain AutoTrain (або AutoTrain Advanced) — це Python-бібліотека від Hugging Face, яка дозволяє тонке налаштування для багатьох завдань, включно з тонким налаштуванням LLM. AutoTrain — це рішення без коду, і тонке налаштування можна виконувати у власному хмарному середовищі, у Hugging Face Spaces або локально. Підтримує як веб-інтерфейс, так і CLI та навчання через конфігураційні YAML-файли.
🦥 Unsloth Fine-tuning LLMs with Unsloth Unsloth — це відкритий фреймворк, що підтримує тонке налаштування LLM та навчання з підкріпленням (RL). Unsloth спрощує локальне навчання, оцінку та розгортання, пропонуючи готові ноутбуки. Також підтримує текст-в-мову (TTS), BERT і мультиМодальні моделі. Щоб почати, прочитайте їх покроковий Посібник з тонкого налаштування LLM.

Завдання

Обрати один із вищенаведених посібників і пройти весь процес. Ми можемо відтворити версію цих посібників у Jupyter Notebooks у цьому репозиторії лише для довідки. Будь ласка, використовуйте оригінальні джерела напряму, щоб отримати найновіші версії.

Відмінна робота! Продовжуйте навчання.

Після завершення цього уроку перегляньте нашу колекцію навчання генеративного AI, щоб продовжувати підвищувати свої знання у сфері генеративного AI!

Вітаємо!! Ви завершили останній урок з серії версії 2 цього курсу! Не зупиняйтеся в навчанні та створенні. **Перегляньте сторінку RESOURCES для списку додаткових рекомендацій саме з цієї теми.

Наша серія уроків версії 1 також була оновлена з додаванням нових завдань і концептів. Тож знайдіть хвилинку, щоб оновити свої знання — і, будь ласка, діліться своїми питаннями та відгуками, щоб допомогти нам покращити ці уроки для спільноти.


Відмова від відповідальності:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ його рідною мовою слід вважати авторитетним джерелом. Для критичної інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильне тлумачення, що виникли внаслідок використання цього перекладу.