De quoi s'agit-il
L'affinage complet poursuit l'entraînement de l'ensemble du modèle sur vos exemples : chaque poids de chaque couche peut être modifié. C'est la forme la plus directe d'affinage, et mécaniquement identique aux dernières étapes de construction du modèle. L'alternative est l'affinage efficace des paramètres (PEFT), comme LoRA, qui gèle les poids d'origine et entraîne un petit module complémentaire à la place.
Où passe la mémoire
L'exécution d'un modèle ne nécessite que ses poids. L'entraînement de chaque poids nécessite, pour chacun d'eux, le poids lui-même, son gradient et l'état de l'optimiseur. Avec AdamW dans la configuration habituelle en précision mixte, cela représente un poids de 16 bits et un gradient de 16 bits pour les passes avant et arrière, plus une copie maîtresse de 32 bits du poids et les deux moyennes mobiles de 32 bits d'Adam, conservées pour des mises à jour stables. L'évaluation de l'article ZeRO estime cela à 16 octets par poids ; d'autres configurations qui conservent les gradients en 32 bits atteignent environ 18 octets.
per trainable weight · AdamW · mixed precision
16-bit weight 2 bytes
16-bit gradient 2 bytes
32-bit master weight 4 bytes
32-bit Adam momentum 4 bytes
32-bit Adam variance 4 bytes
───────────────────────────────────
16 bytes + activations
7B model: 7 × 10⁹ × 16 bytes ≈ 112 GB- Exécution simple en 16 bits : 7 milliards × 2 octets ≈ 14 Go.
- Affinage complet avec AdamW : 7 milliards × 16 octets ≈ 112 Go, avant les activations. C'est plus que la capacité d'un seul GPU de 80 Go. La tâche est donc répartie sur plusieurs GPU à l'aide de techniques comme ZeRO ou FSDP, qui divisent l'état de l'optimiseur, les gradients et les poids entre eux.
- LoRA au rang 16 sur toutes les couches linéaires d'un modèle 7B de type Llama : environ 40 millions de poids entraînables, soit 0,6 % du modèle. Leur état d'entraînement représente environ 40 millions × 16 octets ≈ 0,6 Go, qui s'ajoutent aux 14 Go de la base gelée : soit environ 15 Go.
- QLoRA : la base gelée maintenue en 4 bits occupe environ 3,5 Go. Le total se situe donc autour de 4 à 5 Go plus les activations, ce qui est à la portée d'un seul GPU grand public.
- Les activations s'ajoutent dans tous les cas et augmentent avec la taille du lot et la longueur de la séquence. Le gradient checkpointing permet de réduire la mémoire d'activation au prix de calculs supplémentaires.
Ce que cela vous apporte
L'affinage complet peut modifier le modèle dans n'importe quelle direction, et pas seulement dans le petit sous-espace qu'un adaptateur peut atteindre. Une étude comparant les deux a révélé que l'affinage complet apprend des modifications avec un rang 10 à 100 fois supérieur aux paramètres LoRA typiques, et qu'il apprenait davantage sur de vastes ensembles d'entraînement de code et de mathématiques d'environ 100 000 exemples. Pour les cas d'usage courants en entreprise, à savoir quelques centaines à quelques milliers d'exemples de conversation qui enseignent le ton, le format et la terminologie du domaine, LoRA appliqué à toutes les couches égale généralement l'affinage complet.
Ce que cela vous coûte : l'oubli
L'oubli catastrophique est la tendance d'un réseau entraîné sur de nouvelles données à perdre ce qu'il a appris auparavant. Étant donné que l'affinage complet peut modifier chaque poids, il offre le plus de possibilités d'écraser les capacités générales : un modèle d'assistance qui répond parfaitement à vos questions sur les produits, mais qui est devenu moins performant pour suivre des instructions non liées. Une étude empirique sur l'affinage continu des instructions a observé cet oubli sur des modèles de 1B à 7B paramètres, et il a été constaté que les modèles affinés avec LoRA, qui maintient la base gelée, oublient moins.
- Moins d'époques et un taux d'apprentissage plus faible, afin que les poids s'éloignent moins de leur valeur initiale.
- Intégrer des données générales, par exemple en ajoutant une part d'exemples variés de suivi d'instructions aux vôtres.
- Évaluer au-delà de votre tâche. Incluez quelques questions générales dans l'évaluation afin de détecter toute régression.
- Privilégier un adaptateur, à moins qu'un gain lié à un affinage complet n'ait été réellement mesuré.
Affinage complet et LoRA côte à côte
| Aspect | Affinage complet | Adaptateur LoRA |
|---|---|---|
| Poids entraînables | La totalité | Généralement 0,1 à 1 % |
| Mémoire d'entraînement | Environ 16 octets par poids, plus les activations | La base gelée (2 octets par poids, ou environ 0,5 en 4 bits) plus un petit adaptateur |
| Résultat sauvegardé | Une copie complète du modèle, par ex. environ 14 Go pour 7B en 16 bits | Un fichier d'adaptateur, souvent de quelques dizaines à centaines de Mo |
| Taux d'apprentissage typique | Autour de 1e-5 | Environ 10× plus élevé |
| Risque d'oubli | Plus élevé | Plus faible |
| Idéal pour | Grands jeux de données enseignant de nouvelles compétences substantielles | Ton, format et formulation du domaine ; plusieurs variantes d'une même base |
Erreurs courantes
- Choisir l'affinage complet parce qu'il semble plus exhaustif. Sur de petits jeux de données, il coûte généralement beaucoup plus cher sans gain mesurable.
- Estimer la mémoire GPU à partir de la taille de téléchargement du modèle. L'entraînement de chaque poids nécessite environ huit fois les poids en 16 bits, plus les activations.
- Entraîner sur de nombreuses époques avec un taux d'apprentissage élevé et ne tester que la tâche cible, pour découvrir ensuite que les compétences générales se sont dégradées.
- Oublier que chaque affinage complet produit un modèle de taille normale à stocker et à déployer.
Références et lectures complémentaires
Les sources externes s'ouvrent dans un nouvel onglet.
- 01ZeRO: Memory Optimizations Toward Training Trillion Parameter ModelsRajbhandari et al., 2019 · arXiv · arxiv.orgLa source de l'évaluation à 16 octets par paramètre, et du partitionnement utilisé pour le répartir sur les GPU.
- 02GPU memory usageHugging Face Transformers docs · huggingface.coUne répartition des poids, des états de l'optimiseur, des gradients et des activations pendant l'entraînement.
- 03LoRA Learns Less and Forgets LessBiderman et al., 2024 · arXiv · arxiv.orgUne comparaison minutieuse de l'affinage complet et de LoRA sur le code et les mathématiques : ce que chacun apprend et ce que chacun oublie.
- 04An Empirical Study of Catastrophic Forgetting in Large Language Models During Continual Fine-tuningLuo et al., 2023 · arXiv · arxiv.org
- 05LoRA vs. full fine-tuningTogether AI docs · docs.together.aiLes conseils pratiques d'un fournisseur sur le moment opportun pour passer d'un adaptateur à un affinage complet.