LLM Finetuning-Pipeline
End-to-End-Training eigener Sprachmodelle, als Docker geliefert
Gebaut von Rogue AI · Komplett selbst entwickelt · Produktiv seit 2026
Erster sauberer End-to-End-Lauf via docker compose: Ende Januar 2026. Über fünfzig Commits über Training-, Konvertierungs- und Benchmark-Layer seitdem. Letzte Iteration: April 2026.
Das Problem
Sprachmodelle von der Stange kennen deine Domäne nicht. Cloud-Finetuning ist teuer, langsam und schickt dein Training weg. Die meisten Open-Source-Rezepte sind Notebook-Demos, die in Produktion nicht halten.
Was ich gebaut habe
Eine containerisierte Finetuning-Pipeline, die auf einer einzigen Consumer-GPU läuft. Liest JSONL-Trainingsdaten, führt QLoRA-Training mit konfigurierbarem Basismodell durch, merged Adapter-Gewichte, exportiert nach GGUF für Ollama und misst per Benchmark-Harness — alles aus einem docker compose up.
Architektur
Tech-Stack
Was zuerst gebrochen ist
- ▸
Datenqualität schlägt alles. Zwei Wochenenden lang an Rank/Alpha geschraubt, bevor klar war: Das JSONL war das Problem. 1.200 saubere Zeilen schlagen 8.000 schmutzige.
- ▸
Q4_K_M ist eine Falle bei technischem Text. Das Modell fing an, CLI-Flags zu halluzinieren. Standard-Quantisierung ist jetzt Q5_K_M — langsamer, weniger erfunden.
- ▸
Rank > 64 auf einem 13B-Basismodell killt jede 24-GB-Karte, egal wie clever die bitsandbytes-Config ist. Page-Table-Thrashing tarnt sich als 'nur langsam', bis es das nicht mehr tut.
Ergebnis
Eigene Modelle auf Domänendaten trainiert, ohne Daten an Drittanbieter zu schicken. Inferenz läuft lokal via Ollama auf demselben Host. Ersetzt wiederkehrende Finetuning-Kosten durch einen einmaligen Trainingslauf.
Ehrliche Grenzen
Noch keine Eval-Harness für Tool-Use oder Function-Calling — nur Perplexity und Task-Accuracy auf Held-out-Sets. Der Modelfile-Generator hartcodiert den System-Prompt; Multi-Tenant bräuchte das templated. RunPod ist für Experimente weiter günstiger, also läuft die Pipeline beidseitig — aber Produktion läuft lokal.
