Qu’est-ce que le fine-tuning d’un modèle d’IA ? Guide pratique
Découvrez ce que signifie le fine-tuning d’un modèle d’IA, comment fonctionne l’entraînement des LLM, quand il est utile et comment débuter en tant que développeur avec des outils et des vérifications pratiques.
Points clés à retenir
- L’ajustement fin adapte un modèle d’IA existant grâce à un entraînement supplémentaire sur des exemples sélectionnés.
- Il peut améliorer les performances sur une tâche, le ton et la cohérence des résultats, mais ne garantit pas l’exactitude factuelle.
- Commencez par les instructions et l’évaluation. N’envisagez l’ajustement fin que si vous avez un besoin clair, des données adaptées et un moyen de mesurer les progrès.
L’ajustement fin d’un modèle d’IA consiste à prendre un modèle déjà entraîné et à mettre à jour ses paramètres appris à l’aide de données supplémentaires ciblées. Plutôt que de créer une IA à partir de zéro, vous adaptez ses capacités existantes à une tâche, un style ou un domaine particulier.
Comment cela fonctionne
Un modèle d’IA apprend d’abord des régularités générales lors du préentraînement. Pour un grand modèle de langage, ou LLM, cela implique généralement un apprentissage à partir de vastes collections de textes afin de reconnaître les structures du langage et de générer des réponses.
L’ajustement fin est une étape d’entraînement ultérieure. Il utilise un jeu de données plus ciblé pour influencer le comportement du modèle.
Considérez le préentraînement comme une formation générale et l’ajustement fin comme une mise en pratique propre à un métier. Un modèle polyvalent peut déjà comprendre les conversations de service client ; l’ajustement fin peut l’aider à suivre une structure de réponse particulière ou à classer les demandes d’assistance de manière plus fiable.
Une approche courante est l’ajustement fin supervisé, dans lequel les exemples d’entraînement associent une entrée à une sortie souhaitée. Par exemple :
- Entrée : Un message client signalant un colis endommagé.
- Sortie souhaitée : Une réponse structurée contenant la catégorie du problème, son niveau d’urgence et une formule appropriée de prise en compte de la demande.
Pendant l’entraînement, le système compare les prédictions du modèle aux réponses cibles et ajuste ses paramètres pour réduire les erreurs. Sur de nombreux exemples, ce processus modifie les réponses que le modèle est susceptible de produire.
Il existe différentes façons d’effectuer ces ajustements :
- L’ajustement fin complet met à jour la totalité ou la majorité des paramètres du modèle. Il nécessite généralement davantage de ressources de calcul et de mémoire.
- L’ajustement fin économe en paramètres, qui comprend des méthodes telles que LoRA, entraîne un ensemble plus restreint de paramètres ajoutés ou sélectionnés. Cela peut réduire les besoins en ressources.
Aucune de ces méthodes ne consiste simplement à joindre un document à un chatbot. L’ajustement fin modifie le comportement appris ; fournir des documents au moment de la réponse modifie les informations disponibles pour une réponse donnée.
Exemples concrets
Classification des demandes d’assistance client
Une équipe d’assistance pourrait ajuster un modèle à partir de messages correctement étiquetés afin qu’il classe les nouvelles demandes dans des catégories telles que la facturation, l’accès au compte ou les problèmes de livraison.
Il s’agit d’une tâche ciblée dont le résultat est mesurable : la fréquence à laquelle la catégorie prédite correspond à la bonne catégorie.
Rédaction professionnelle cohérente
Une entreprise pourrait utiliser des exemples approuvés pour enseigner à un modèle le ton, la terminologie et la structure de réponse qu’elle privilégie.
L’objectif n’est pas de mémoriser d’anciens messages, mais d’appliquer les mêmes principes de rédaction à de nouvelles demandes. La vérification humaine reste importante, en particulier pour les communications sensibles.
Extraction d’informations structurées
Un développeur pourrait ajuster un LLM pour transformer du texte libre en un schéma cohérent, par exemple en extrayant les noms de produits, les défauts signalés et les actions demandées à partir de notes d’intervention.
L’ajustement fin peut améliorer la cohérence, mais les applications doivent tout de même valider les sorties. Lorsqu’ils sont disponibles, les mécanismes de contrôle des sorties structurées peuvent résoudre le problème de formatage sans entraînement supplémentaire.
Génération d’images spécialisée
L’ajustement fin ne se limite pas aux modèles de langage. Les modèles d’image peuvent également être adaptés à l’aide d’images sélectionnées pour orienter un style visuel ou un sujet.
Leonardo.ai propose des fonctionnalités de génération d’images et d’entraînement de modèles personnalisés. Avant d’utiliser des images pour l’entraînement, vérifiez que vous disposez des droits et autorisations nécessaires.
Avantages et limites
L’ajustement fin est particulièrement utile lorsque vous avez besoin qu’un modèle effectue une tâche répétable de manière cohérente.
Les avantages potentiels comprennent :
- De meilleures performances sur la tâche : Des exemples soigneusement choisis peuvent améliorer les résultats dans un processus de travail défini.
- Un comportement plus cohérent : Le modèle peut respecter plus fidèlement le ton, les étiquettes ou la structure de réponse que vous privilégiez.
- Des instructions plus courtes : Certaines consignes répétées peuvent devenir un comportement appris, plutôt que de longues instructions incluses dans chaque requête.
Ces avantages ne sont pas automatiques. De mauvais exemples peuvent enseigner de mauvaises habitudes, et un jeu de données trop restreint peut entraîner un surapprentissage : le modèle réussit sur des exemples familiers, mais peine face à de nouveaux exemples. L’entraînement peut également affaiblir des capacités sans rapport avec la tâche ciblée.
L’ajustement fin ne résout pas les hallucinations de manière fiable. Un modèle peut toujours générer des réponses assurées mais incorrectes, même après un entraînement sur des contenus pertinents.
Ce n’est généralement pas non plus le meilleur moyen de fournir des faits qui changent fréquemment. Pour les politiques en vigueur, les détails des produits ou les documents internes, la génération augmentée par récupération, ou RAG, est souvent plus adaptée. Le RAG récupère les informations pertinentes et les fournit au modèle au moment de répondre.
Enfin, prenez en compte le coût total : préparation des données, exécution de l’entraînement, évaluation des résultats, hébergement du modèle et maintenance. Les données d’entraînement sensibles présentent des risques pour la confidentialité, notamment une possible mémorisation ; supprimez donc les informations personnelles ou confidentielles non nécessaires.
Comment démarrer
1. Définissez un objectif mesurable
Choisissez un résultat précis, comme « classer les messages d’assistance avec davantage de précision » ou « réduire le nombre de champs manquants dans les enregistrements extraits ».
Définissez les critères de réussite avant l’entraînement. Mesurez les performances du modèle existant afin de disposer d’un point de référence.
2. Essayez d’abord des approches plus simples
Testez des instructions claires, quelques bons exemples dans le prompt et les contraintes de sortie disponibles. Si le problème est un manque de connaissances, essayez la récupération d’informations.
LangChain est un framework destiné aux développeurs pour créer des applications fondées sur des LLM. Il peut aider à organiser les processus applicatifs, y compris les approches reposant sur la récupération d’informations ; il ne remplace pas, à lui seul, l’entraînement d’un modèle.
3. Préparez des exemples de qualité
Utilisez des exemples qui reflètent les demandes réelles et les réponses que vous souhaitez effectivement obtenir. Supprimez les doublons, corrigez les étiquettes incohérentes et incluez des cas difficiles, pas seulement des cas simples.
Répartissez les données en jeux d’entraînement, de validation et de test. Gardez les exemples très similaires dans un même jeu pour éviter des scores trompeurs dus à la présence de quasi-doublons dans plusieurs jeux.
4. Choisissez un modèle et une approche d’entraînement
Vérifiez la licence du modèle, les langues prises en charge, son adéquation à la tâche et ses besoins en ressources de calcul.
Les modèles à poids ouverts de Mistral AI peuvent être envisagés, selon le modèle concerné et ses conditions d’utilisation. « Poids ouverts » ne signifie pas que tous les modèles offrent les mêmes autorisations ou ont les mêmes besoins matériels.
Pour un débutant, un service d’ajustement fin géré peut réduire le travail lié à l’infrastructure. Un développeur expérimenté en apprentissage automatique pourrait plutôt utiliser un framework d’entraînement compatible et des méthodes économes en paramètres.
5. Suivez, évaluez et déployez avec prudence
Weights & Biases permet de suivre les exécutions d’entraînement et les métriques, ce qui facilite la comparaison des expériences.
Évaluez le modèle ajusté sur des exemples inédits, comparez-le à votre référence initiale et analysez les échecs. Incluez des vérifications de confidentialité et de sécurité.
Le déploiement est une étape distincte. vLLM est un moteur d’inférence et de mise à disposition de LLM compatibles, et non un outil d’ajustement fin. Après le déploiement, surveillez les résultats et conservez une possibilité de retour à la version précédente.
FAQ
En quoi l’ajustement fin diffère-t-il de l’utilisation de prompts ?
L’utilisation de prompts consiste à fournir des instructions ou des exemples au moment d’une requête ; elle ne met pas à jour les paramètres appris du modèle. L’ajustement fin met à jour les paramètres par l’entraînement : l’adaptation persiste donc d’une requête à l’autre lorsque vous utilisez ce modèle ajusté.
Quelle quantité de données faut-il pour l’ajustement fin ?
Il n’existe pas de minimum universel garantissant la réussite. Les besoins dépendent de la tâche, du modèle, de la qualité des données et de l’amélioration souhaitée. Commencez par un jeu de données soigneusement vérifié, évaluez le modèle sur des exemples distincts et ajoutez des données là où les tests révèlent des lacunes.
Faut-il utiliser l’ajustement fin ou le RAG ?
Utilisez l’ajustement fin principalement pour améliorer le comportement, le style ou les performances sur une tâche. Utilisez le RAG principalement pour fournir des informations pertinentes, surtout lorsqu’elles évoluent ou nécessitent des références aux sources. Certaines applications bénéficient des deux approches, mais testez d’abord la plus simple.