Réglage fin — Wikipédia
En apprentissage profond, le réglage fin ou ajustement (fine-tuning en anglais) est une approche d'apprentissage par transfert dans laquelle les paramètres d'un modèle pré-entraîné sont ajustés avec de nouvelles données[1]. Cela notamment permet d'adapter un modèle d'IA généraliste à une tâche spécifique, ou d'ajuster son comportement.
Le réglage fin peut être effectué sur l'ensemble du réseau de neurones, ou bien seulement sur un sous-ensemble de ses couches, auquel cas les couches qui ne sont pas entraînées sont « gelées » (ne sont pas mises à jour lors de l'étape de rétropropagation )[2]. Un modèle peut également être complété par des « adaptateurs » composés de beaucoup moins de paramètres que le modèle de base, qui peut lui dans ce cas être gelé[3].
Pour certaines architectures comme les réseaux de neurones convolutifs, il est courant de conserver les couches antérieures (les plus proches de la couche d'entrée) gelées, car elles capturent des fonctionnalités génériques d'analyse d'image (comme l'identification de contours ou de textures...), tandis que les couches ultérieures discernent souvent des fonctionnalités de plus haut niveau, souvent davantage liées à la tâche que le modèle doit accomplir[2],[4].
Les modèles pré-entraînés sur des corpus vastes et généraux sont généralement ajustés en réutilisant les paramètres entraînés du modèle comme point de départ, et en ajoutant une couche spécifique à la tâche à effectuer, qui est entraînée à partir de zéro. Le réglage fin du modèle complet est également courant et donne souvent de meilleurs résultats, mais coûte plus cher en termes de calcul[5].
Le réglage fin utilise le souvent l'apprentissage supervisé[6]. Il peut être combiné des méthodes d'apprentissage par renforcement comme RLHF ou l'IA constitutionnelle pour rendre les grands modèles de langage plus utiles, inoffensifs et véridiques[7].
Robustesse
[modifier | modifier le code]Le réglage fin peut dégrader la robustesse d'un modèle face aux changements de distribution, c'est-à-dire face à des données significativement différentes de celles utilisées pour le réglage[8],[9]. Une solution consiste à interpoler linéairement les paramètres du modèle après réglage, avec les pondérations du modèle d'origine. Ce qui peut augmenter considérablement les performances hors distribution tout en conservant largement les performances en distribution du modèle affiné[10].
Variantes
[modifier | modifier le code]Adaptation de bas rang
[modifier | modifier le code]L'adaptation de bas rang (Low-rank adaptation ou LoRA en anglais) est une technique basée sur un adaptateur pour ajuster efficacement les modèles. L’idée de base est de concevoir une matrice de bas rang qui est ensuite ajoutée à la matrice d’origine[11]. Un « adaptateur » LoRA est un ensemble de matrices de bas rang qui, ajoutées à un modèle de base, produisent un modèle ajusté. Cette technique offre des performances proches du réglage fin du modèle complet, mais en nécessitant beaucoup moins d'espace mémoire. L'adapteur d'un modèle comportant des milliards de paramètres peut ne contenir que quelques millions de paramètres.
Le réglage fin basé sur LoRA est devenu populaire dans la communauté Stable Diffusion[12]. LoRA a été intégrée dans la bibliothèque Diffusers de Hugging Face[13]. La prise en charge de LoRA et de techniques similaires est également disponible pour une large gamme d'autres modèles grâce à la librairie PEFT (Parameter-Efficient Fine-Tuning) de Hugging Face[14].
Applications
[modifier | modifier le code]Traitement automatique des langues
[modifier | modifier le code]Le réglage fin est courant en traitement automatique des langues. Les grands modèles de langage comme les modèles de fondation de type GPT peuvent être ajustés sur des tâches spécifiques de traitement des langues pour y améliorer les performances par rapport au modèle pré-entraîné de base[5].
Certains grands modèles de langage peuvent être ajustés via des plateformes de cloud computing comme Microsoft Azure ou Google Cloud Platform[15],[16].
Références
[modifier | modifier le code]- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Fine-tuning (deep learning) » (voir la liste des auteurs).
- (en) Joanne Quinn, Dive into deep learning: tools for engagement, Thousand Oaks, California, (ISBN 978-1-5443-6137-6, lire en ligne [archive du ]), p. 551
- (en) « CS231n Convolutional Neural Networks for Visual Recognition », cs231n.github.io (consulté le )
- (en) « Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning », Advances in Neural Information Processing Systems, (lire en ligne)
- (en) Matthew D Zeiler et Rob Fergus, « Visualizing and Understanding Convolutional Networks », ECCV, (arXiv 1311.2901)
- (en) « Prompt Tuning GPT-2 language model for parameter-efficient domain adaptation of ASR systems », InterSpeech, (arXiv 2112.08718)
- Yu, Zuo, Jiang et Ren, « Fine-Tuning Pre-trained Language Model with Weak Supervision: A Contrastive-Regularized Self-Training Approach », Association for Computational Linguistics, (arXiv 2010.07835)
- (en) Lance Eliot, « Latest Generative AI Boldly Labeled As Constitutional AI Such As Claude By Anthropic Has Heart In The Right Place, Says AI Ethics And AI Law », sur Forbes, (consulté le )
- (en) « Learning Transferable Visual Models From Natural Language Supervision », ICML, (arXiv 2103.00020, lire en ligne)
- Kumar, Raghunathan, Jones et Ma, « Fine-Tuning can Distort Pretrained Features and Underperform Out-of-Distribution », ICLR, (arXiv 2202.10054)
- (en) « Robust fine-tuning of zero-shot models », ICLR, (arXiv 2109.01903, lire en ligne)
- (en) « LoRA: Low-Rank Adaptation of Large Language Models », ICLR, (arXiv 2106.09685, lire en ligne)
- Ryu, « Using Low-rank adaptation to quickly fine-tune diffusion models », GitHub, (consulté le )
- Cuenca et Paul, « Using LoRA for Efficient Stable Diffusion Fine-Tuning », Hugging Face, (consulté le )
- (en) « Parameter-Efficient Fine-Tuning using 🤗 PEFT », huggingface.co (consulté le )
- (en) « Fine-tuning », sur OpenAI
- (en) « Customize a model with fine-tuning », sur Microsoft Azure, (consulté le )