Ressources/Entraînement du modèle/Ce qui se passe lors de l'entraînement

Méthode

Affinage complet

L'affinage complet met à jour chaque poids du modèle. Il offre la plus grande marge de manœuvre pour modifier le comportement, mais nécessite plusieurs fois la taille du modèle en mémoire GPU et est le plus susceptible d'éroder les compétences que possédait le modèle de base.

Chapitre 65 min de lecture5 références

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.

Mémoire par poids entraînable
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
Ajustement fin complet16 bits + Adam≈ 112 GoLoRAbase 16 bits, gelée≈ 15 GoQLoRAbase 4 bits, gelée≈ 4–5 GoAdam + copie fp32poids geléspoids entraînablesgradientsétat de l'optimiseur
Mémoire GPU approximative pour l'ajustement fin d'un modèle de 7 milliards de paramètres, avant les activations. Un ajustement fin complet avec Adam nécessite environ 16 octets pour chaque poids : les poids, leurs gradients, une copie maîtresse en pleine précision et deux statistiques d'optimiseur. LoRA maintient la base gelée, de sorte que les gradients et l'état de l'optimiseur n'existent que pour le petit adaptateur (ici environ 40 millions de poids).
Un modèle à 7 milliards de paramètres, trois approches
  1. Exécution simple en 16 bits : 7 milliards × 2 octets ≈ 14 Go.
  2. 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.
  3. 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.
  4. 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.
  5. 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

AspectAffinage completAdaptateur LoRA
Poids entraînablesLa totalitéGénéralement 0,1 à 1 %
Mémoire d'entraînementEnviron 16 octets par poids, plus les activationsLa 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 bitsUn fichier d'adaptateur, souvent de quelques dizaines à centaines de Mo
Taux d'apprentissage typiqueAutour de 1e-5Environ 10× plus élevé
Risque d'oubliPlus élevéPlus faible
Idéal pourGrands jeux de données enseignant de nouvelles compétences substantiellesTon, 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.

  1. 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.
  2. 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.
  3. 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.
  4. 04An Empirical Study of Catastrophic Forgetting in Large Language Models During Continual Fine-tuningLuo et al., 2023 · arXiv · arxiv.org
  5. 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.

Transformez des semaines de travail d'expert en quelques minutes

Découvrez comment Scalata s'adapte à votre équipe, à vos données et à vos contrôles.

Contacter le service commercial