Instruction Tuning
Beim Instruction Tuning wird ein vortrainiertes Sprachmodell anhand von Anweisung-Antwort-Paaren feinabgestimmt, damit es Anfragen befolgt. Behandelt werden FLAN, InstructGPT, Daten und VLMs.
Beim Instruction-Tuning wird ein vortrainiertes großes Sprachmodell (LLM) anhand von Paaren aus Anweisungen und gewünschten Antworten feinabgestimmt, damit es in Alltagssprache formulierte Anfragen befolgt. Ein vortrainiertes Modell setzt lediglich Text fort: Als OpenAI es bat, „Erkläre die Mondlandung einem sechsjährigen Kind in wenigen Sätzen“, setzte GPT-3 den Text mit ähnlichen Anfragen zu Schwerkraft und Relativität fort. Das instruction-getunte InstructGPT hingegen verfasste die Erklärung. Google-Forschende beschrieben die Methode 2021 in der FLAN-Arbeit. Sie stimmten ein Modell mit 137 Milliarden Parametern auf mehr als 60 Datensätzen zur Verarbeitung natürlicher Sprache (NLP) ab, die in Anweisungen umformuliert worden waren. Das abgestimmte Modell übertraf bei 20 von 25 Aufgaben, die es noch nie zuvor gesehen hatte, die Zero-Shot-Leistung von GPT-3 mit 175 Milliarden Parametern. In Pipelines für Chatmodelle wird derselbe Schritt üblicherweise überwachtes Feinabstimmen (SFT) genannt. Die beiden Begriffe werden synonym verwendet.
Funktionsweise von Instruction Tuning#
Jedes Beispiel wird mit einer Vorlage formatiert, die kennzeichnet, wo die Anweisung endet und die Antwort beginnt. Dazu gehören die Chatvorlagen aktueller Modelle oder die von Stanford Alpaca verwendeten Überschriften „### Instruction“ und „### Response“. Beim Training wird dieselbe Verlustfunktion für das nächste Token wie beim Vortraining verwendet. Es zählen jedoch nur die Token der Antwort, sodass das Modell lernt, Antworten zu erzeugen, statt die Anweisungen selbst vorherzusagen. Ein Trainingsbeispiel mit GPT-2 von OpenAI zeigt den Aufbau:
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}")Nur die 10 Antwort-Token fließen in den Verlust ein. Drei Aktualisierungsschritte mit diesem einzelnen Beispiel senken ihn von 4,45 auf 1,49. Bei einem Instruction-Tuning-Durchlauf wird dieselbe Aktualisierung auf Tausende bis Millionen verschiedener Anweisung-Antwort-Paare angewendet. So lernt das Modell allgemein, Antworten zu geben, statt nur eine einzelne Antwort.
Instruction-Tuning ist in der Regel die erste Phase des Post-Trainings. Die Daten können aus mehreren Quellen stammen:
Datensätze für Instruction-Tuning#
Googles Flan-Sammlung wuchs 2022 auf 1.836 Aufgaben an. Das Instruction-Tuning damit verbesserte PaLM mit 540 Milliarden Parametern im Durchschnitt um 9,4 %. InstructGPT von OpenAI kombinierte von Annotatoren verfasste Beispiele mit bestärkendem Lernen aus menschlichem Feedback (RLHF). Die Menschen bevorzugten die Ausgaben des Modells mit 1,3 Milliarden Parametern gegenüber denen von GPT-3 mit 175 Milliarden Parametern. Stanford Alpaca, im März 2023 veröffentlicht, stimmte Metas LLaMA 7B für weniger als 600 $ anhand von 52.000 Beispielen ab, die ein OpenAI-Modell mit der Self-Instruct-Methode generiert hatte. Das war ein frühes Beispiel für synthetische Daten als Quelle für Instruction-Tuning-Daten. Meta LIMA zeigte, wie weit sich ein kleiner Datensatz nutzen lässt: Das Modell stimmte ein LLaMA mit 65 Milliarden Parametern anhand von nur 1.000 sorgfältig ausgewählten Beispielen ab. Die Autoren kamen zu dem Schluss, dass ein Modell fast sein gesamtes Wissen während des Vortrainings erwirbt, während das Instruction-Tuning ihm Format und Stil der Antworten beibringt. Methoden wie die direkte Präferenzoptimierung (DPO) verfeinern das abgestimmte Modell anschließend mithilfe von Präferenzdaten.
Visuelles Instruction-Tuning#
Vision-Language-Modelle (VLMs) lernen auf dieselbe Weise, Anweisungen zu Bildern zu befolgen. LLaVA, im April 2023 veröffentlicht, versorgte das rein textbasierte GPT-4 mit Bildbeschreibungen und Bounding Boxes von COCO-Bildern und ließ das Modell 158.000 Gespräche, ausführliche Beschreibungen und Beispiele für komplexe Schlussfolgerungen dazu verfassen. Anschließend wurde anhand dieser Daten ein Modell abgestimmt, das einen CLIP-Bildencoder mit einem Sprachmodell verbindet – eine Methode, die als visuelles Instruction-Tuning bekannt ist. Instruction-getunte VLMs beantworten frei formulierte Anfragen zu Fotos. Der LLM-Block in den Ultralytics Platform Agents nutzt diese Fähigkeit: Er sendet das Bild, die vorgelagerten YOLO26-Ergebnisse und einen schriftlichen Prompt an das ausgewählte Vision-Language-Modell.
Instruction-Tuning im Vergleich zu verwandten Begriffen#
Prompt-Tuning lernt einige weiche Prompt-Vektoren, während das Modell eingefroren bleibt. Beim Prompt Engineering wird nur der Eingabetext verändert. Instruction-Tuning hingegen aktualisiert die Modellgewichte. Domänenspezifisches Feinabstimmen passt ein Modell an ein Fachgebiet wie Medizin oder Recht an, ohne ihm zwangsläufig beizubringen, Anfragen zu befolgen. Instruction-Tuning kann auch mit parametereffizientem Feinabstimmen (PEFT) durchgeführt werden: QLoRA trainiert LoRA-Adapter auf einem quantisierten 4-Bit-Modell. Die Autoren stimmten mit diesem Verfahren ein Modell mit 65 Milliarden Parametern auf einer einzigen GPU mit 48 GB ab.










