Aller au contenu
Entraînement

Fine-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.

7 min de lecture
  • #entraînement
  • #spécialisation
  • #SFT

Le fine-tuning consiste à reprendre un modèle déjà entraîné et à poursuivre son entraînement sur un jeu de données beaucoup plus petit, pour lui apprendre un style, un domaine ou une tâche précise, sans jamais repartir de zéro.

Un chef étoilé a passé des années à apprendre son métier : les gestes, les cuissons, les accords. C’est le pré-entraînement, et il a coûté une fortune en temps. Tu l’embauches dans ton bouchon lyonnais, et en quelques semaines il connaît ta carte, tes fournisseurs, ta façon de dresser les assiettes. Il ne réapprend rien de ce qu’il savait, il se spécialise : tu ne paies pas la formation initiale, seulement l’adaptation. Avec le risque qui va avec — à force de ne cuisiner que ta carte, il peut perdre la main sur le reste.

Un assistant que tu utilises tous les jours n’a pas été entraîné une fois, mais trois.

  1. Le pré-entraînement avale un corpus gigantesque pour apprendre la langue : environ 15 000 milliards de tokens pour Llama 3.
  2. Le fine-tuning supervisé (SFT, pour supervised fine-tuning) lui montre des exemples de la tâche attendue : une consigne, une bonne réponse. C’est là qu’il apprend à répondre au lieu de continuer le texte.
  3. L’alignement ajuste enfin le modèle sur des préférences humaines, ce qui est le rôle du RLHF et de ses successeurs.

Le mot « fine-tuning » couvre tout ce qui suit le pré-entraînement, mais dans l’usage courant il désigne l’étape 2. La CNIL, qui le traduit par « ajustement », le définit comme la spécialisation d’un modèle pré-entraîné « pour un faible nombre d’itérations ».

Mécaniquement, rien de neuf : c’est la boucle d’entraînement du pré-entraînement, à l’identique. Le modèle prédit, la perte chiffre l’écart, la rétropropagation calcule les gradients, la descente de gradient déplace les poids. Trois choses changent, et trois seulement.

  • Le point de départ. Les poids ne sont plus tirés au hasard, ils portent déjà la grammaire, des faits et des styles.
  • La durée. Meta rapporte 8 500 à 9 000 pas d’optimisation pour le SFT de ses plus gros modèles Llama 3, quand le pré-entraînement se compte en mois.
  • La prudence. Le taux d’apprentissage reste petit — de l’ordre de 10⁻⁵ chez Meta comme dans LIMA — pour déplacer les poids sans effacer ce qu’ils contiennent.

À un fichier texte au format JSONL, une ligne par exemple. Chaque ligne décrit une conversation : une liste de messages portant chacun un rôle (user, assistant, parfois system) et un contenu. C’est le format attendu par l’API d’OpenAI comme par TRL, la bibliothèque de Hugging Face pour entraîner ces modèles chez soi.

Un détail compte : l’erreur n’est calculée que sur la réponse, les tokens de la question sont masqués. On n’apprend pas au modèle à poser la question, seulement à y répondre.

Beaucoup moins qu’on ne l’imagine. L’API d’OpenAI accepte un jeu de données dès 10 exemples et recommande d’en soigner 50 avant d’évaluer. En 2023, l’équipe de Chunting Zhou chez Meta a poussé la logique jusqu’au bout avec LIMA : un Llama 65B affiné sur 1 000 exemples triés à la main, sans aucun renforcement, dont les réponses ont été jugées équivalentes ou préférées à celles de GPT-4 dans 43 % des cas. D’où l’« hypothèse de l’alignement superficiel » : presque tout le savoir vient du pré-entraînement, le fine-tuning apprend dans quel format le restituer.

L’écart de facture, lui, est vertigineux. Alpaca, publié par Stanford en mars 2023, part de Llama 7B et de 52 000 exemples : moins de 600 dollars au total, dont moins de 100 pour l’entraînement, soit trois heures sur huit cartes A100. Dans le papier InstructGPT (2022), OpenAI chiffrait son SFT à 4,9 pétaflop/s-jours contre 3 640 pour le pré-entraînement de GPT-3 : un peu plus d’un millième.

