Brief IA

LoRA : La technique de fine-tuning est-elle vraiment indétrônable ?

🔬 Research·Tom Levy·

LoRA : La technique de fine-tuning est-elle vraiment indétrônable ?

LoRA : La technique de fine-tuning est-elle vraiment indétrônable ?
Key Takeaways
1Le fine-tuning efficace en paramètres (PEFT) permet d'optimiser les modèles avec moins de mémoire, même pour les modèles quantifiés.
2LoRA, une méthode PEFT, domine largement le paysage avec 98,4% d'utilisation sur Hugging Face Hub.
3Des benchmarks montrent que d'autres techniques PEFT peuvent surpasser LoRA selon certains critères, malgré sa popularité.
💡Why it mattersLa dépendance excessive à LoRA pourrait freiner l'innovation en négligeant des alternatives potentiellement plus performantes.
Le brief IA que lisent les pros

Le brief IA que les pros lisent chaque soir

Les 7 actus IA du jour, décryptées en 5 min. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisis ton rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

📄
Full Analysis

Quand devez-vous utiliser le PEFT ?

Dans le monde des modèles de machine learning, il existe une vaste gamme de modèles ouverts disponibles pour les développeurs. Cependant, ces modèles ne sont pas toujours à la hauteur des attentes pour des cas d'utilisation spécifiques. Le prompting, une méthode consistant à donner des instructions précises au modèle, peut améliorer les performances, mais souvent, cela ne suffit pas. Plutôt que de créer un modèle entièrement nouveau, une approche plus efficace consiste à fine-tuner un modèle existant.

Le processus de fine-tuning, bien que puissant, est notoirement gourmand en ressources mémoire. En effet, il nécessite souvent de charger le modèle complet plusieurs fois, ce qui peut être prohibitif. La quantification est une technique qui permet de réduire l'empreinte mémoire d'un modèle, mais elle présente une limitation : les modèles quantifiés ne peuvent pas être fine-tunés directement. Pour contourner ce problème, une série de techniques a été développée, regroupées sous le terme de fine-tuning efficace en paramètres (PEFT).

Le PEFT permet de fine-tuner un modèle en utilisant seulement une fraction de la mémoire normalement requise. Il offre également la possibilité de fine-tuner des modèles quantifiés. Parmi ses autres avantages, on trouve la réduction significative de la taille des points de contrôle, une meilleure résistance à l'oubli catastrophique, et la capacité de servir plusieurs fine-tunes à partir d'un même modèle de base.

Chez Hugging Face, nous avons développé la bibliothèque PEFT, qui regroupe de nombreuses techniques PEFT sous une API unifiée. Cette bibliothèque s'intègre parfaitement avec d'autres outils de l'écosystème, tels que Transformers et Diffusers. Elle prend également en charge plusieurs méthodes de quantification, rendant le fine-tuning efficace en paramètres plus accessible. Que vous souhaitiez fine-tuner sur vos propres données ou explorer de nouvelles méthodes PEFT, PEFT est un excellent point de départ.

LoRA : La reine des techniques de fine-tuning 👑

Parmi les techniques de fine-tuning efficaces en paramètres, une méthode s'est particulièrement distinguée : la Low Rank Adaptation, ou LoRA. Cette technique fonctionne en ajoutant un petit nombre de paramètres au-dessus du modèle de base, tout en gelant les poids de ce dernier. Seuls ces nouveaux paramètres sont formés, ce qui rend LoRA extrêmement efficace.

LoRA est sans conteste la technique PEFT la plus populaire. Pour illustrer cette popularité, examinons quelques chiffres :

  • Sur un échantillon de 20 834 cartes de modèles sur le Hugging Face Hub mentionnant une technique PEFT, 20 509 mentionnent LoRA, soit 98,4%.
  • En analysant les techniques PEFT populaires pour la génération d'images sur un site externe, sur 10 000 points de contrôle, 7 111 étaient des LoRA. Les autres techniques identifiées incluent LoCon (363) et DoRA (11), une variante probable de LoRA. Cela signifie que 95,0% des points de contrôle PEFT sont des LoRA.
  • Une recherche du code from peft import <PEFT CONFIG> sur GitHub montre que 71,3% des résultats concernent LoRA. Les techniques suivantes sont LoHa (3,7%) et AdaLoRA (3,5%).

Ces chiffres, bien qu'imparfaits, indiquent clairement que LoRA est presque certainement la technique PEFT la plus courante. Cela pourrait simplement signifier que LoRA est la plus efficace pour la majorité des utilisateurs, ce qui expliquerait sa popularité. Cependant, une autre explication est possible : LoRA, étant l'une des premières techniques PEFT à gagner en popularité, a bénéficié d'une visibilité accrue, de nombreux tutoriels et exemples, ainsi que du meilleur support dans les packages en aval. Ainsi, sa popularité s'auto-entretient.

Cela soulève une question importante : sommes-nous en train de négliger des performances potentielles en nous limitant à LoRA ? De nombreux chercheurs affirment que leurs techniques surpassent LoRA. Ne devrions-nous pas explorer ces alternatives plus récentes ?

Choisir la bonne technique PEFT en fonction des résultats des articles est problématique

Il existe une multitude d'articles scientifiques qui examinent des techniques de fine-tuning autres que LoRA. Rien que dans la bibliothèque PEFT, on compte plus de 40 techniques PEFT distinctes à ce jour, sans compter les nombreuses variations. Pour presque chacune de ces techniques, des chercheurs affirment qu'elles surpassent LoRA sur leurs benchmarks.

