Ce que c'est
Le PEFT (fine-tuning efficace en paramètres) est une famille de méthodes qui adaptent un modèle en entraînant un petit nombre de nouveaux poids tandis que les poids d'origine restent gelés. LoRA (Low-Rank Adaptation), introduit par Hu et al. en 2021, est la plus utilisée. Elle repose sur une observation : la modification que le fine-tuning doit apporter à une grande matrice de poids peut être décrite avec beaucoup moins de nombres que la matrice elle-même. En termes mathématiques, la modification a un rang faible.
Comment ça fonctionne
Prenez une couche linéaire avec une matrice de poids W de dimension d × k. Un fine-tuning complet apprendrait une modification ΔW de la même dimension : d × k nouveaux nombres. LoRA apprend plutôt cette modification comme le produit de deux matrices fines. A (r × k) compresse l'entrée de la couche à r nombres, et B (d × r) les redéploie. Le rang r est petit, généralement de 4–64, tandis que d et k se comptent en milliers.
h = W·x + (α / r) · B·A·x
W : d × k frozen
A : r × k trainable, random at the start
B : d × r trainable, zero at the start → B·A = 0 at step 0
trainable weights per adapted layer = r × (d + k)- Initialisation. A commence de manière aléatoire et B commence à zéro, donc B·A = 0 et le modèle adapté est exactement le modèle de base à l'étape 0. L'entraînement l'en éloigne progressivement.
- Mise à l'échelle. La sortie de l'adaptateur est multipliée par alpha ÷ r. Cela maintient la taille de son effet à peu près stable lorsque r change, de sorte que le taux d'apprentissage n'a pas besoin d'être réajusté pour chaque rang. Une variante, le LoRA à rang stabilisé (rsLoRA), divise plutôt par la racine carrée de r, ce qui se comporte mieux aux rangs élevés.
- Fusion. Après l'entraînement, B·A peut être multiplié et ajouté à W. Le modèle fusionné conserve la forme d'origine et s'exécute à la vitesse initiale, sans latence supplémentaire. L'adaptateur peut également être conservé sous forme de petit fichier séparé et chargé par-dessus la base, ce qui permet à un seul modèle de base de servir plusieurs adaptateurs.
- Une projection d'attention de 4096 × 4096 : 16,8 millions de poids dans W.
- LoRA au rang 8 : A est de 8 × 4096 et B de 4096 × 8, soit 2 × 4096 × 8 = 65 536 poids entraînables, 0,4 % de la couche.
- Un modèle 7B de type Llama au rang 16 sur toutes les couches linéaires (quatre projections d'attention et trois projections MLP dans chacune des 32 couches) : environ 40 millions de poids entraînables, soit à peu près 0,6 % du modèle.
- Mémoire d'entraînement : ces 40 millions de poids nécessitent environ 0,6 Go pour les gradients et l'état AdamW, contre environ 112 Go pour un fine-tuning complet des 7 milliards.
- L'adaptateur sauvegardé en 16 bits pèse environ 80 Mo, contre 14 Go pour une copie complète du modèle.
- Dans l'article d'origine, sur GPT-3 175B, LoRA a réduit les paramètres entraînables jusqu'à 10 000× et la mémoire GPU d'environ 3× par rapport à un fine-tuning complet avec Adam.
Les paramètres
La dimension interne de A et B, et donc la capacité de l'adaptateur : combien de directions de changement indépendantes il peut apprendre dans chaque couche. Les poids entraînables augmentent proportionnellement à r. Des rangs faibles suffisent pour le ton, le style et le format ; les jeux de données plus vastes et riches en connaissances bénéficient de rangs plus élevés. Une fois que l'adaptateur a une capacité suffisante pour les données, un rang plus élevé ajoute des coûts sans améliorer les résultats. Certains fournisseurs appellent cela la taille de l'adaptateur.
Un facteur de mise à l'échelle : la sortie de l'adaptateur est multipliée par alpha ÷ r. Un alpha plus grand donne plus de poids à chaque mise à jour, un peu comme un taux d'apprentissage plus élevé, c'est pourquoi de nombreuses configurations fixent alpha et ajustent plutôt le taux d'apprentissage. Les conventions courantes sont alpha égal à r, alpha égal à deux fois r, ou une valeur fixe telle que 16 ou 32. Choisissez une convention et conservez-la : modifier r tout en gardant alpha fixe modifie également l'échelle.
- Les modules cibles déterminent quelles couches reçoivent un adaptateur. L'article d'origine n'adaptait que les projections de requêtes et de valeurs de l'attention. Des travaux ultérieurs, notamment QLoRA et une étude de 2025 de Thinking Machines, ont révélé que l'adaptation de toutes les couches linéaires, en particulier les couches MLP (feed-forward), est nécessaire pour égaler un fine-tuning complet. Les bibliothèques proposent généralement une option « toutes les couches linéaires ».
- Le dropout LoRA met aléatoirement à zéro une partie de l'entrée de l'adaptateur pendant l'entraînement, une légère protection contre le surapprentissage sur les petits jeux de données. Les valeurs courantes vont de 0 à 0,1.
- Taux d'apprentissage. LoRA nécessite généralement un taux d'apprentissage plus élevé qu'un fine-tuning complet : environ dix fois plus élevé selon l'étude de Thinking Machines, qui a également révélé que le meilleur taux varie peu d'un rang à l'autre.
- Taille de lot. La même étude a révélé que LoRA tolère moins bien les très grands lots qu'un fine-tuning complet, des tailles de lot modérées constituent donc le choix le plus sûr.
QLoRA : des adaptateurs sur une base 4 bits
QLoRA (Dettmers et al., 2023) entraîne des adaptateurs LoRA ordinaires de 16 bits mais stocke le modèle de base gelé dans un format de 4 bits conçu pour des poids normalement distribués (NF4). Il ajoute une double quantification, qui compresse les constantes de quantification elles-mêmes, et des optimiseurs paginés qui absorbent les pics de mémoire. L'article a effectué le fine-tuning d'un modèle de 65 milliards de paramètres sur un seul GPU de 48 Go tout en préservant les performances de tâche d'un fine-tuning de 16 bits. Le compromis est la vitesse : les poids de 4 bits sont décompressés à la volée, chaque étape est donc un peu plus lente.
Quand LoRA est le bon choix
| Situation | À privilégier généralement |
|---|---|
| Ton, format ou formulation de domaine, de centaines à des milliers d'exemples | LoRA |
| Mémoire GPU ou budget limités | LoRA, ou QLoRA |
| Plusieurs variantes spécifiques à une tâche d'un même modèle de base | LoRA : un petit adaptateur pour chacune |
| Conserver les capacités générales du modèle de base est important | LoRA, qui oublie moins |
| De très vastes jeux de données permettant d'enseigner de nouvelles compétences substantielles, comme le code ou les mathématiques | Un fine-tuning complet peut permettre d'en apprendre davantage |
Erreurs courantes
- N'adapter que les couches d'attention. Sur la plupart des données de fine-tuning, cette méthode est moins performante que les adaptateurs sur toutes les couches linéaires, y compris le MLP.
- Réutiliser un taux d'apprentissage de fine-tuning complet. LoRA nécessite généralement un taux environ dix fois supérieur, sans quoi il n'apprend presque rien.
- Modifier le rang tout en gardant alpha fixe, sans remarquer qu'alpha ÷ r, et donc la taille de pas effective, a également changé.
- Attendre d'un rang plus élevé qu'il sauve un jeu de données restreint ou incohérent. La capacité n'est d'aucune aide lorsque les exemples ne présentent aucun motif clair.
- Charger un adaptateur sur un modèle de base différent, ou sur une version différente de celui-ci, que celui sur lequel il a été entraîné.
Références et lectures complémentaires
Les sources externes s'ouvrent dans un nouvel onglet.
- 01LoRA: Low-Rank Adaptation of Large Language ModelsHu et al., 2021 · arXiv · arxiv.orgL'article d'origine : l'idée de rang faible, la mise à l'échelle alpha ÷ r et les résultats sur GPT-3.
- 02QLoRA: Efficient Finetuning of Quantized LLMsDettmers et al., 2023 · arXiv · arxiv.orgPoids de base NF4 de 4 bits, double quantification et optimiseurs paginés.
- 03LoRA Without RegretThinking Machines Lab, 2025 · thinkingmachines.aiQuand LoRA égale le fine-tuning complet, pourquoi toutes les couches comptent, et la règle du taux d'apprentissage multiplié par 10×.
- 04LoRAHugging Face PEFT docs · huggingface.coChaque paramètre LoRA tel qu'implémenté : rang, alpha, dropout, modules cibles et rsLoRA.
- 05A Rank Stabilization Scaling Factor for Fine-Tuning with LoRAKalajdzievski, 2023 · arXiv · arxiv.org