Тонке настроювання (глибоке навчання)У глибокому навчанні, тонке́ настро́ювання (англ. fine-tuning) — це підхід до передавального навчання, в якому ваги попередньо натренованої моделі тренують на нових даних.[1] Тонке настроювання можливо виконувати для всієї нейронної мережі або лише для підмножини її шарів, у разі чого шари, які не піддаються тонкому настроюванню, «заморожуються» (не уточнюються під час кроку зворотного поширення).[2] Модель також можна доповнювати «адаптерами» (англ. "adapters"), які складаються з набагато меншої кількості параметрів, аніж оригінальна модель, і тонко настроюються ефективним щодо параметрів чином шляхом настроювання ваг адаптерів і залишання решти ваг моделі замороженими.[3] Для деяких архітектур, таких як згорткові нейронні мережі, зазвичай заморожують ранні шари (найближчі до шару входу), оскільки вони вловлюють низькорівневі ознаки, тоді як пізніші шари часто розпізнають високорівневі ознаки, що можуть бути більше пов'язаними із завданням, на якому тренують модель.[2][4] Моделі, попередньо натреновані на великих і загальних корпусах, зазвичай тонко настоюють шляхом повторного використання параметрів моделі як вихідної точки, та додавання специфічного для завдання шару, який тренують з нуля.[5] Тонке настроювання всієї моделі також поширене і часто дає кращі результати, але воно потребує довших обчислень.[6] Тонке настроювання зазвичай виконують за допомогою керованого навчання, але існують також методики тонкого настроювання моделей за допомогою слабкого керування.[7] Тонке настроювання можливо поєднувати з ціллю на основі навчання з підкріпленням людським зворотним зв'язком[en] для створення мовних моделей, таких як ChatGPT (тонко настроєна версія GPT-3) та Sparrow[en].[8][9] СтійкістьТонке настроювання може погіршити стійкість моделі до змін розподілу.[10][11] Один зі способів запобігти цьому — лінійно інтерполювати ваги тонко настроєної моделі з вагами первинної моделі, що може значно підвищити продуктивність поза розподілом, при цьому здебільшого зберігаючи продуктивність у межах розподілу тонко настроєної моделі.[12] ВаріантиНизькорангове адаптуванняНизькорангове адаптування (НРА, англ. low-rank adaption, LoRA) — це методика на основі адаптерів для ефективного тонкого настроювання моделей. Основна ідея полягає в тому, щоби розробити низькорангову матрицю, відтак додавши її до первинної матриці.[13] «Адаптер» у цьому контексті — це набір низькорангових матриць, які при додаванні до базової моделі створюють тонко настроєну модель. Це дозволяє досягти продуктивності, яка наближається до тонкого настроювання повної моделі, з меншими вимогами до простору. Мовну модель з мільярдами параметрів можна тонко настроїти за допомогою НРА лише з декількома мільйонами параметрів. Тонке настроювання на основі НРА стало популярним у спільноті Stable Diffusion.[14] Підтримку НРА вбудовують до бібліотеки Diffusers з Hugging Face.[15] Підтримка НРА та подібних методик також доступна для широкого спектра інших моделей за допомогою пакета Parameter-Efficient Fine-Tuning (PEFT) від Hugging Face.[16] ЗастосуванняОбробка природної мовиТонке настроювання поширене в обробці природної мови (ОПМ), особливо в області моделювання мови. Великі мовні моделі, такі як низка моделей-основ GPT[en] від OpenAI, можливо тонко настроювати на даних для конкретних завдань ОПМ (завдань, які використовують попередньо натреновану модель) для покращення продуктивності порівняно з незміненою попередньо натренованою моделлю.[6] Комерційні моделіКомерційно пропоновані великі мовні моделі іноді можливо тонко настроювати, якщо постачальник пропонує відповідний ППІ. Станом на 19 червня 2023 року, ППІ для тонкого настроювання мовних моделей пропонують OpenAI та Azure OpenAI Service від Microsoft Azure для підмножини їхніх моделей, а також Google Cloud Platform для деяких їхніх моделей PaLM[en], та інші.[17][18][19] Не всі комерційні моделі на цей час[коли?] підтримують тонке настроювання. Див. такожПримітки
|
Portal di Ensiklopedia Dunia