Instruction Tuning
L’ajustement sur instructions affine un modèle de langage préentraîné à partir de paires instruction-réponse pour lui apprendre à suivre les demandes. Découvre FLAN, InstructGPT, les données et les VLM.
Le réglage par instructions consiste à affiner un grand modèle de langage (LLM) préentraîné sur des paires d’instructions et de réponses attendues, afin qu’il suive des demandes formulées en langage courant. Un modèle préentraîné se contente de poursuivre le texte : lorsqu’OpenAI lui a demandé « Explique le premier alunissage à un enfant de 6 ans en quelques phrases », GPT-3 a continué avec des demandes similaires sur la gravité et la relativité, tandis que le modèle InstructGPT, réglé par instructions, a rédigé l’explication. Des chercheurs de Google ont décrit cette méthode dans l’article FLAN de 2021 : ils ont réglé un modèle de 137 milliards de paramètres sur plus de 60 jeux de données de traitement automatique du langage naturel (NLP) reformulés sous forme d’instructions. Le modèle réglé a dépassé les performances sans exemple de GPT-3, qui compte 175 milliards de paramètres, sur 20 des 25 tâches qu’il n’avait jamais rencontrées. Dans les pipelines de modèles conversationnels, cette même étape est généralement appelée réglage fin supervisé (SFT), et les deux termes sont employés comme synonymes.
Fonctionnement de l'ajustement par instructions#
Chaque exemple est mis en forme à l’aide d’un modèle qui indique où l’instruction se termine et où la réponse commence, comme les modèles de conversation des modèles actuels ou les en-têtes « ### Instruction » et « ### Response » utilisés par Alpaca de Stanford. L’entraînement utilise la même fonction de perte de prédiction du token suivant que le préentraînement, mais seuls les tokens de la réponse sont pris en compte. Le modèle apprend ainsi à produire des réponses plutôt qu’à prédire les instructions elles-mêmes. Voici un exemple d’entraînement avec GPT-2 d’OpenAI :
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")
optimizer = torch.optim.AdamW(model.parameters(), lr=5e-5)
# One instruction-response pair in the Alpaca prompt format
prompt_ids = tokenizer("### Instruction:\nName three animals that can fly.\n\n### Response:\n").input_ids
response_ids = tokenizer("Bats, eagles, and bees." + tokenizer.eos_token).input_ids
input_ids = torch.tensor([prompt_ids + response_ids])
# Label -100 drops the instruction from the loss, so the model learns only to respond
labels = torch.tensor([[-100] * len(prompt_ids) + response_ids])
for step in range(3):
loss = model(input_ids=input_ids, labels=labels).loss
loss.backward()
optimizer.step()
optimizer.zero_grad()
print(f"step {step}: loss {loss.item():.2f}")Seuls les 10 tokens de la réponse contribuent à la perte, et trois mises à jour sur cet exemple unique la font passer de 4,45 à 1,49. Une session de réglage par instructions applique la même mise à jour à des milliers, voire des millions, de paires instruction-réponse différentes, afin que le modèle apprenne l’habitude générale de répondre plutôt qu’une seule réponse.
Le réglage par instructions constitue généralement la première étape du post-entraînement, et les données peuvent provenir de plusieurs sources :
Jeux de données d’instructions#
La collection Flan de Google est passée à 1 836 tâches en 2022, et le réglage par instructions effectué à partir de celle-ci a amélioré de 9,4 % en moyenne les performances de PaLM, qui compte 540 milliards de paramètres. InstructGPT d’OpenAI a combiné des démonstrations rédigées par des évaluateurs avec l’apprentissage par renforcement à partir de retours humains (RLHF), et les utilisateurs ont préféré les résultats de son modèle de 1,3 milliard de paramètres à ceux de GPT-3, qui en compte 175 milliards. Alpaca, publié par Stanford en mars 2023, a affiné LLaMA 7B de Meta pour moins de 600 $ sur 52 000 exemples générés par un modèle d’OpenAI avec la méthode Self-Instruct, un exemple précoce de données synthétiques comme source de données d’instructions. LIMA de Meta a montré tout le potentiel d’un petit jeu de données : ses auteurs ont réglé un LLaMA de 65 milliards de paramètres sur seulement 1 000 exemples soigneusement choisis et ont conclu qu’un modèle acquiert presque toutes ses connaissances pendant le préentraînement, tandis que le réglage par instructions lui apprend le format et le style des réponses. Des méthodes comme l’optimisation directe des préférences (DPO) affinent ensuite le modèle réglé à partir de données de préférences.
Réglage visuel par instructions#
Les modèles vision-langage (VLMs) apprennent de la même manière à suivre des instructions sur des images. Publié en avril 2023, LLaVA a fourni à GPT-4, limité au texte, les légendes et les boîtes englobantes des images de COCO, puis lui a fait rédiger 158 000 conversations, descriptions détaillées et exemples de raisonnement complexe à leur sujet. Un modèle reliant un encodeur d’images CLIP à un modèle de langage a ensuite été réglé sur ces données : cette méthode est appelée réglage visuel par instructions. Les VLM réglés par instructions répondent à des demandes libres sur une photo, et le bloc LLM d’Ultralytics Platform Agents s’appuie sur cette capacité : il envoie l’image, les résultats obtenus en amont par YOLO26 et un prompt écrit au modèle vision-langage sélectionné.
Réglage par instructions et termes associés#
Le réglage de prompt apprend quelques vecteurs de prompt souples et laisse le modèle figé, tandis que l’ingénierie de prompt ne modifie que le texte d’entrée, alors que le réglage par instructions met à jour les poids du modèle. Le réglage fin par domaine adapte un modèle à un domaine tel que la médecine ou le droit, sans nécessairement lui apprendre à répondre aux requêtes. Le réglage par instructions peut aussi se faire avec le réglage fin efficace en paramètres (PEFT) : QLoRA entraîne des adaptateurs LoRA sur un modèle quantifié en 4 bits, et ses auteurs ont procédé au réglage par instructions d’un modèle de 65 milliards de paramètres sur un seul GPU de 48 Go.










