Тонкая настройка (глубокое обучение)

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Тонкая настройка (англ. Fine-tuning), в глубоком обучении — подход к трансферному обучению, при котором параметры предварительно обученной модели нейронной сети обучаются на новых данных[1].

Тонкая настройка может проводиться на всей нейронной сети или только на подмножестве её слоёв, в этом случае слои, которые не подвергаются тонкой настройке, «замораживаются» (то есть не изменяются во время обратного распространения ошибки)[2]. Модель также может быть дополнена «адаптерами», которые состоят из гораздо меньшего количества параметров, чем исходная модель, и тонко настраиваться параметро-эффективным способом путём настройки весов адаптеров и сохранения весов остальной части модели замороженными[3].

Для некоторых архитектур, таких как сверточные нейронные сети, обычно сохраняют более ранние слои (ближайшие к входному слою) замороженными, поскольку они улавливают низкоуровневые признаки, в то время как более поздние слои часто различают высокоуровневые признаки, которые могут быть более связаны с задачей, на которую обучается модель[2][4].

Модели, которые предварительно обучены на больших общих корпусах, обычно тонко настраиваются путем повторного использования их параметров в качестве отправной точки и добавления специфичного для задачи слоя, обученного с нуля[5]. Тонкая настройка полной модели также является распространенной и часто даёт лучшие результаты, но требует больших вычислительных затрат[6].

Тонкая настройка обычно осуществляется посредством обучения с учителем, но существуют также методы тонкой настройки модели с использованием слабого контроля[7]. Тонкая настройка может комбинироваться с обучением с подкреплением на основе обратной связи от человека для создания языковых моделей, таких как ChatGPT (тонко настроенная версия моделей GPT) и Sparrow[8][9].

Устойчивость[править]

Тонкая настройка может ухудшить устойчивость модели к сдвигам распределения[10][11]. Одним из способов смягчения этого является линейная интерполяция весов тонко настроенной модели с весами исходной модели, что может значительно повысить производительность вне распределения, в значительной степени сохраняя производительность тонко настроенной модели в распределении[12].

Варианты[править]

Низкоранговая адаптация[править]

Низкоранговая адаптация (LoRA) — это техника на основе адаптеров для эффективной тонкой настройки моделей. Основная идея заключается в разработке матрицы низкого ранга, которая затем добавляется к исходной матрице[13]. Адаптер, в этом контексте, представляет собой набор низкоранговых матриц, которые при добавлении к базовой модели создают тонко настроенную модель. Это позволяет добиться производительности, приближающейся к тонкой настройке полной модели, при меньших требованиях к пространству. Языковую модель с миллиардами параметров можно тонко настроить с помощью LoRA, используя всего несколько миллионов параметров.

Тонкая настройка на основе LoRA стала популярной в сообществе Stable Diffusion[14]. Поддержка LoRA была интегрирована в библиотеку Diffusers от Hugging Face[15]. Поддержка LoRA и аналогичных методов также доступна для широкого спектра других моделей через пакет Parameter-Efficient Fine-Tuning (PEFT) от Hugging Face[16].

Тонкая настройка представлений[править]

Тонкая настройка представлений (ReFT) — это техника, разработанная исследователями из Стэнфордского университета, направленная на тонкую настройку больших языковых моделей (LLM) путем изменения менее 1 % их представлений. В отличие от традиционных методов параметро-эффективной тонкой настройки (PEFT), которые в основном сосредоточены на обновлении весов, ReFT нацелен на конкретные части модели, имеющие отношение к задаче, для которой проводится тонкая настройка. Этот подход основан на понимании того, что модели глубокого обучения кодируют богатую семантическую информацию в своих представлениях, что предполагает, что изменение представлений может быть более эффективной стратегией, чем обновление весов[17].

Методы ReFT работают на замороженной базовой модели и обучают специфические для задачи вмешательства в скрытые представления, а также обучают вмешательства, которые манипулируют небольшой долей представлений модели, чтобы направить поведение модели на решение задач последующего уровня во время вывода. Одним из конкретных методов в семействе ReFT является низкоранговая линейная подпространственная ReFT (LoReFT), которая вмешивается в скрытые представления в линейном подпространстве, охватываемом низкоранговой матрицей проекции[17]. LoReFT можно рассматривать как эквивалент низкоранговой адаптации (LoRA), основанный на представлениях.

Применения[править]

Обработка естественного языка

