Vous avez décidé de fine-tuner un modèle 7B sur vos propres données. Puis vous tombez sur la première vraie bifurcation : trois noms de méthodes, chacune avec sa propre réponse. La doc d'Unsloth dit de commencer par QLoRA. Axolotl dit que ça dépend de votre matériel. La moitié des articles que vous avez survolés disent « utilisez LoRA pour la plupart des cas » et passent à autre chose. Pendant ce temps, vous fixez un seul GPU, sans être sûr qu'il puisse même en faire tourner une.
C'est la décision qui conditionne tout le reste. La méthode choisie fixe votre budget VRAM, le budget VRAM détermine votre matériel, et le matériel détermine votre coût. Choisissez la mauvaise méthode et vous gaspillez soit de l'argent sur de la mémoire GPU dont vous n'aviez pas besoin, soit un week-end entier à traquer des crashs d'out-of-memory sur une carte qui n'était jamais taillée pour la tâche.
Réglons donc la question. Voici ce qui différencie réellement LoRA, QLoRA et le full fine-tuning, ce que chacun vous coûte en mémoire et en qualité, et une règle pour aiguiller votre propre cas vers l'un d'eux.
La version courte
- Le choix par défaut est QLoRA. Pour la plupart des fine-tunings sur un seul GPU, commencez par QLoRA. Le tableau d'Axolotl situe une exécution QLoRA sur 7-8B à environ 10-14 GB de VRAM, en supposant un contexte court et de petits micro-batches. Cela correspond à de nombreuses cartes grand public ou prosumer de 12-24 GB, mais pas à toutes les cartes à faible VRAM. Optez pour un LoRA classique quand vous avez de la mémoire à revendre et voulez des étapes plus rapides ; réservez le full fine-tuning aux rares cas qui en ont réellement besoin.
- L'écart de VRAM est important. Fine-tuner un modèle 7B nécessite environ 60-80 GB pour le full fine-tuning, 16-24 GB pour LoRA, et 10-14 GB pour QLoRA, selon les chiffres publiés par Axolotl. Cet écart est la raison même pour laquelle les méthodes économes en paramètres existent.
- La perte de qualité dépend de la tâche, elle n'est pas uniforme. Sur la plupart des tâches de suivi d'instructions et de sortie structurée, LoRA et QLoRA se situent à quelques pourcents du fine-tuning complet. L'écart s'élargit sur le raisonnement complexe comme les maths. C'est là que le fine-tuning complet justifie encore son coût.
- Le fine-tuning complet est l'exception, pas la référence. On y monte pour des changements de distribution importants, des modifications à l'échelle du pré-entraînement, ou des tâches critiques en matière de raisonnement où les benchmarks montrent un écart, pas comme choix par défaut sûr.
Ce que ce guide ne couvre pas
Il s'agit d'un guide de sélection de méthode, pas d'un tutoriel d'implémentation. Quelques éléments sont délibérément hors du champ de ce guide :
- Variantes de LoRA (DoRA, VeRA, LoRA+). Les trois méthodes principales sont la décision qui compte en premier ; les variantes sont des raffinements auxquels on recourt plus tard.
- Code étape par étape. Pas de commandes d'installation ni de scripts d'entraînement ici. C'est un tutoriel pratique séparé, non couvert ici.
- Entraînement multi-GPU (FSDP, DeepSpeed ZeRO) et la préparation des jeux de données : les deux sont de vastes sujets à part entière.
- RLHF, DPO et l'optimisation des préférences. Il s'agit d'une classe d'objectifs différente du fine-tuning supervisé.
- La question de savoir si vous devez faire du fine-tuning. Si vous n'êtes pas sûr que le fine-tuning soit le bon outil par rapport au retrieval, cette comparaison mérite sa propre réponse avant de choisir une méthode ici.
Qu'est-ce qui différencie vraiment LoRA, QLoRA et le fine-tuning complet ?
Le fine-tuning complet met à jour chaque paramètre du modèle. LoRA gèle le modèle de base et entraîne à la place de petites matrices d'adaptateurs de rang faible (environ 0,1 à 2 % du nombre total de paramètres). QLoRA ajoute une étape supplémentaire par rapport à LoRA : il quantifie le modèle de base gelé jusqu'à une précision de 4 bits (en utilisant un type de données appelé NF4, NormalFloat) afin que la base occupe beaucoup moins de mémoire pendant que vous entraînez les adaptateurs.
La façon la plus claire de garder les trois en tête est de les voir comme une échelle, chaque barreau retirant un coût à celui du dessous.
Le fine-tuning complet est le premier échelon, et le plus lourd. Chaque poids est entraînable, donc l'optimiseur doit suivre un gradient et un état d'optimiseur pour chaque paramètre du modèle. C'est là que va la mémoire, et on abordera le calcul dans la section suivante.
LoRA (Low-Rank Adaptation) gèle les poids d'origine et injecte de petites matrices entraînables dans les couches du modèle. Seules ces matrices apprennent ; le modèle de base est juste embarqué pour le trajet. Le papier LoRA rapporte que cela réduit les paramètres entraînables jusqu'à 10 000x pour un modèle de 175B et réduit la mémoire GPU d'environ 3x à cette échelle, tout en obtenant des performances "équivalentes ou meilleures que le fine-tuning en qualité de modèle" sur les modèles testés par les auteurs. Comme si peu de paramètres changent, le résultat entraîné est minuscule. Le blog PEFT donne deux points de référence utiles : un checkpoint complet de 40 GB pour bigscience/mt0-xxl, et un exemple LoRA distinct où l'adaptateur sauvegardé ne fait que 19 MB. L'idée reste la même : les checkpoints PEFT sont généralement minuscules par rapport aux checkpoints complets du modèle.
QLoRA prend LoRA et réduit la partie que LoRA a laissée intacte : la base gelée. Quantifier ces poids en NF4 4 bits signifie que le modèle de base occupe une fraction de la mémoire qu'il occuperait en 16 bits, tandis que les adaptateurs continuent d'entraîner à pleine précision par-dessus. Le papier QLoRA décrit NF4 comme "théoriquement optimal du point de vue de l'information pour des poids distribués normalement", ce qui est une façon précise de dire que la représentation en 4 bits est choisie pour correspondre à la distribution réelle des poids du modèle, donc on perd moins qu'avec un arrondi naïf en 4 bits.
C'est toute la pile conceptuelle : le fine-tuning complet entraîne tout, LoRA gèle la base et entraîne des adaptateurs, QLoRA compresse la base gelée et entraîne des adaptateurs. Tout le reste (VRAM, qualité, quand utiliser lequel) découle de ces trois choix.
De combien de VRAM chaque méthode a-t-elle besoin ?
Pour un modèle 7B, les chiffres approximatifs sont d'environ 60-80 GB pour le full fine-tuning, 16-24 GB pour LoRA, et 10-14 GB pour QLoRA, selon le tableau publié par Axolotl. Conséquence pratique : QLoRA tient généralement sur de nombreux GPU grand public ou semi-pro à 12-24 GB en contexte court et petit batch, tandis que le full fine-tuning d'un modèle 7B nécessite une mémoire de data center ou une configuration multi-GPU.
Pourquoi le full fine-tuning est-il si lourd ? Un peu de calcul. Quand vous entraînez chaque paramètre, le GPU garde trois éléments par paramètre : le poids lui-même, son gradient, et l'état de l'optimiseur (les optimiseurs de type Adam conservent deux valeurs supplémentaires par poids). C'est pourquoi la facture mémoire représente plusieurs fois la taille du modèle seul. LoRA fige la base, donc elle ne paie cette taxe gradient-et-optimiseur que sur les petites matrices d'adaptateur. QLoRA stocke en plus la base figée en 4-bit au lieu de 16-bit, réduisant le plus gros coût restant.
Voici comment les trois méthodes se comparent selon la taille du modèle, d'après la documentation d'Axolotl et le papier QLoRA pour les chiffres des grands modèles :
| Méthode | Modèle 1-3B | Modèle 7-8B | Modèle 70B+ |
|---|---|---|---|
| Full fine-tuning (bf16 + AdamW) | 24-32 GB | 60-80 GB | 4-8x 80 GB |
| LoRA (bf16) | 8-12 GB | 16-24 GB | 2x 80 GB |
| QLoRA (4-bit NF4) | 6-8 GB | 10-14 GB | 40-48 GB |
Sources : la documentation d'Axolotl pour les trois méthodes selon la taille du modèle ; l'article QLoRA rapporte de façon indépendante le fine-tuning d'un modèle de 65B sur un seul GPU de 48 GB « tout en préservant des performances de tâche équivalentes à un finetuning complet en 16 bits », ce qui correspond au chiffre de 70B pour QLoRA. Le blog sur la quantification en 4 bits montre séparément un modèle de 13B entraîné sur un seul T4 de 16 GB et un modèle de 33B sur un GPU de 24 GB avec QLoRA. Ce sont des repères utiles si votre cible se situe entre les lignes du tableau.
Le seul chiffre à retenir : un modèle de 65B sur une seule carte de 48 GB. C'est le résultat phare de QLoRA, et il change ce que signifie « je n'ai qu'un seul GPU ».
À retenir de cette section : la hiérarchie de VRAM est full >> LoRA > QLoRA, et le saut de full à QLoRA est assez important pour faire passer une tâche d'un rack multi-GPU à une seule carte.
LoRA ou QLoRA vous font-ils vraiment perdre en qualité ?
Pour la plupart des tâches de suivi d'instructions et de sortie structurée, LoRA et QLoRA se situent à quelques points de pourcentage du fine-tuning complet. L'écart s'élargit sur le raisonnement complexe (les maths en particulier), où le fine-tuning complet garde clairement l'avantage. La réponse n'est donc pas « quasi équivalent » ni « pire ». Elle dépend de la tâche, et le type de tâche vous indique de quel côté de cette ligne vous vous trouvez.
Les preuves les plus claires, tâche par tâche, viennent d'une étude Anyscale de septembre 2023 sur étude Anyscale sur Llama 2. Sur ViGGO, une tâche de représentation fonctionnelle structurée, LoRA a atteint environ 95 % de la précision du fine-tuning complet sur les modèles 7B et 13B : un écart de 2 % que les auteurs ont jugé acceptable. Sur la génération SQL, LoRA a presque égalé le fine-tuning complet, et le modèle LoRA 13B a même battu le 7B entièrement fine-tuné. Sur GSM8k, un benchmark de raisonnement mathématique, LoRA a systématiquement sous-performé par rapport au fine-tuning complet sur 7B et 13B, l'écart ne se resserrant qu'à 70B. L'équipe d'Anyscale pense que l'approximation de bas rang de LoRA pourrait ne pas capturer une compétence aussi complexe que le raisonnement mathématique en plusieurs étapes.
Une réserve sur ces chiffres : cette étude a été menée sur Llama 2 en septembre 2023. Le schéma par type de tâche (sortie structurée proche, raisonnement complexe plus éloigné) est la conclusion durable qui a tenu depuis. Mais les pourcentages exacts peuvent différer sur un modèle de base plus récent comme Llama 3 ou Mistral, donc considérez les chiffres comme la forme du compromis, pas une garantie pour votre modèle.
L'histoire de qualité de QLoRA est la sienne propre. L'article QLoRA rapporte que Guanaco, son modèle 65B entraîné avec QLoRA, a atteint 99,3 % des performances de ChatGPT sur le benchmark Vicuna. Impressionnant, mais limité à ce benchmark spécifique et cette comparaison de 2023, pas une affirmation générale « QLoRA égale ChatGPT ». Face au LoRA classique, Axolotl caractérise QLoRA comme portant une « légère dégradation due au bruit de quantification » : la base en 4 bits introduit de petites erreurs que la base en pleine précision de LoRA n'a pas. Pour la plupart des travaux, c'est invisible ; pour une tâche sensible aux petits décalages de précision, c'est le genre de chose à vérifier plutôt qu'à supposer.
Astuce de pro : La surprise de qualité la plus courante n'est pas QLoRA contre LoRA. C'est un modèle fine-tuné qui sort moins bon que le modèle de base dont vous êtes parti. Cela signifie généralement que l'entraînement a fait quelque chose que vous ne vouliez pas : trop agressif sur un jeu de données étroit, ou évalué seulement sur la nouvelle tâche tandis que la capacité générale régressait silencieusement. Testez toujours le modèle fine-tuné sur quelques prompts hors de votre distribution d'entraînement avant de lui faire confiance. Une régression là est le signal pour reculer, pas pour livrer.
À retenir de cette section : la parité de qualité dépend de la tâche. La sortie structurée et le suivi d'instructions sont sûrs pour LoRA/QLoRA ; le raisonnement complexe est là où le fine-tuning complet justifie encore son coût.
Quand Devriez-vous Choisir Chaque Méthode ?
Commencez par QLoRA pour la plupart des fine-tunings sur un seul GPU. Passez à un LoRA classique quand vous avez de la marge VRAM et voulez des étapes plus rapides ou un plafond de qualité légèrement supérieur. Réservez le fine-tuning complet aux cas qui en ont réellement besoin : grands changements de distribution, changements à l'échelle du pré-entraînement, ou tâches critiques en raisonnement où l'écart de benchmark est réel. Orientez-vous selon trois entrées, dans l'ordre : VRAM disponible, type de tâche et exigence de qualité, puis vitesse.
Voici l'orientation sous forme « faites ceci, pas cela » :
1. Vérifiez d'abord votre VRAM. Si vous utilisez une seule carte avec 24 GB ou moins (la plupart des GPU grand public et prosumer), QLoRA est votre méthode par défaut, car c'est la seule des trois qui tient de façon fiable un modèle 7B dans cette enveloppe. Ne partez pas sur du full fine-tuning avec une seule carte grand public ; le tableau ci-dessus vous dit que ça ne rentrera pas pour un job 7B, et vous passerez le week-end à l'apprendre à vos dépens.
2. Ensuite, examinez votre tâche et votre exigence de qualité. Si votre tâche est du suivi d'instructions, de la sortie structurée, du SQL ou de l'adaptation générale à un domaine, les données d'Anyscale indiquent que LoRA et QLoRA vous offrent une qualité proche du full fine-tuning. Restez sur le choix par défaut. Si votre tâche est fortement axée sur le raisonnement (maths en plusieurs étapes, chaînes logiques complexes) et que la qualité n'est pas négociable, c'est votre première vraie raison d'envisager de passer au full fine-tuning, car c'est le seul type de tâche où les benchmarks montrent un écart constant.
3. Ensuite, pesez la vitesse. QLoRA sacrifie une partie de la vitesse par étape pour ses économies de mémoire : la base en 4 bits doit être déquantifiée à la volée. Si vous avez la VRAM nécessaire pour exécuter du LoRA classique (16-24 GB pour un modèle 7B), vous obtenez des étapes plus rapides et vous évitez le bruit lié à la quantification, ce qui fait de LoRA le meilleur choix quand la mémoire n'est pas la contrainte limitante et que vous itérez beaucoup.
Quand is le full fine-tuning est-il la bonne réponse ? La recommandation d'Axolotl est directe : il est requis pour le pré-entraînement, et c'est le choix « quand vous disposez d'une mémoire GPU abondante ou de configurations multi-GPU, et que vous avez besoin de performances maximales ». En dehors de ces conditions (et pour la grande majorité du fine-tuning pratiqué au quotidien, qui consiste à adapter un modèle existant à un comportement ou un domaine spécifique), les méthodes économes en paramètres vous donnent l'essentiel de la qualité pour une fraction du matériel.
Unsloth énonce clairement le choix par défaut :
« Nous recommandons de commencer par QLoRA, car c'est l'une des méthodes les plus accessibles et efficaces pour entraîner des modèles. »
C'est la règle. Par défaut, optez pour QLoRA, passez à LoRA pour la vitesse quand vous avez la mémoire nécessaire, et ne passez au fine-tuning complet que lorsque la tâche ou l'échelle l'exige.
À retenir de cette section : QLoRA est le choix par défaut ; LoRA est la mise à niveau vitesse et marge de manœuvre ; le fine-tuning complet est l'exception que l'on justifie par un changement de distribution, un pré-entraînement ou un benchmark de raisonnement.
Que se trompe-t-on souvent sur les méthodes de fine-tuning ?
Deux idées fausses sont responsables de la plupart des week-ends perdus. La première consiste à traiter le fine-tuning comme un moyen d'enseigner de nouveaux faits à un modèle, alors que son effet principal est de façonner le comportement. La seconde consiste à supposer qu'on peut acheter de la qualité en tournant un bouton : qu'un rang LoRA plus élevé, ou un full fine-tuning plutôt que du QLoRA, garantit automatiquement un meilleur modèle. Les deux sont à moitié vraies, et c'est exactement pour ça qu'elles trompent.
Le fine-tuning enseigne-t-il de nouveaux faits à un modèle ?
Il y a ici un véritable clivage entre experts, donc mieux vaut bien saisir la nuance que de choisir un camp. Plusieurs guides pratiques présentent l'idée que « le fine-tuning enseigne de nouveaux faits » comme l'idée fausse numéro un : leur argument est que le fine-tuning est bien meilleur pour façonner la façon dont un modèle répond que pour injecter de manière fiable des faits précis qu'il n'a jamais vus en pré-entraînement. La documentation d'Unsloth s'y oppose directement, qualifiant de « fausse » l'affirmation selon laquelle le fine-tuning ne peut pas enseigner de nouvelles connaissances, et décrivant le fine-tuning comme un moyen d'« injecter et d'apprendre de nouvelles informations spécifiques à un domaine ».
Les deux ont partiellement raison, et la lecture qui réconcilie les deux est la suivante : le fine-tuning est fiable pour façonner le comportement et renforcer des connaissances déjà latentes dans le modèle de base, et il peut encoder des schémas spécifiques à un domaine. Ce pour quoi il n'est pas fiable, c'est implanter des faits isolés totalement absents du pré-entraînement. Plus votre objectif ressemble à « mémoriser ce document précis », plus vous risquez d'utiliser le mauvais outil, et la récupération d'information (retrieval) pourrait mieux vous servir. La recommandation pratique survit donc au désaccord : appuyez-vous sur le fine-tuning pour le comportement et le style, restez sceptique quant à son usage comme mécanisme d'injection de faits.
Un rang LoRA plus élevé améliore-t-il toujours la qualité ?
Non, et c'est le bouton le plus facile à trop tourner. L'intuition veut qu'un rang plus élevé donne plus de capacité à l'adaptateur, donc que plus doit forcément être mieux. Databricks a testé cela de manière empirique et a constaté que doubler le rang « ne semble entraîner aucune augmentation perceptible de la qualité de sortie ». Ce qui a fait la différence dans leurs expériences, c'est le choix des couches ciblées (adapter toutes les couches linéaires plutôt que seulement les blocs d'attention) et non le fait d'augmenter le chiffre du rang. La leçon à retenir : consacrez votre effort d'ajustement aux modules cibles et à la qualité des données avant de le consacrer à gonfler le rang.
La qualité de LoRA est-elle toujours équivalente au fine-tuning complet ?
Pas universellement, et un article de recherche récent identifie un mode de défaillance précis. "LoRA vs Full Fine-tuning: An Illusion of Equivalence" de Shuttleworth et al. montre que l'entraînement LoRA peut introduire des "dimensions intruses" (des vecteurs singuliers de rang élevé absents des modèles entièrement fine-tunés) et les relie à l'oubli dans les scénarios d'apprentissage continu, où le même modèle est fine-tuné à plusieurs reprises. C'est une mise en garde précise, pas une réfutation générale: si vous faites un seul round de fine-tuning pour une seule tâche, les preuves générales de parité de qualité restent valables. Si vous enchaînez les fine-tunings et que vous tenez à préserver la capacité générale du modèle de base, c'est ce mode de défaillance qu'il faut surveiller.
Foire aux questions
Quelle est la différence entre LoRA, QLoRA et le fine-tuning complet ?
Le fine-tuning complet met à jour tous les paramètres du modèle. LoRA gèle le modèle de base et entraîne à la place de petites matrices d'adaptateurs de rang faible, environ 0,1 à 2% des paramètres. QLoRA fait ce que fait LoRA, mais quantifie aussi le modèle de base gelé en précision 4-bit NF4, si bien que la base occupe beaucoup moins de mémoire pendant l'entraînement des adaptateurs. Le résultat est une hiérarchie de mémoire claire: le fine-tuning complet est le plus lourd, LoRA est plus léger, QLoRA est le plus léger de tous.
De combien de VRAM ai-je besoin pour faire du fine-tuning sur un modèle de 7B ?
Pour un modèle de 7B, les chiffres d'Axolotl situent le fine-tuning complet à environ 60-80 GB, LoRA à 16-24 GB, et QLoRA à 10-14 GB. QLoRA est la seule des trois méthodes qui tient généralement dans une seule GPU grand public ou prosumer de 12-24 GB; le fine-tuning complet d'un modèle de 7B nécessite une mémoire de classe data center ou plusieurs GPU.
La qualité de QLoRA est-elle inférieure à celle de LoRA ou du fine-tuning complet ?
Cela dépend de la tâche. Pour la plupart des travaux de suivi d'instructions et de sortie structurée, QLoRA se situe à quelques pourcents du fine-tuning complet, et Axolotl ne décrit qu'une « légère dégradation due au bruit de quantification » par rapport au LoRA classique. L'écart s'élargit sur les tâches de raisonnement complexe comme les mathématiques, où le fine-tuning complet a montré un avantage constant dans une étude Anyscale de 2023 sur Llama 2.
Quand le Fine-Tuning Complet en Vaut-il Vraiment la Peine ?
Le fine-tuning complet justifie son coût pour le pré-entraînement, les grands changements de distribution, et les tâches critiques en raisonnement où les benchmarks montrent un réel écart de qualité. C'est aussi la voie à suivre quand vous disposez de beaucoup de mémoire GPU ou d'une configuration multi-GPU et avez besoin de la qualité maximale. Pour le cas courant (adapter un modèle existant à un comportement ou domaine spécifique), LoRA ou QLoRA vous donne la majeure partie de la qualité pour une fraction du matériel.
Le fine-tuning enseigne-t-il de nouveaux faits à un modèle ?
En partie. Le fine-tuning est fiable pour façonner le comportement et renforcer des connaissances déjà latentes dans le modèle de base, et il peut encoder des motifs spécifiques à un domaine. Il n'est pas fiable pour implanter des faits discrets totalement absents du pré-entraînement. Il existe ici un véritable désaccord d'experts. La documentation d'Unsloth affirme que le fine-tuning peut enseigner de nouvelles connaissances, tandis que d'autres guides appellent cela la principale idée fausse, et la vision réconciliatrice est d'utiliser le fine-tuning pour le comportement et le style, et de recourir à la récupération quand l'objectif est de rappeler des faits spécifiques.
Où Cela Vous Laisse
Le choix de la méthode se résume à un défaut et deux issues de secours : commencez par QLoRA, passez à LoRA quand la mémoire n'est pas la contrainte et que vous voulez des étapes plus rapides, passez au fine-tuning complet seulement quand un changement de distribution, un pré-entraînement, ou un benchmark de raisonnement l'exige.
Une fois la méthode fixée, la décision suivante est le matériel qu'elle implique. Votre choix de méthode vient de vous dire si vous cherchez une carte grand public unique ou de la mémoire data-center. Si vous voulez comparer des cartes spécifiques pour des charges de travail IA, notre benchmark H100 vs RTX 4090 couvre ce terrain. Dimensionner le GPU pour la méthode que vous avez choisie, et un guide pas à pas pour exécuter le travail d'entraînement lui-même, sont des guides séparés à part.