Instruction Tuning : En quoi consiste cette technique de fine-tuning ?

-
7
 m de lecture
-

L’instruction tuning est une méthode innovante de fine-tuning des Larges Modèles de Langage, qui consiste à ajouter des instructions spécifiques aux données d’exemple. Découvrez pourquoi cette approche a le potentiel de révolutionner l’IA !

Au fil des dernières années, le Machine Learning et le Traitement Naturel du Langage (NLP) ont beaucoup évolué. C’est notamment la façon dont les modèles sont entraînés qui a changé.

Avec l’arrivée des modèles pré-entraînés tels que BERT ou GPT, le fine-tuning de modèles pré-entraînés pour les tâches en aval est devenu la nouvelle norme.

Par la suite, l’augmentation de capacités des modèles de langage toujours plus larges a permis l’apprentissage en contexte via le prompting. Et plus récemment, une nouvelle méthode est apparue pour rendre les LLM utiles dans la pratique : l’instruction tuning.

En combinant les données d’exemples avec des instructions, cette approche innovante rend les modèles de langage beaucoup plus polyvalents. Avant d’explorer cette technique plus en détail, commençons par revenir sur le concept du fine-tuning.

Qu’est-ce que le fine-tuning ?

Les modèles de langage pré-entraînés offrent de formidables possibilités, mais ne sont pas nativement experts dans un domaine spécifique.

Afin d’être spécialisés pour des tâches comme l’analyse de sentiment, la traduction de langage ou la réponse aux questions sur des sujets précis, ils doivent être ajustés par le biais d’une méthode appelée « fine-tuning » (réglage fin).

Ce processus permet d’apporter la touche finale à un modèle, afin de le spécialiser. Il implique généralement d’entraîner le modèle sur un jeu de données plus petit, spécifiquement axé sur une tâche.

Le dataset est étiqueté avec des exemples pertinents pour la tâche ciblée. En exposant le modèle à ces exemples, il devient capable d’ajuster ses paramètres et représentations internes.

Les connaissances acquises durant le pré-entraînement sont exploitées, permettant d’économiser du temps et des ressources. Une fois raffiné de la sorte, le modèle de langage devient plus performant sur les tâches pour lesquelles il a été ajusté.

Toutefois, le défi à relever est de parvenir à généraliser l’expertise acquise au cours de cet entraînement à d’autres tâches. C’est là que l’instruction tuning entre en jeu.

Instruction tuning vs fine-tuning : quelles différences ?

La principale différence entre l’instruction tuning et le fine-tuning supervisé standard réside dans les données sur lesquelles le modèle est entraîné.

Alors que le fine-tuning supervisé consiste à entraîner les modèles sur des entrées d’exemples (inputs) et les résultats qui en découlent (output), l’instruction tuning étoffe les exemples input-output avec un autre composant : les instructions.

C’est précisément ce qui permet aux modèles instruction-tuned de généraliser plus facilement à de nouvelles tâches. Ainsi, les LLM ainsi ajustés deviennent beaucoup plus polyvalents et utiles.

Avec cette méthode, les capacités des LLM à fournir des résultats appropriés basés sur les inputs d’instructions sont augmentées au même titre que la généralisation cross-task. Les performances sont donc accrues sur des tâches inédites.

De plus, l’efficacité des échantillons est renforcée puisque le volume de données d’entraînement requis pour égaler les performances des meilleures modèles supervisés est minime.

Cependant, cette approche requiert de construire des données d’instruction tuning. Il existe heureusement plusieurs datasets d’excellente qualité, et nous allons maintenant voir quels sont les plus populaires !

Les meilleurs datasets d’instruction tuning

On distingue deux principales catégories de datasets d’instruction tuning.

Dans le premier cas, les instructions sont ajoutées à des tâches NLP existantes. Dans le second, les données sont utilisées pour conditionner un modèle à générer de nouvelles « tuples » (séquences ordonnées) d’input-output d’instructions.

Natural Instructions (Swaroop Mishra, 2022)

Ce jeu de données regroupe 193 000 exemples d’outputs d’instructions sourcés en provenance de 61 tâches de NLP existantes en anglais. Les instructions crowd-sourced de chaque dataset sont alignées avec un schéma commun.

Ces instructions sont plus structurées que sur d’autres datasets. Les outputs sont toutefois relativement courts, ce qui rend les données moins utiles pour générer du contenu long format.

Natural Instructions v2 / Super-Natural Instructions (Yizhong Wang, 2022)

