У глибокому навчанні, тонке́ настро́ювання (англ.fine-tuning) — це підхід до передавального навчання, в якому ваги попередньо натренованої моделі тренують на нових даних.[1] Тонке настроювання можливо виконувати для всієї нейронної мережі або лише для підмножини її шарів, у разі чого шари, які не піддаються тонкому настроюванню, «заморожуються» (не уточнюються під час кроку зворотного поширення).[2] Модель також можна доповнювати «адаптерами» (англ."adapters"), які складаються з набагато меншої кількості параметрів, аніж оригінальна модель, і тонко настроюються ефективним щодо параметрів чином шляхом настроювання ваг адаптерів і залишання решти ваг моделі замороженими.[3]
Для деяких архітектур, таких як згорткові нейронні мережі, зазвичай заморожують ранні шари (найближчі до шару входу), оскільки вони вловлюють низькорівневі ознаки, тоді як пізніші шари часто розпізнають високорівневі ознаки, що можуть бути більше пов'язаними із завданням, на якому тренують модель.[2][4]
Моделі, попередньо натреновані на великих і загальних корпусах, зазвичай тонко настоюють шляхом повторного використання параметрів моделі як вихідної точки, та додавання специфічного для завдання шару, який тренують з нуля.[5] Тонке настроювання всієї моделі також поширене і часто дає кращі результати, але воно потребує довших обчислень.[6]
Тонке настроювання може погіршити стійкість моделі до змін розподілу.[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] Не всі комерційні моделі на цей час[коли?] підтримують тонке настроювання.
↑Liu, Haokun; Tam, Derek; Muqeeth, Mohammed; Mohta, Jay; Huang, Tenghao; Bansal, Mohit; Raffel, Colin A (2022). Koyejo, S.; Mohamed, S.; Agarwal, A.; Belgrave, D.; Cho, K.; Oh, A. (ред.). Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning(PDF). Advances in Neural Information Processing Systems (англ.). Т. 35. Curran Associates, Inc. с. 1950—1965.
↑Zeiler, Matthew D; Fergus, Rob (2013). Visualizing and Understanding Convolutional Networks (англ.). arXiv:1311.2901.
↑Dodge, Jesse; Ilharco, Gabriel; Schwartz, Roy; Farhadi, Ali; Hajishirzi, Hannaneh; Smith, Noah (2020). Fine-Tuning Pretrained Language Models: Weight Initializations, Data Orders, and Early Stopping (англ.). arXiv:2002.06305.
↑ абDingliwal, Saket; Shenoy, Ashish; Bodapati, Sravan; Gandhe, Ankur; Gadde, Ravi Teja; Kirchhoff, Katrin (2021). Prompt Tuning GPT-2 language model for parameter-efficient domain adaptation of ASR systems (англ.). arXiv:2112.08718.
↑Yu, Yue; Zuo, Simiao; Jiang, Haoming; Ren, Wendi; Zhao, Tuo; Zhang, Chao (2020). Fine-Tuning Pre-trained Language Model with Weak Supervision: A Contrastive-Regularized Self-Training Approach (англ.). arXiv:2010.07835.