Тонкая настройка широко распространена в обработке естественного языка (NLP), особенно в области языкового моделирования. Большие языковые модели, такие как серия базовых моделей OpenAIGPT, могут быть тонко настроены на данных для конкретных нисходящих задач NLP (задачи, использующие предварительно обученную модель) для улучшения производительности по сравнению с неизмененной предварительно обученной моделью[6].

Коммерческие модели[править]

Коммерчески предлагаемые большие языковые модели иногда могут быть тонко настроены, если поставщик предлагает API для тонкой настройки. По состоянию на 19 июня 2023 года API для тонкой настройки языковых моделей предлагаются OpenAI и службой Azure OpenAI от Microsoft Azure для подмножества их моделей, а также Google Cloud Platform для некоторых из их моделей PaLM и другими компаниями[18][19][20]. Не все коммерческие модели в настоящее время поддерживают тонкую настройку.

Модели с открытым исходным кодом[править]

Компании, такие как Meta (семейство БЯМ Llama), Alibaba (семейство БЯМ Qwen) и Mistral AI (Mixtral), опубликовали в GitHub большие языковые модели с открытым исходным кодом различных размеров, которые могут быть тонко настроены. Модели с открытым исходным кодом могут быть выгодны для компаний с точки зрения безопасности данных, поскольку компании могут контролировать, где размещена модель.

Примечания[править]

  1. Quinn Joanne Dive into deep learning: tools for engagement. — Thousand Oaks, California. — ISBN 978-1-5443-6137-6.
  2. 2,0 2,1 CS231n Convolutional Neural Networks for Visual Recognition. cs231n.github.io. Проверено 9 марта 2023.
  3. (2022) "Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning" in Advances in Neural Information Processing Systems. 35: 1950–1965, Curran Associates, Inc.. 
  4. (2013) «Visualizing and Understanding Convolutional Networks». ECCV.
  5. (2020) «Fine-Tuning Pretrained Language Models: Weight Initializations, Data Orders, and Early Stopping».
  6. 6,0 6,1 (2021) «Prompt Tuning GPT-2 language model for parameter-efficient domain adaptation of ASR systems». InterSpeech.
  7. (2020) «Fine-Tuning Pre-trained Language Model with Weak Supervision: A Contrastive-Regularized Self-Training Approach». Association for Computational Linguistics.
  8. Introducing ChatGPT. openai.com. Проверено 9 марта 2023.
  9. (2022) «Improving alignment of dialogue agents via targeted human judgements». DeepMind.
  10. Radford, Alec; Kim, Jong Wook; Hallacy, Chris; Ramesh, Aditya; Goh, Gabriel; Agarwal, Sandhini; Sastry, Girish; Askell, Amanda; et al. (2021), "Learning Transferable Visual Models From Natural Language Supervision", arΧiv:2103.00020 [cs.CV] 
  11. (2022) «Fine-Tuning can Distort Pretrained Features and Underperform Out-of-Distribution». ICLR.
  12. Wortsman, Mitchell; Ilharco, Gabriel; Kim, Jong Wook; Li, Mike; Kornblith, Simon; Roelofs, Rebecca; Gontijo-Lopes, Raphael; Hajishirzi, Hannaneh; et al. (2022), "Robust fine-tuning of zero-shot models", arΧiv:2109.01903 [cs.CV] 
  13. (2022-01-28) «LoRA: Low-Rank Adaptation of Large Language Models» (en). ICLR.
  14. Ryu, Simo Using Low-rank adaptation to quickly fine-tune diffusion models. GitHub (February 13, 2023). Проверено 19 июня 2023.
  15. Using LoRA for Efficient Stable Diffusion Fine-Tuning. Hugging Face (January 26, 2023). Проверено 19 июня 2023.
  16. Parameter-Efficient Fine-Tuning using 🤗 PEFT. huggingface.co. Проверено 20 июня 2023.
  17. 17,0 17,1 Wu, Zhengxuan; Arora, Aryaman; Wang, Zheng & Geiger, Atticus (2024-04-07), «ReFT: Representation Finetuning for Language Models» 
  18. Fine-tuning. OpenAI. Проверено 19 июня 2023.
  19. Learn how to customize a model for your application. Microsoft. Проверено 19 июня 2023.
  20. Tune text foundation models. Проверено 19 июня 2023.
Руниверсалис

Одним из источников, использованных при создании данной статьи, является статья из википроекта «Руниверсалис» («Руни», руни.рф) под названием «Тонкая настройка (глубокое обучение)», расположенная по адресу:

Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC BY-SA.

Всем участникам Руниверсалиса предлагается прочитать «Обращение к участникам Руниверсалиса» основателя Циклопедии и «Почему Циклопедия?».