Cette collection crowd-sourced de données d’instructions est basée sur des tâches de NLP et de simples tâches synthétiques. Elle regroupe 5 millions d’exemples en provenance de 76 tâches dans 55 langues.

En comparaison avec la première version du dataset Natural Instructions, les instructions sont largement simplifiées. Elle consistent en une définition de la tâche accompagnée d’exemples positifs et négatifs et d’explications.

Unnatural Instructions (Or Honovinch, 2023)

Ce jeu de données collectées automatiquement regroupe 240 000 exemples obtenus en promptant InstructGPT (text-davinci-002) avec trois exemples de Super-Natural Instructions.

Il s’agit d’une instruction, d’un input, et des contraintes d’output possible. Pour chaque trio, le modèle InstructGPT a pour consigne de générer un nouvel exemple.

L’output est généré séparément à partir de condition sur l’instruction, l’input et les contraintes générés. Par la suite, les instructions ainsi générées sont à nouveau paraphrasées en promptant le modèle.

Par rapport à Super-Natural Instructions, cette nouvelle version Unnatural Instructions couvre un ensemble de tâches beaucoup plus diverses. Même si beaucoup d’exemples reflètent des tâches NLP classiques, d’autres exemples de tâches intéressantes sont aussi inclus.

P3 : Public Pool of Prompts (Victor Sanh, 2022)

Cette collection de prompts est crowd-sourcée à partir de 177 tâches de NLP en anglais. Pour chaque dataset, environ 11 prompts différents sont disponibles en moyenne.

Ceci permet d’étudier l’impact des différentes formulations de prompts. En comparaison avec les instructions des datasets mentionnés précédemment, les prompts de P3 sont souvent plus courts et moins élaborés.

Flan 2021 / Muffin (Jason Wei, 2022)

Un ensemble de prompts issus de 62 datasets de textes écrits en anglais, avec 10 templates de prompts pour chaque tâche : voici ce que propose Flan 2021.

Et pour les tâches de classification, un suffit OPTIONS est annexé à l’input pour indiquer les contraintes d’output. Toutefois, la version 2022 est beaucoup plus complète.

Flan 2022 (Hyung Won Chung, 2022)

Ce dataset est une combinaison de Flan 2021, P3, Super-Natural Instructions, et d’autres jeux de données de raisonnement, de dialogue et de synthèse de programme.

Les neuf datasets de raisonnement additionnels sont annotés avec une chaîne de pensée (CoT ou chain-of-thoughts). Il s’agit donc de l’un des jeux de données d’instruction-tuning les plus exhaustifs à ce jour.

Une nouvelle génération de datasets plus proches du monde réel

Hormis les datasets de première génération évoqués auparavant, principalement basés sur les tâches existantes de NLP, une nouvelle vague de jeux de données a vu le jour pour se rapprocher des cas d’usage du monde réel. En voici quelques exemples.

Le dataset Alpaca Data lancé par Rohan Taori et ses associés en mars 2023 regroupe 52 000 exemples d’instructions en anglais. Il est généré à l’aide de text-davinci-003 d’OpenAI avec self-instruct. Ses créateurs ont effectué des modifications pour simplifier le pipeline de génération de données et réduire les coûts sous la barre des 500 dollars !

Avec Evol-instruct lancé en avril 2023, Can Xu et ses collègues ont réécrit 250 000 paires d’instructions et de réponses basées sur Alpaca Data. Les instructions ont été réécrites pour les rendre plus complexes ou pour créer de nouvelles instructions plus spécialisées à l’aide de ChatGPT.

Dans un second temps, ChatGPT a été utilisé pour générer les réponses correspondantes. Les paires d’instructions et de réponses de basse qualité sont filtrées en utilisant des heuristiques. Le processus est répété trois fois.

Citons aussi Vicuna ShareGPT daté de mars 2023. Il regroupe plus de 70 000 conversations en anglais partagées par des utilisateurs et scrapées depuis le site web sharegpt.com. Le pré-traitement a impliqué de convertir le HTML en markdown, de filtrer les échantillons de basse qualité, et de diviser les longues conversations en segments plus courts.

Par rapport aux autres jeux de données cités précédemment, les conversations ShareGPT sont constituées de multiples répliques et sont donc plus utiles pour entraîner un modèle à s’appuyer sur le contexte d’une discussion.

Autre exemple de dataset multi-répliques : Baize Data, lancé en avril 2023. Il contient des exemples de dialogues en anglais 54k et 57k, avec en moyenne 3,4 répliques générés avec GPT en utilisant des questions issues de Quora et StackOverflow.

De plus, des dialogues 47k sur le domaine médical ont été générés en se basant sur les questions du jeu de données MedQuAD. Cela le rend très utile pour ce domaine.