Ré-ajuster tous les poids — le full fine-tuning — reste lourd : il faut loger en mémoire les poids, les gradients et les états de l’optimiseur, soit plusieurs fois la taille du modèle. D’où les méthodes PEFT (parameter-efficient fine-tuning), qui gèlent l’essentiel du modèle et n’entraînent qu’un petit ajout. La plus répandue, LoRA, a sa propre fiche ; combinée à la quantification, elle donne QLoRA.

  • L’oubli catastrophique. En se spécialisant, le modèle perd des capacités générales. Yun Luo et ses co-auteurs l’ont mesuré en 2023 sur BLOOMZ, mT0, LLaMA et Alpaca : le phénomène apparaît partout entre 1 et 7 milliards de paramètres, et s’aggrave quand le modèle grossit, parce qu’il avait plus à perdre.
  • Le surapprentissage. Avec un jeu trop petit ou trop répétitif, le modèle récite au lieu de généraliser.
  • Les données médiocres. Il apprendra tes incohérences aussi docilement que tes bonnes réponses. La qualité pèse plus que la taille : LIMA et ses 1 000 exemples ont battu un Alpaca 65B entraîné sur 52 000.

Fine-tuning, RAG, ou simplement un meilleur prompt ?

Section intitulée « Fine-tuning, RAG, ou simplement un meilleur prompt ? »

Les trois répondent à des besoins différents, et l’ordre dans lequel on les essaie compte.

  • Le prompt d’abord : gratuit, immédiat, souvent suffisant.
  • Le RAG ensuite, dès qu’il s’agit de connaissances qui changent. Documentation, catalogue, actualité : elles vivent dans une base qu’on met à jour, pas dans des poids à ré-entraîner.
  • Le fine-tuning en dernier, pour ce qu’aucun des deux ne donne : un comportement stable, un format imposé, un ton, une tâche répétée à moindre coût.

Rien n’oblige à choisir : un modèle affiné peut interroger un RAG, prompt soigné par-dessus.

  • Code Llama, Meta, août 2023. Pour un modèle spécialisé dans le code, Meta n’a pas recommencé : Llama 2 a été poursuivi sur 500 milliards de tokens de code. Le papier chiffre le gain — repartir de zéro sur les mêmes données coûte 240 milliards de tokens de plus pour la même perte.
  • Les modèles « Instruct ». Quand tu vois Llama-3.1-8B et Llama-3.1-8B-Instruct côte à côte, le second est le premier après plusieurs tours de SFT puis d’alignement. Le modèle de base, lui, enchaînerait plutôt ta question avec d’autres questions.
  • Albert, l’assistant de l’État français. La DINUM ne l’a pas entraîné depuis zéro : le projet part de modèles ouverts, Llama et Mistral, adaptés à l’administration et republiés sur Hugging Face sous le compte AgentPublic.
  • Un format et un vocabulaire imposés. Du JSON strict à chaque appel, des sigles internes, un jargon juridique : quelques centaines d’exemples bien formés tiennent mieux que dix lignes de consignes répétées dans le prompt. Le fine-tuning apprend la langue de la maison, pas les faits qu’elle contient.
  • « Le fine-tuning sert à apprendre de nouvelles connaissances au modèle. » Il en apprend, mais mal et cher : ancrer un seul fait demande beaucoup d’exemples, sans garantie qu’il ressorte au bon moment. L’hypothèse de l’alignement superficiel va dans ce sens : le fine-tuning règle la forme, le pré-entraînement fournit le fond. Pour une connaissance fraîche, le RAG est le bon outil.
  • « Il faut des millions d’exemples. » Dix suffisent à lancer un travail chez OpenAI, qui conseille d’en soigner cinquante pour commencer, et LIMA a tenu tête à GPT-4 avec mille exemples écrits à la main. Agrandir le jeu aide, jusqu’au point où la qualité décide seule.
  • « Un modèle fine-tuné est meilleur que celui dont il vient. » Meilleur sur ta tâche, souvent moins bon ailleurs : c’est le prix de la spécialisation. D’où la règle — ne jamais l’évaluer seulement sur ce qu’on vient de lui apprendre.

Voir aussi