LoRA
La technique de fine-tuning qui gèle les poids d'origine et n'entraîne que deux petites matrices ajoutées à côté.
En une phrase
Section intitulée « En une phrase »LoRA (Low-Rank Adaptation, adaptation de rang faible) est une technique de fine-tuning qui laisse les milliards de poids d’un modèle intacts et n’entraîne que deux petites matrices ajoutées à côté : quelques dizaines de mégaoctets à apprendre au lieu de dizaines de gigaoctets.
L’analogie
Section intitulée « L’analogie »Imagine une fresque murale immense que tu veux adapter à ton goût. Repeindre le mur entier, c’est le fine-tuning complet : long, cher, sans retour en arrière. LoRA tend devant la fresque un calque transparent, et tu ne peins que sur le calque. Le mur ne bouge pas ; tu peux décrocher ton calque, en accrocher un autre, en garder dix dans un tiroir. Et si le résultat te convient, tu le reportes sur le mur une fois pour toutes : personne ne verra plus qu’il y a eu deux couches.
Comment ça marche
Section intitulée « Comment ça marche »Le vrai coût, c’est l’entraînement
Section intitulée « Le vrai coût, c’est l’entraînement »Un modèle qui répond garde ses poids en mémoire et rien d’autre : environ 2 octets par paramètre en 16 bits, soit 16 Go pour un modèle de 8 milliards de paramètres. L’entraînement en précision mixte avec l’optimiseur Adam réclame plutôt 18 octets par paramètre — 6 pour les poids, 4 pour les gradients, 8 pour les statistiques de l’optimiseur — soit 140 Go pour le même modèle.
Le levier de LoRA est là : ces 12 octets de surcoût ne sont réclamés que par les paramètres qu’on entraîne réellement. Passe sous le pour cent de paramètres entraînés, et ils s’évaporent.
Une grosse table remplacée par deux tables fines
Section intitulée « Une grosse table remplacée par deux tables fines »Une couche applique une matrice de poids, c’est-à-dire un grand tableau de nombres. Prenons-en un de 4096 lignes sur 4096 colonnes : 16,7 millions de cases.
Certains tableaux de cette taille contiennent en fait très peu d’information indépendante. Imagine une console de mixage à 4096 curseurs, tous pilotés par seulement 16 molettes maîtresses : l’affichage montre 4096 valeurs, la réalité n’en compte que 16. Un tel tableau s’écrit comme le produit de deux tableaux fins — 4096 lignes sur 16 colonnes, puis 16 lignes sur 4096 colonnes — et on dit qu’il est de rang faible. Le petit nombre partagé au milieu, ici 16, c’est son rang.
LoRA gèle la matrice de poids d’origine, appelons-la W, et lui adjoint deux tableaux fins A et B, eux seuls entraînables. La couche calcule W + B×A. Le décompte est frappant : 4096 × 16 + 16 × 4096 fait 131 072 paramètres à apprendre, contre 16,7 millions si on retouchait W entière. Moins de 1 %. Et l’initialisation rend la greffe indolore : A est tirée au hasard selon une loi normale, B remplie de zéros, leur produit vaut donc zéro au premier pas et le modèle démarre en se comportant exactement comme avant.
Le pari de Hu et al. (2021) tient en une phrase : ce n’est pas W qui est de rang faible, c’est sa mise à jour. Spécialiser un modèle demanderait bien moins de degrés de liberté que l’entraîner.
Le rang r et le facteur d’échelle alpha
Section intitulée « Le rang r et le facteur d’échelle alpha »Le rang r fixe la largeur du canal par lequel l’adaptateur peut modifier le modèle. Avec r = 4, et LoRA greffé sur les seules matrices de requête et de valeur de l’attention, le papier d’origine fait passer le point de sauvegarde de GPT-3 175B de 350 Go à 35 Mo — un facteur 10 000 sur les paramètres entraînés — et la mémoire vidéo d’entraînement de 1,2 To à 350 Go, avec 25 % d’accélération au passage.
Second réglage, le facteur d’échelle alpha (α) : avant d’être ajouté à W, le produit B×A est multiplié par α/r. Les auteurs expliquent qu’ajuster α revient à peu près à ajuster le taux d’apprentissage, et se contentent de le fixer au premier rang essayé ; en pratique on croise souvent α au double de r.
Fusionner l’adaptateur, ou l’empiler
Section intitulée « Fusionner l’adaptateur, ou l’empiler »L’entraînement fini, on calcule W + B×A une seule fois et on garde le résultat. L’adaptateur disparaît dans les poids et le modèle répond à la même vitesse qu’avant. C’est ce qui a fait gagner LoRA face aux « adapters » de la génération précédente (Houlsby et al., 2019), petits modules glissés entre les couches : ceux-là allongent le chemin de calcul et ajoutent de la latence à chaque réponse.
L’opération est réversible : on soustrait B×A pour retrouver le modèle nu, on ajoute B’×A’ pour changer de spécialité. Et rien n’oblige à fusionner : en gardant les adaptateurs détachés, un serveur sert un même modèle de base à des dizaines de clients ayant chacun le sien. S-LoRA (Sheng et al., 2023) va jusqu’à des milliers d’adaptateurs sur une seule carte.
QLoRA, quand le modèle de base est compressé aussi
Section intitulée « QLoRA, quand le modèle de base est compressé aussi »QLoRA (Dettmers et al., 2023) ajoute une couche d’économie : le modèle de base est chargé en 4 bits et reste gelé, les gradients le traversent jusqu’aux adaptateurs, qui restent en précision plus haute. Le papier annonce le réglage d’un modèle de 65 milliards de paramètres sur une seule carte de 48 Go, sans perdre les performances d’un fine-tuning complet en 16 bits, grâce notamment à un format 4 bits taillé pour des poids distribués normalement (NF4). Leur modèle Guanaco atteignait 99,3 % du niveau de ChatGPT sur le benchmark Vicuna, après 24 heures sur un seul GPU.
Une limite demeure : LoRA excelle à ajuster un style, un format, une terminologie, une tâche précise, mais son budget de paramètres est trop mince pour lui faire ingérer une encyclopédie — c’est le RAG qui prend le relais.
Dans la vraie vie
Section intitulée « Dans la vraie vie »- Apple Intelligence, présenté en juin 2024, est sans doute le déploiement grand public le plus massif du procédé. Le modèle embarqué, environ 3 milliards de paramètres, est livré généraliste ; chaque fonction — résumer un mail, reformuler un message — arrive sous forme d’un adaptateur de rang 16 pesant quelques dizaines de mégaoctets, chargé, mis en cache et échangé à la volée pendant que les poids de base restent figés.
- LoRA Land (Predibase, avril 2024) a mesuré la chose à la chaîne : 310 modèles réglés en LoRA 4 bits, sur 10 modèles de base et 31 tâches. Sur ces tâches, ils dépassent leur modèle de base de 34 points en moyenne et GPT-4 de 10 points. La démo publique sert 25 adaptateurs Mistral-7B depuis une seule carte A100, entraînés pour moins de 8 dollars pièce en moyenne.
- La génération d’images vit entièrement là-dessus. Sur les plateformes de partage comme Civitai, les LoRA se comptent par milliers : un style graphique, un personnage, un type d’éclairage, chacun dans un fichier de quelques dizaines à quelques centaines de mégaoctets face aux gigaoctets du modèle de base, et on en empile plusieurs à la fois.
- Côté outillage, la bibliothèque PEFT de Hugging Face fait référence : quelques lignes pour greffer un LoRA, un
merge_and_unload()pour le fusionner.
Idées reçues
Section intitulée « Idées reçues »- « LoRA remplace le fine-tuning complet. » Pas dans tous les cas. Sur les tâches ciblées qu’il a mesurées, le papier d’origine trouve LoRA à égalité ou au-dessus, avec des milliers de fois moins de paramètres entraînés. Mais pour déplacer le modèle en profondeur, vers une langue qu’il ne connaît pas, le budget étroit de l’adaptateur finit par se voir.
- « Plus le rang est élevé, meilleur est le résultat. » Le papier d’origine observe l’inverse : sur ses jeux de données, un rang de 1 ou 2 suffisait et l’augmenter n’améliorait rien. Monter le rang coûte de la mémoire et rapproche du surapprentissage : commence bas, ne monte que si tes mesures le réclament.
- « Un adaptateur LoRA ralentit le modèle. » Pas une fois fusionné : B×A est additionné à W définitivement, il ne reste qu’une matrice, et l’inférence coûte ce qu’elle coûtait. Le seul surcoût est celui qu’on choisit, en gardant les adaptateurs détachés pour en servir plusieurs.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- LoRA: Low-Rank Adaptation of Large Language Models — Hu et al., 2021 (EN) : le papier fondateur.
- QLoRA: Efficient Finetuning of Quantized LLMs — Dettmers et al., 2023 (EN) : LoRA sur un modèle compressé en 4 bits.
- Le guide conceptuel LoRA de PEFT — Hugging Face (EN) :
r,lora_alphaet la fusion. - LoRA ou full fine-tuning : quelle stratégie choisir ? — Géraud Bourdin, 2024 (FR) : le comparatif, code à l’appui.
- Introducing Apple’s On-Device and Server Foundation Models — Apple, 2024 (EN) : des adaptateurs de rang 16 embarqués.
- LoRA Land: 310 Fine-tuned LLMs that Rival GPT-4 — Zhao et al., 2024 (EN) : 310 adaptateurs mesurés sur 31 tâches.
Voir aussi
Section intitulée « Voir aussi »Voir aussi
- EntraînementFine-tuning (réglage fin)Poursuivre l'entraînement d'un modèle déjà entraîné sur tes propres données pour lui apprendre un style, un domaine ou une tâche.
- OptimisationQuantificationRéduire la précision des poids d'un modèle pour le rendre plus léger, plus rapide et utilisable sur du matériel grand public.
- FondamentauxPoids (paramètres)Les milliards de nombres qui stockent tout ce qu'un modèle a appris pendant son entraînement.
- EntraînementRLHFL'entraînement par comparaison de réponses, qui apprend à un modèle non pas à répondre juste, mais à répondre comme on l'attend.
- ÉcosystèmeRAG (génération augmentée par la recherche)Aller chercher des documents pertinents dans une base de connaissances et les donner au modèle pour qu'il réponde avec des informations à jour et sourcées.