Le problème avec ces affirmations réside dans la pression exercée sur les chercheurs pour qu'ils produisent des résultats qui surpassent les benchmarks existants. Même sans intention malveillante, cela peut biaiser les résultats, par exemple en consacrant moins de temps à ajuster les techniques alternatives par rapport à celle proposée par les chercheurs. Une étude a montré, par exemple, que LoRA peut égaler des techniques PEFT prétendument meilleures en ajustant simplement le taux d'apprentissage.

Une autre complication est que chaque article choisit un ensemble différent de techniques PEFT à comparer et un ensemble différent de benchmarks à exécuter. Même lorsque la même technique est comparée sur le même benchmark, le code est souvent indisponible ou difficile à exécuter soi-même, ce qui rend les résultats difficiles à reproduire.

En fin de compte, il est difficile de déterminer quelle technique PEFT fonctionne le mieux pour vous en ne consultant que les résultats des articles. Par conséquent, vous pourriez être tenté de simplement opter pour le choix par défaut, LoRA.

Comment nous abordons le benchmarking dans le PEFT

Chez Hugging Face, nous avons réfléchi à la manière dont nous pouvons aider les utilisateurs à prendre des décisions éclairées sur la technique PEFT à utiliser. Avec la bibliothèque PEFT, nous fournissons déjà un package qui implémente de nombreuses techniques PEFT et les expose avec la même API. La prochaine étape consiste à fournir des benchmarks qui peuvent éclairer davantage la question discutée.

Nous avions déjà un benchmark qui vérifie le fine-tuning des LLMs sur un ensemble de données mathématiques depuis un certain temps. Ce benchmark prend un LLM et le fine-tune sur le raisonnement en chaîne de pensée pour produire le résultat d'une question mathématique à l'aide d'un modèle de base qui n'est pas fine-tuné pour les instructions. Le benchmark vérifie donc si le modèle peut apprendre à effectuer un raisonnement mathématique et aussi à ajuster la sortie générée au format attendu.

Pour étendre nos conclusions à une autre modalité, nous avons également ajouté un benchmark de génération d'images. Celui-ci teste si le modèle peut être fine-tuné pour apprendre un nouveau concept, un peluche de chat, et le générer dans de nouveaux contextes sans oublier les concepts existants.

Toutes les techniques PEFT sont évaluées selon les mêmes conditions exactes : même modèle de base, même ensemble de données, même code d'entraînement et d'évaluation, même matériel. Comme les différents utilisateurs ont des besoins différents, nous suivons plus que la simple performance de test. En plus de l'utilisation de la VRAM, nous suivons des métriques telles que l'oubli/le dérive, le temps d'exécution et la taille des points de contrôle. Les résultats sont conçus pour fonctionner sur du matériel grand public, et ajouter une nouvelle expérience nécessite seulement d'ajouter une nouvelle configuration PEFT et d'exécuter un script.

Puisque nous comparons toutes les techniques PEFT sur un pied d'égalité et n'avons aucun intérêt dans la course, nous croyons que ces benchmarks peuvent dessiner un tableau objectif de l'efficacité des différentes techniques PEFT. Nous soutenons que si vous avez votre propre ensemble de données, vous pouvez adopter une approche similaire et tirer parti de la bibliothèque PEFT pour évaluer plusieurs techniques PEFT.

Nos conclusions : LoRA fonctionne bien mais n'est pas nécessairement le meilleur choix

Après avoir terminé les exécutions de benchmark, nous avons constaté que bien que LoRA fonctionne bien, d'autres méthodes PEFT peuvent la surpasser sur un ou plusieurs axes et devraient donc être prises en compte.

Une façon d'interpréter les résultats est de penser en termes de compromis, par exemple : quelle est la performance du modèle sur l'ensemble de test par rapport à la mémoire nécessaire pour l'entraîner ? Si une technique PEFT ne peut pas être surpassée sur ces deux métriques en même temps par une autre technique, elle se trouve sur la frontière de Pareto. En d'autres termes : si vous voulez une meilleure précision de test, vous avez besoin de plus de mémoire, et si vous voulez plus d'efficacité mémoire, vous devez renoncer à la précision.

Prenons un moment pour examiner les résultats du benchmark sur l'ensemble de données Math. En ce qui concerne la précision de test par rapport à la mémoire, nous trouvons que LoRA se trouve effectivement sur la frontière de Pareto. Elle atteint 53,2% de précision de test et nécessite 22,6 Go de VRAM au maximum. Cependant, il existe d'autres techniques PEFT sur la frontière de Pareto. Par exemple, BEFT atteint 32,9% de précision de test et nécessite seulement 20,2 Go de mémoire au maximum. À l'autre extrémité, nous avons Lily, qui atteint 54,9% de précision de test mais nécessite 25,6 Go de mémoire. Selon ce qui est le plus important pour vous, vous pourriez conclure que LoRA ne présente pas le meilleur compromis.

Il est également important de noter que même si LoRA fonctionne bien sur cette tâche, nous ne parlons pas de LoRA standard. D'un côté, nous avons LoRA avec initialisation stabilisée par rang, qui est une technique pour ajuster différemment la contribution de LoRA par rapport à l'initialisation par défaut et fournit une très bonne précision de test (53,2%). De l'autre côté, nous avons LoRA-FA, qui utilise un optimiseur spécialisé pour LoRA qui gèle une partie des poids de LoRA et est donc plus efficace en mémoire (20,2 Go). La LoRA normale n'atteint qu'une précision de 48,1% à 22,5 Go de mémoire et devrait donc être évitée au profit des alternatives.

Brief IA — L'actualité IA en français

L'essentiel de l'actualité de l'intelligence artificielle, décrypté et expliqué chaque jour.