La recherche en IA te passionne ?
Les papers et avancées qui comptent, expliqués simplement, chaque soir. Gratuit.
Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.
Choisis ton rythme
Gratuit · Pas de spam · Désabonnement en 1 clic
Comprendre le Fine-Tuning pour les Débutants
Qu'est-ce que le préentraînement ?
Imaginons que vous commencez avec un modèle tout juste créé, doté de millions voire de milliards de paramètres initialement assignés à des valeurs aléatoires. Si vous souhaitez lui enseigner une tâche spécifique, comme classer des films en différentes catégories, il faudrait d'abord qu'il apprenne toute la langue anglaise à partir de zéro. Cela s'avère impossible, surtout si vous ne disposez que d'un jeu de données limité. C'est un peu comme essayer d'enseigner la biologie à un enfant qui ne maîtrise pas encore les bases de la langue ou des concepts scientifiques fondamentaux.
Le préentraînement vient résoudre ce problème en permettant au modèle d'apprendre les éléments complexes et généraux une fois pour toutes, en s'appuyant sur une immense quantité de données. Cette phase nécessite des ressources de calcul et de données considérables. Une fois cette étape franchie, vous disposez d'un modèle qui a déjà assimilé la langue. Durant cette phase, le modèle apprend une compétence simple : prédire le mot suivant. On lui présente un extrait de texte avec un mot caché, et il doit deviner ce qui vient ensuite. Les bonnes prédictions entraînent une petite perte, tandis que les mauvaises entraînent une perte plus importante, incitant le modèle à s'ajuster.
Par exemple, si on lui présente la phrase "Le chat est assis sur le ____", le modèle apprend que "tapis" est une réponse bien plus probable que "voiture". Répéter cet entraînement à travers des milliards de phrases, de livres et d'articles permet au modèle de devenir un excellent prédicteur de mots suivants, tout en absorbant la grammaire, des faits, des schémas de raisonnement, et bien plus encore. Après le préentraînement, le modèle comprend déjà la langue, ce qui permet de construire chaque tâche ultérieure sur cette base plutôt que de repartir de zéro. C'est pourquoi ces modèles sont souvent appelés modèles de fondation.
En général, vous ne préentraînez pas vous-même un modèle. Vous téléchargez le résultat final, un modèle préentraîné comme Llama, Mistral ou Qwen, et vous partez de là. Cela nous amène à notre sujet principal : le fine-tuning.
Qu'est-ce que le fine-tuning ?
Beaucoup de débutants pensent qu'une fois qu'un modèle a été entraîné, ses paramètres sont figés à jamais. En réalité, disposer d'un modèle préentraîné signifie que les paramètres ont été ajustés à des "bonnes valeurs" qui encodent l'intelligence et fonctionnent bien pour des tâches générales. Une fois ce modèle en main, vous pouvez adapter cette intelligence à vos besoins spécifiques en utilisant des données propres à la tâche — c'est ce qu'on appelle le fine-tuning. Les exigences en matière de données à ce stade sont bien moindres que pour le préentraînement, car vous n'avez besoin que d'exemples pour la tâche qui vous intéresse.
Cela ressemble beaucoup à la formation de chefs dans une école culinaire : une fois qu'ils rejoignent un restaurant, ils acquièrent des compétences spécifiques à cet établissement. Puisque nous ne partons pas de zéro ici, c'est moins coûteux — un peu comme former une personne déjà diplômée d'une école culinaire est moins exigeant que de former quelqu'un de totalement novice. Le schéma ci-dessous résume la différence entre le préentraînement et le fine-tuning.
Comment se déroule le fine-tuning ?
Nous avons déjà abordé la prédiction du prochain token et le processus de préentraînement. Examinons maintenant la boucle de fine-tuning.
Vous présentez au modèle un exemple de données spécifiques à la tâche — par exemple, un film — et lui demandez de le catégoriser. Il fait une supposition, que vous comparez à la réponse idéale. Vous ajustez légèrement les paramètres, puis répétez le processus jusqu'à ce qu'il s'améliore dans la tâche en question. Deux éléments majeurs distinguent le fine-tuning du préentraînement :
-
Données → Elles sont petites, de haute qualité, et spécifiques à la tâche, contrairement à l'ensemble de l'internet.
-
Taux d'apprentissage → Il est faible, avec peu de passes, car nous voulons que le modèle s'adapte sans perdre ses compétences générales.
Deux types courants de fine-tuning
Bien que les définitions varient sur Internet selon le nombre de paramètres que vous souhaitez ajuster, le fine-tuning se divise généralement en deux catégories :
-
Fine-Tuning Complet : Dans ce scénario, chaque paramètre de votre modèle peut être modifié. Vous exécutez la boucle mentionnée précédemment et tous les milliards de paramètres s'ajustent légèrement pour votre tâche. Le principal inconvénient de cette méthode est la mémoire requise — il faut suffisamment de mémoire pour contenir et mettre à jour l'ensemble du modèle, ce qui, pour un grand modèle de langage, nécessite un matériel conséquent. Il y a également un risque accru d'oubli catastrophique, où le modèle devient performant dans la tâche spécifique mais perd ses capacités générales.
-
Fine-Tuning Efficace en Paramètres (PEFT) : Au lieu de mettre à jour chaque paramètre du réseau, les techniques PEFT figent le modèle de base — chaque paramètre original reste inchangé — et introduisent un petit ensemble de nouveaux paramètres entraînables. Seuls ces derniers sont modifiés. Il existe différentes techniques pour cela, telles que LoRA, QLoRA, et prompt tuning, mais les détails dépassent le cadre de cet article. Le PEFT nécessite moins de mémoire et de temps d'entraînement, avec un risque moindre d'oublier des connaissances déjà acquises. Pour la plupart des fine-tunings de grands modèles de langage, c'est le choix par défaut.
Le fine-tuning est-il toujours la solution ?
Le fine-tuning est idéal pour enseigner aux modèles une nouvelle compétence, un style, un comportement ou une tâche, mais ce n'est pas le seul outil — et souvent pas le premier auquel vous devriez penser. Parfois, un meilleur prompt peut résoudre votre problème sans nécessiter d'entraînement. De même, lorsque cela est plus judicieux de rechercher des informations en ligne ou dans une base de données au moment de la requête, la génération augmentée par récupération (RAG) est une meilleure option, surtout lorsque les faits sont nombreux ou changent fréquemment. Ces approches ne sont pas en concurrence ; en pratique, la plupart des systèmes les utilisent ensemble. Il est bon de garder cela à l'esprit avant de vous engager dans un cycle complet de fine-tuning.
Ressources supplémentaires
Si vous souhaitez pratiquer le fine-tuning spécifiquement avec LoRA, voici quelques ressources recommandées :
-
Hugging Face PEFT : La bibliothèque open-source standard pour LoRA, QLoRA, prompt tuning, et plus. Commencez par la documentation et le dépôt.
-
Hugging Face TRL : S'associe avec PEFT et vous fournit un SFTTrainer prêt à l'emploi pour la boucle de fine-tuning supervisé.
-
Unsloth : Le chemin le plus convivial pour LoRA/QLoRA, avec des notebooks gratuits sur Colab et Kaggle, un entraînement ~2× plus rapide, et une VRAM beaucoup plus faible.
-
Axolotl : Une fois que vous êtes à l'aise, un outil populaire basé sur la configuration (YAML) pour exécuter des pipelines de fine-tuning sans écrire beaucoup de code.
-
L'article original sur LoRA : "LoRA : Adaptation à faible rang des grands modèles de langage."
-
L'article sur QLoRA : "QLoRA : Fine-tuning efficace des LLM."
Pour un bon premier projet, prenez un petit modèle instructif (comme un Llama 8B, Qwen, ou Gemma), ouvrez un notebook Unsloth QLoRA, fine-tunez-le sur quelques centaines d'exemples propres de votre tâche, et observez la diminution de la perte d'entraînement. Une fois que vous l'avez fait une fois, chaque terme de cet article vous semblera beaucoup plus concret.






