Kapitel 14 · Fine-Tuning · 9 min

Ein Modell spezialisieren ohne alles neu zu trainieren

LoRA, QLoRA, SFT. Wie man ein generalistisches Modell an eine bestimmte Domäne anpasst, indem man 0,1% seiner Parameter trainiert.

Was ist das Basismodell eigentlich?

Wenn GPT-4 oder Claude aus dem ersten Training kommen — Milliarden von Tokens rohen Texts, das nächste Wort vorhersagend — wissen sie viel. Aber sie wissen nicht, wie sie sich verhalten sollen.

Frage ein Rohmodell, einen Motivationsbrief zu verfassen: Es wird den Satz wahrscheinlich wie ein Wikipedia-Artikel über Motivationsbriefe fortsetzen. Oder schlimmer, mehrere widersprüchliche Antworten generieren, als würde der Text eine FAQ fortsetzen.

Fine-Tuning ist der Schritt, der dieses Rohmodell in einen verwendbaren Assistenten verwandelt: nützlich, kohärent und an einen Bereich angepasst.

Zwei Probleme, zwei Lösungen

Supervised Fine-Tuning (SFT)

Die einfachste Form: Dem Modell (Frage, ideale Antwort)-Paare zeigen und es trainieren, diese Antworten zu produzieren.

Das ist, was OpenAI gemacht hat, um InstructGPT zu erstellen: Menschen haben mustergültige Antworten auf Tausende von Fragen geschrieben, und das Modell lernte, sie nachzuahmen. Das Ergebnis: ein Modell, das „Anweisungen befolgt".

Die Grenze: Es kostet viel an menschlichen Daten und sagt dem Modell nicht, wie es zwei Antworten vergleichen soll.

RLHF (und DPO in der Praxis)

Darüber haben wir in Kapitel 08 gesprochen. Reinforcement Learning durch menschliches Feedback lernt Präferenzen. Es ergänzt SFT, ersetzt es aber nicht.

Wichtiges Detail: Seit 2024 wird das meiste Präferenz-Fine-Tuning über DPO (Direct Preference Optimization) gemacht statt über das klassische PPO des RLHF. Genau das verwandelt ein reines SFT-Modell in ein ausgerichtetes Modell, ohne die Compute-Kosten des RL. Das vollständige Bild findest du in Kapitel 08.

Aber SFT und DPO/RLHF teilen ein Kostenproblem: Sie modifizieren alle Parameter des Modells. Für ein Modell mit 70 Milliarden Parametern bedeutet das Wochen an Berechnung und Tausende von Dollar an GPU-Kosten.

LoRA: 0,1 % der Parameter trainieren

LoRA (Low-Rank Adaptation) ist eine elegante Technik: Statt die Gewichte W des Modells zu modifizieren, fügt man eine Aktualisierung ΔW hinzu, die in zwei kleine Matrizen zerlegt wird:

W_adapted = W_base + ΔW    wobei    ΔW = B × A
  • A: Matrix mit Rang r × Dimension (klein)
  • B: Matrix Dimension × Rang r (klein)
  • W_base: die ursprünglichen Gewichte — eingefroren, nicht modifiziert

Der Schlüsselgedanke: Gewichtsaktualisierungen beim Fine-Tuning haben in der Praxis eine Low-Rank-Struktur. Man braucht keine vollständige Matrix, um die Anpassung zu erfassen. Zwei kleine Matrizen reichen.

Bei Rang r = 8, für eine Schicht der Dimension 4.096: LoRA verwendet 65.536 Parameter gegenüber 16 Millionen für die vollständige Schicht — also 0,4 %.

Spiel mit dem Rang

Der Rang r steuert die Ausdruckskraft der Aktualisierung. Beobachte, wie sich ΔW strukturell verändert, wenn du r variierst — und den Effekt auf die Antworten des Modells nach dem Fine-Tuning.

LoRA fügt zwei kleine Matrizen neben den bestehenden Gewichten hinzu. Statt Milliarden Parameter zu verändern, trainiert man nur einige Millionen — der Großteil des Modells bleibt eingefroren und wird zwischen allen feinabgestimmten Varianten geteilt.

Warum funktioniert es so gut?

Die überraschende Entdeckung der LoRA-Experimente: Selbst bei sehr niedrigem Rang (r = 4 oder 8) sind die Leistungen nach dem Fine-Tuning nahezu identisch mit einem vollständigen Fine-Tuning. Der intuitive Grund: Der Raum nützlicher Anpassungen ist inhärent niedrigdimensional.

Anders gesagt: Um ein Modell auf medizinisches Schreiben oder Python-Code zu spezialisieren, müssen nicht alle Neuronen modifiziert werden. Einige „Richtungen" im Raum der Gewichte reichen aus.

QLoRA: noch weiter nach unten

Wenn LoRA die Anzahl der trainierten Parameter reduziert, reduziert QLoRA (Quantized LoRA) auch die numerische Präzision der eingefrorenen Parameter.

Das Basismodell wird mit 4 Bit (statt 16 oder 32) geladen, was seinen Speicherverbrauch durch 4 teilt. Die LoRA-Adapter bleiben für die Genauigkeit des Gradienten in 16 Bit. Für die Mechanik der Quantization selbst (FP32 → INT4 → INT2, was man auf jeder Stufe verliert) siehe Kapitel 18.

Ergebnis: Ein Modell mit 70 Milliarden Parametern auf einer einzigen Consumer-GPU zu fine-tunen wird möglich. Das hat 2023–2024 die Explosion spezialisierter Open-Source-Modelle ermöglicht.

Die Hierarchie der Anpassungen

Heutige Praktiker unterscheiden mehrere Ebenen:

Prompting: Keine Modifikation des Modells. Einige Beispiele im Kontext. Schnell, null Kosten, begrenzt.

RAG: Das Modell mit einer Wissensbasis verbinden (Kapitel 10). Keine Modifikation des Modells.

Fine-Tuning LoRA: Verhalten und Stil auf einem gezielten Datensatz anpassen. Ein paar Stunden auf einer GPU, ein paar tausend Beispiele. Die richtige Balance für die meisten Fälle.

Vollständiges Fine-Tuning: Alle Parameter modifizieren. Notwendig, um die Fähigkeiten des Modells tiefgreifend zu ändern (seltene Sprachen, sehr spezifische Domäne). Teuer.

Pre-Training: Von Null anfangen oder das Training auf einem neuen Korpus fortsetzen. Reserviert für Labs mit Zugang zu Clustern von Tausenden von GPUs.

Was das für dich ändert

Wenn du ein Modell für deinen Anwendungsfall spezialisieren willst — deinen redaktionellen Stil, deine Domäne, deine Antwortformate — ist LoRA heute die Referenztechnik.

Frameworks wie Hugging Face PEFT oder Axolotl erlauben es, ein LoRA-Fine-Tuning mit wenigen Zeilen Python zu starten. Die eigentliche Schwierigkeit ist nicht technisch: Es geht darum, einen Qualitätsdatensatz zu erstellen. Ein gutes Fine-Tuning beginnt mit 500 sorgfältig geschriebenen Beispielen — nicht mit 10.000 von ChatGPT generierten Beispielen.

Aktualisiert am

Fine-Tuning: LoRA, QLoRA, SFT erklärt · Step by Token