Zum Hauptinhalt

Fine-Tuning

Fine-Tuning bezeichnet das weitere Training eines vortrainierten Sprachmodells auf einem spezifischen, kleineren Datensatz, um es für eine bestimmte Aufgabe oder Domäne zu optimieren.

AIFortgeschrittenfine-tuningllmmachine-learning

Fine-Tuning

Beim Fine-Tuning wird ein bereits vortrainiertes Modell (z. B. LLaMA, Mistral oder GPT) mit einem domänenspezifischen Datensatz weitertrainiert. Statt das Modell von Grund auf neu zu trainieren (was enorme Rechenressourcen erfordert), passt man die vorhandenen Gewichte gezielt an – deutlich effizienter und kostengünstiger.

Wann ist Fine-Tuning sinnvoll?

  • Konsistenter Stil oder Ton: z. B. für Kundensupport-Bots mit spezifischer Markensprache
  • Domänenwissen: Medizin, Recht, Code in proprietären Frameworks
  • Strukturierter Output: wenn das Modell immer JSON oder ein bestimmtes Format liefern soll
  • Kosten/Latenz: Ein kleineres, feingetuntes Modell kann ein großes Modell mit aufwändigem Prompt-Engineering ersetzen

Full Fine-Tuning vs. Parameter-Efficient Fine-Tuning (PEFT)

MethodeBeschreibungRessourcen
Full Fine-TuningAlle Modellgewichte werden angepasstSehr hoch
LoRANur kleine Adapter-Matrizen werden trainiertGering
QLoRALoRA + quantisiertes BasismodellSehr gering

Praxisbeispiel mit Hugging Face

from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments
from trl import SFTTrainer
import datasets

# Modell und Tokenizer laden
model_id = "mistralai/Mistral-7B-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, load_in_4bit=True)

# Eigener Datensatz (Chat-Format)
dataset = datasets.load_dataset("json", data_files="meine_daten.jsonl")["train"]

# Training konfigurieren
training_args = TrainingArguments(
    output_dir="./finetuned-model",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    learning_rate=2e-4,
)

# SFT Trainer (Supervised Fine-Tuning)
trainer = SFTTrainer(
    model=model,
    tokenizer=tokenizer,
    train_dataset=dataset,
    dataset_text_field="text",
    args=training_args,
)

trainer.train()

Typische Fallstricke

  • Overfitting: Zu wenig oder zu homogene Trainingsdaten führen dazu, dass das Modell auswendig lernt statt zu generalisieren
  • Catastrophic Forgetting: Das Modell verliert allgemeines Wissen, wenn zu aggressiv trainiert wird
  • Datenmenge: Als Faustregel gelten mindestens 500–1000 hochwertige Beispiele für erste Ergebnisse
  • Datenqualität schlägt Datenmenge: Lieber 500 saubere als 5000 fehlerhafte Beispiele

Fine-Tuning vs. RAG

Fine-Tuning und RAG lösen unterschiedliche Probleme: Fine-Tuning eignet sich für Stil, Format und implizites Domänenwissen, während RAG besser für aktuelles oder häufig wechselndes Faktenwissen geeignet ist. Oft kombiniert man beide Ansätze.

Inhouse statt Nachschlagewerk

Für den Transfer ins Unternehmen sind die Inhouse-Schulungen der passende nächste Schritt.