Le jeu de données databricks-dolly-15k data d’avril 2023 regroupe des instructions et des exemples 15k écrits par des employés de Databricks. Les instructions et les réponses sont générés par des humains, ce qui contraste avec l’utilisation de ChatGPT dans les autres datasets mentionnés.

Les exemples couvrent 7 cas d’usage différent comme les questions-réponses ouvertes ou fermées, l’extraction et la synthèse de données Wikipédia, le brainstorming, la classification et l’écriture créative.

Si la plupart des datasets se concentrent sur la langue anglaise, OpenAssistant Conversations propose des conversations dans plusieurs langages générées par des annotateurs humains. Plus de 30% sont en espagnol ou d’autres langues.

Enfin, LIMA data lancé en mai 2023 propose des paires de questions-réponses issues de StackExchange, wikiHow et le dataset Pushshift Reddit. L’entraînement sur ce petit jeu de données soigneusement sélectionnées se révèle plus performant que l’entraînement sur un dataset beaucoup plus large comme Alpaca Data.

Les caractéristiques clés des données d’instruction

Dans une étude publiée début 2023, Shayne Longpre et ses collaborateurs mettent en lumière plusieurs aspects importants des données d’instruction.

Tout d’abord, l’entraînement avec des prompts few-shots mélangés avec des prompts zero-shot améliore massivement les performances dans les deux configurations.

En outre, les larges modèles de langage tirent un avantage de l’augmentation continuelle du nombre de tâches et de leur diversité. Une autre approche bénéfique est l’augmentation des données, notamment par l’inversion des inputs et des outputs.

Il peut s’agir par exemple de transformer une tâche de réponse à une question en une tâche de génération de questions. De même, lorsqu’on utilise une combinaison de plusieurs datasets d’instruction tuning, il est important d’ajuster les poids de manière appropriée.

Conclusion : instruction tuning, la clé pour rendre les LLM plus polyvalents et généralistes ?

Grâce aux instructions ajoutées aux datasets, l’instruction tuning aide à généraliser les connaissances acquises par les LLM à de nouvelles tâches. Il pourrait s’agir de la clé vers l’émergence d’une IA généraliste (AGI) considérée comme le but ultime de l’intelligence artificielle…

Selon une étude menée par le chercheur Khai Loong Aw et ses collègues, l’instruction tuning permet de rapprocher les LLM de la façon dont le cerveau humain traite le langage. Par rapport au fine-tuning, l’alignement avec le cerveau augmente de 6%.

Afin de maîtriser cette méthode innovante de fine-tuning, vous pouvez vous tourner vers DataScientest ! Nous vous proposons plusieurs formations en ligne pour devenir expert en intelligence artificielle.

Avec le cursus Machine Learning Engineer, vous pouvez apprendre à concevoir, développer et déployer des solutions d’intelligence artificielle. Ce programme permet d’acquérir à la fois des compétences en Data Science et en apprentissage automatique.

Vous découvrirez notamment la programmation en Python, les outils de DataViz, le Data Engineering, les techniques de DataOps, mais aussi les notions de Machine Learning et Deep Learning.

À la fin de ce parcours axé sur la pratique, vous validerez la certification « Chef de projet en intelligence artificielle » délivrée par le Collège de Paris, et recevrez un certificat des Mines ParisTech PSL Executive Education.

En outre, vous pourrez passer l’examen de certification Amazon Certified Cloud Practitioner attestant d’une maîtrise du cloud AWS. Cette formation vous apporte donc une triple reconnaissance !

De son côté, le cursus MLOps vous apprend à mettre en production et déployer des modèles IA de manière automatisée. Elle couvre la programmation sur Linux, le CI/CD, la conteneurisation avec Docker et Kubernetes, ou encore le monitoring avec Prometheus et Grafana.

Enfin, notre formation Prompt Engineering et Generative AI fera de vous un maître dans l’art de la formulation de prompts pour ChatGPT, Canva ou encore DALL-E.

En seulement deux jours, vous deviendrez capable d’exploiter les IA génératives pour produire du contenu correspondant parfaitement à vos attentes.

Toutes nos formations sont éligibles au CPF pour le financement, et se complètent entièrement à distance à temps plein, temps partiel ou en BootCamp intensif. Découvrez vite DataScientest et ses formations IA !

Vous savez tout sur l’instruction tuning. Pour plus d’informations sur le même sujet, découvrez notre dossier complet sur le fine-tuning et notre dossier sur le prompt engineering !

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.
Poursuivre la lecture

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?