Fine-Tuning eines LLM: So geht’s [und wann Sie stattdessen RAG oder Prompting nutzen sollten]
Dieser Leitfaden erklärt Schritt für Schritt, wie Sie ein LLM per Fine-Tuning anpassen, vergleicht vollständiges Fine-Tuning mit LoRA und QLoRA und zeigt, wann Prompting oder RAG der bessere Weg ist, um die Ausgaben eines Modells zu verbessern.

Beim Fine-Tuning eines großen Sprachmodells (LLM) wird ein vortrainiertes LLM mit einem kleinen, aufgabenspezifischen Datensatz weiter verfeinert, sodass es Ergebnisse liefert, die Sie allein durch Prompting nicht erreichen.
Zum Fine-Tuning gehört, Beispielpaare aus Ein- und Ausgaben zu sammeln, die das gewünschte Verhalten zeigen, Trainingsdurchläufe auszuführen, die die Gewichte des Modells in diese Richtung verschieben, und das Ergebnis mit den Ausgaben des ursprünglichen Modells zu vergleichen. Parametereffiziente Methoden wie LoRA machen das so günstig, dass es auf einer einzigen GPU läuft.
Wenn Sie mit den Ausgaben des LLM nicht zufrieden sind, optimieren Sie zuerst Ihre Prompts und Ihre Retrieval-Augmented Generation (RAG). Fine-Tuning verändert das Verhalten des LLM. Wenn es aktuelle oder proprietäre Informationen nutzen soll, sind Prompting und RAG meist die bessere Wahl.
Hier erfahren Sie Schritt für Schritt, wie Sie ein LLM feinabstimmen, welche Fine-Tuning-Methoden die wichtigsten sind (LoRA und QLoRA) und welche Herausforderungen und Fehler den Prozess scheitern lassen können.
Was LLM-Fine-Tuning ist und wie es sich vom LLM-Pre-Training unterscheidet
Beim LLM-Pre-Training werden die allgemeinen Sprachfähigkeiten eines Modells von Grund auf anhand eines riesigen Korpus aufgebaut, während beim LLM-Fine-Tuning ein vortrainiertes Modell mit einem kleinen Datensatz an eine bestimmte Aufgabe angepasst wird.
Das LLM-Pre-Training ist die ressourcenintensive Phase, in der ein Basismodell entsteht. Dabei lernt das Modell aus einem breiten Textkorpus und erwirbt so allgemeine Grammatik, Faktenwissen und die Fähigkeit zum logischen Schlussfolgern, aber keine Spezialisierung auf Ihre Aufgabe.
Beim LLM-Fine-Tuning wird das Training des Basismodells mit einem kleinen, kuratierten Datensatz fortgesetzt, damit es für eine bestimmte Aufgabe oder einen bestimmten Anwendungsfall die gewünschten Ausgaben liefert. Denken Sie etwa an ein einheitliches Format, eine Markenstimme oder Tonalität, domänenspezifische Muster oder zuverlässige Tool- und Funktionsaufrufe.
Wann Sie LLMs feinabstimmen sollten – und wann Prompting oder RAG die bessere Wahl ist
Um die Leistung eines LLM zu verbessern, gehen Sie stufenweise vor: Prompting -> RAG -> Fine-Tuning.
Verfeinern Sie Ihre Prompts mit detaillierteren Anweisungen und nutzen Sie RAG, um dem Modell aktuelle Informationen bereitzustellen. Greifen Sie erst dann zum Fine-Tuning, wenn Verbesserungen an Prompts und Retrieval nicht ausreichen.
Ansatz | Was sich ändert | Geeignet, wenn | Wichtigste Einschränkung |
Prompt-Engineering | Die Anfrage, die Sie senden | Das Verhalten passt schon fast, und Sie möchten schnelle, umkehrbare Anpassungen | Begrenzt durch die vorhandenen Fähigkeiten des Basismodells |
RAG | Was das Modell zur Inferenzzeit sieht | Fakten ändern sich häufig, und das LLM muss auf aktuelle Informationen zugreifen können | Zusätzliche Retrieval-Latenz und Infrastruktur; ändert das Verhalten nicht |
LLM-Fine-Tuning | Die Gewichte des Modells (interne Modellparameter) | Sie benötigen konsistentes Verhalten, Format oder Tonalität im großen Maßstab oder kürzere Prompts bei jedem Aufruf | Vorabkosten, in den Gewichten verankertes Wissen veraltet, Risiko, vortrainierte Verhaltensweisen zu vergessen |
Wann bessere Prompts dem Fine-Tuning überlegen sind – und wann sie nicht ausreichen
Prompting ist der schnellste und günstigste Hebel. In vielen Fällen lassen sich die gewünschten Verhaltensänderungen mit präziseren und detaillierteren Prompts erreichen.
Längere Prompts verlangsamen jedoch die Arbeit, machen sie teurer und können bestehende Grenzen des Modells nicht überwinden.
Anzeichen dafür, dass Prompting an seine Grenzen gestoßen sein könnte:
- Neue Grenzfälle führen immer wieder zu fehlerhaften Ausgaben: Das Modell liefert zum Beispiel Fließtext, obwohl Sie JSON brauchen, oder trifft nicht den richtigen Ton, und Sie passen den Prompt für jeden neuen Fall an.
- Der System-Prompt wird immer länger: Der Prompt umfasst Hunderte oder Tausende Zeilen und ist schwer zu pflegen.
- Sie zahlen bei jedem Aufruf dafür: Der Prompt wird bei jeder Anfrage erneut gesendet und verarbeitet, sodass Token-Kosten und Latenz steigen.
- Änderungen bewirken nichts mehr: Neue Anweisungen verbessern die Ausgaben nicht.
Probieren Sie selbst dann zuerst die günstigeren Lösungen auf Prompt-Ebene aus. Nutzen Sie Few-Shot-Beispiele, um dem Modell das Muster zu zeigen (Ein- und Ausgabepaare), Prompt-Chaining, um schwierige Aufgaben in kleinere Schritte aufzuteilen, oder Function-Calling-Hooks, um exakte Abfragen oder Berechnungen auszulagern.
Wann RAG sinnvoller ist als das Fine-Tuning des Modells
RAG verändert, was das LLM weiß, während LLM-Fine-Tuning verändert, wie es sich verhält. Liegt die Lücke beim Wissen – insbesondere bei Wissen, das sich häufig ändert oder in Ihren eigenen Dokumenten steckt –, ist RAG die Lösung. Liegt sie im Verhalten, setzen Sie auf Fine-Tuning.
Fine-Tuning verändert zwar auch, was ein Modell weiß, doch alle Fakten, die es dabei aufnimmt, bleiben auf dem Stand des Trainingszeitpunkts eingefroren und veralten in schnelllebigen Bereichen rasch. Zudem werden die Informationen in den Gewichten des Modells verankert, sodass sich ihre Quelle nicht mehr nachvollziehen lässt.
Die Quelldokumente einer Retrieval-Schicht zu aktualisieren, ist schneller und günstiger, und die Schicht kann genau die Quellen angeben, die sie verwendet hat. Damit ist RAG die bessere Wahl, wenn Sie belastbare, aktuelle Informationen benötigen.
Der Nachteil von RAG? Es ist eine zusätzliche Schicht, die aufgebaut und gepflegt werden muss, und sie erhöht die Latenz.
In der Praxis brauchen Sie oft beides. Produktivsysteme kombinieren feinabgestimmte Modelle mit RAG – das eine für konsistentes Verhalten, das andere für aktuelle Fakten.
Häufige Fallstricke, Risiken und Herausforderungen beim Fine-Tuning
Selbst wenn Fine-Tuning das richtige Werkzeug ist, bringt es Kosten und Risiken mit sich:
- Kosten und Zeit: Saubere, repräsentative Trainingsdaten zusammenzustellen, ist teuer – ebenso die Rechenleistung für das Training.
- Katastrophales Vergessen: Wird ein Modell mit einem eng gefassten Datensatz trainiert, kann es allgemeine Fähigkeiten verlieren und neue Fehlermuster entwickeln. Das führt zu Fehlern, die dem Basismodell nicht unterlaufen sind.
- Overfitting: Bei zu wenigen oder zu gleichförmigen Daten lernt das Modell Ihre Trainingsbeispiele auswendig, statt Muster zu erlernen. Dadurch schneidet es bei seinen Trainingsdaten gut ab, bei echten Eingaben jedoch schlecht.
- Veraltetes Wissen: In den Gewichten verankertes Wissen veraltet schnell, sodass Sie mit neuen Daten erneut trainieren müssen.
- Obsoleszenz: Erscheint ein leistungsstärkeres Modell, übertrifft es Ihr feinabgestimmtes Modell oft schon ohne Anpassung, und Sie müssen die Arbeit wiederholen.
- Herausforderungen bei Evaluierung und Reproduzierbarkeit: Nachzuweisen, dass das feinabgestimmte Modell besser abschneidet als das Basismodell, ist schwierig. Zudem können zwei GPU-Trainingsläufe mit denselben Einstellungen leicht unterschiedliche Modelle hervorbringen.
- Data Governance: Das Training mit proprietären oder sensiblen Daten wirft Fragen zu Datenschutz und Lizenzierung auf; ein Modell kann später Fragmente seiner Trainingsdaten preisgeben.
Die wichtigsten Fine-Tuning-Methoden
Die wichtigsten Arten des LLM-Fine-Tunings unterscheiden sich darin, wie viel vom Modell sie verändern: Beim vollständigen Fine-Tuning wird das gesamte Modell neu trainiert, während Methoden des parametereffizienten Fine-Tunings (PEFT) wie LoRA und QLoRA nur einen Teil der Gewichte aktualisieren. PEFT-Methoden benötigen nur einen Bruchteil des Speichers eines vollständigen Fine-Tunings und können mit den richtigen Einstellungen vergleichbare Ergebnisse erzielen.
Beim vollständigen Fine-Tuning wird jedes Gewicht des Modells aktualisiert. Es ist am teuersten und birgt das höchste Risiko für katastrophales Vergessen. Setzen Sie es nur für tiefgreifende Verhaltensänderungen ein, wenn Ihnen die nötigen Daten und Rechenressourcen zur Verfügung stehen.
Die Alternative ist das parametereffiziente Fine-Tuning, kurz PEFT. Dieser Oberbegriff umfasst Methoden, die den Großteil des Modells einfrieren und nur eine kleine Anzahl von Parametern trainieren. Diese Methoden benötigen deutlich weniger Speicher und sind weniger anfällig für Vergessen, da das Basismodell unverändert bleibt.
Bei niedrigen Rängen lernt PEFT weniger als ein vollständiges Fine-Tuning. Wenn Sie jedoch den Rang erhöhen und die Lernrate anpassen, lässt sich der Abstand bei Instruction-Tuning-Aufgaben größtenteils schließen.
Zu den PEFT-Methoden gehören:
- LoRA (Low-Rank Adaptation): Der übliche Ausgangspunkt. LoRA friert die ursprünglichen Gewichte ein und trainiert eine kleine Anzahl zusätzlicher Adapterparameter, oft weniger als 1 % der Gesamtzahl, sodass es auf einer einzigen Consumer-GPU läuft.
- QLoRA (Quantized Low-Rank Adaptation): Komprimiert das Basismodell vor der Anwendung von LoRA auf 4-Bit-Präzision, sodass Sie ein großes Modell auf einer einzigen GPU feinabstimmen können.
Methode | Was aktualisiert wird | Hardwarebedarf in der Praxis | Geeignet, wenn |
Vollständiges Fine-Tuning | Jedes Gewicht im Modell | Ein Multi-GPU-Knoten für Modelle der 7B-Klasse, für größere Modelle deutlich mehr | Sie benötigen tiefgreifende Verhaltensänderungen und verfügen über die nötigen Daten und Rechenressourcen |
LoRA (PEFT) | Eine kleine Anzahl zusätzlicher Adaptergewichte | Eine einzige Consumer-GPU | Ihr Standard-Ausgangspunkt |
QLoRA (PEFT) | LoRA-Adapter auf einem auf 4 Bit komprimierten Basismodell | Sehr große Modelle auf einer einzigen GPU | Sie haben wenig Speicher, möchten aber ein großes Basismodell nutzen |
Darüber hinaus nutzen wir Methoden für Instruction-Tuning und Preference-Tuning – von RLHF (Reinforcement Learning from Human Feedback) bis hin zu schlankeren Alternativen wie Direct Preference Optimization (DPO) und Odds Ratio Preference Optimization (ORPO) –, um zu steuern, wie ein Modell Anweisungen befolgt und menschlichen Präferenzen entspricht.
LLM-Fine-Tuning Schritt für Schritt
Wenn Sie entschieden haben, dass Fine-Tuning für Ihr LLM der richtige Weg ist, sieht der Workflow so aus.
Schritt 1: Definieren Sie die Aufgabe und legen Sie fest, wie Sie den Erfolg messen
Legen Sie fest, welches Verhalten Sie vom LLM erwarten und woran Sie erkennen, dass Sie es erreicht haben.
Benennen Sie die konkrete Aufgabe, die das feinabgestimmte Modell erledigen soll, zum Beispiel Support-Tickets klassifizieren, Verträge in einem festen Format zusammenfassen oder Code in Ihrem hauseigenen Stil generieren.
Definieren Sie dann, was Erfolg bedeutet. Gängige Optionen sind:
- Gültigkeit der Ausgabe: Lässt sich das Ergebnis zum Beispiel als gültiges JSON parsen oder entspricht es der benötigten Markdown-Struktur?
- Automatisierte Scores: Verwenden Sie Metriken wie BLEU oder ROUGE, die generierten Text mit Referenzantworten vergleichen, oder die Aufgabengenauigkeit auf einem gelabelten Datensatz.
- Menschliche Bewertungen: Ein Bewertungsschema mit Punkten oder Bestanden/Nicht bestanden für Eigenschaften, die ein Skript nur schlecht bewerten kann, etwa Tonalität oder Hilfsbereitschaft.
- Zuverlässigkeit bei schwierigen Eingaben: Kommt das Modell mit den ungewöhnlichen Eingaben zurecht, an denen das Basismodell gescheitert ist?
Schritt 2: Bereiten Sie Ihren Datensatz vor
Die Datenqualität entscheidet über den Erfolg des Fine-Tunings. Investieren Sie daher Zeit und Mühe in die Zusammenstellung des richtigen Fine-Tuning-Datensatzes.
Formatieren Sie Ihre Daten als Anweisung/Antwort-Paare im JSONL-Format, wobei jede Zeile die Eingabe (plus etwaigen Kontext) und genau die Ausgabe enthält, die Sie zurückerhalten möchten.
Sehen Sie sich zum Beispiel öffentliche Datensätze an, etwa den allgemeinen Instruktionsdatensatz Alpaca-cleaned oder Dolly von Databricks, oder den aufgabenspezifischen Datensatz banking77, der über 13.000 echte Support-Anfragen enthält, die 77 Intents zugeordnet sind.
Für eine klar umrissene Aufgabe können schon einige hundert bis einige tausend saubere, abwechslungsreiche Beispiele das Verhalten verändern – vorausgesetzt, die Beispiele spiegeln echte Produktionseingaben einschließlich der Grenzfälle wider und sind einheitlich formatiert.
Noch keine Ein- und Ausgabepaare? Erstellen Sie den Datensatz aus den Daten, die Sie bereits haben, etwa aus Support-Tickets und den besten Antworten darauf oder aus Dokumenten und ihren Zusammenfassungen.
Wenn Sie nur die Ausgaben haben, lassen Sie ein leistungsstärkeres Modell für jede Ausgabe eine plausible Eingabe generieren, oder schreiben Sie einen kleinen Startdatensatz von Hand und erweitern Sie ihn mit einem größeren „Lehrermodell“. Behalten Sie anschließend die besten Paare.
Teilen Sie die Daten abschließend in Trainings-, Validierungs- und Testdatensätze auf, damit Sie an Beispielen messen können, die das Modell noch nicht gesehen hat.
Schritt 3: Wählen Sie ein Basismodell und eine Methode
Beginnen Sie mit einem kleinen Open-Source-Modell mit 3 bis 7 Milliarden Parametern und einer parametereffizienten Fine-Tuning-Methode wie LoRA oder QLoRA.
Offene Modellfamilien wie Llama, Mistral und Qwen bieten Ihnen eine starke Basis, die Sie selbst hosten können, und die PEFT-Methoden halten die Hardwareanforderungen niedrig: QLoRA quantisiert die Basis auf 4 Bit, sodass für das Fine-Tuning eines 7B-Modells nur eine Consumer-Grafikkarte mit 16–24 GB nötig ist. Ein vollständiges Fine-Tuning desselben Modells benötigt ein Vielfaches dieses Speichers.
Schritt 4: Legen Sie Ihre Trainings-Hyperparameter fest
Hier sind die wichtigsten Parameter für das LLM-Fine-Tuning und empfohlene Ausgangsbereiche:
- Die Lernrate bestimmt, wie groß jede Aktualisierung der Gewichte ausfällt. Eine Studie von Biderman et al. aus dem Jahr 2024 ergab, dass die optimalen Lernraten für LoRA etwa zehnmal höher lagen als beim vollständigen Fine-Tuning, typischerweise 5e-5 bis 5e-4 gegenüber 1e-5 bis 5e-5. Die Studie empfiehlt, Werte von 1e-5 bis 5e-4 zu testen und den höchsten Wert zu verwenden, mit dem das Training stabil verläuft.
- Batchgröße gibt an, aus wie vielen Beispielen das Modell lernt, bevor die Gewichte jeweils aktualisiert werden. Verwenden Sie auf einer einzelnen GPU eine kleine Batchgröße pro Gerät von 1 bis 8 und Gradientenakkumulation, um eine effektive Batchgröße von etwa 16 bis 64 zu erreichen.
- Anzahl der Epochen gibt an, wie oft das Modell den vollständigen Datensatz durchläuft. Wenn Sie das Modell für bestimmte Aufgaben trainieren, sind 1 bis 3 Epochen eine gute Faustregel, LoRA-Durchläufe benötigen jedoch oft mehr.
- LoRA-Rang (r) legt die Kapazität des Adapters fest, also wie viel er lernen kann. Beginnen Sie bei einfacheren Aufgaben mit 8 bis 32 und erhöhen Sie den Wert für anspruchsvollere: In der oben zitierten LoRA-Studie von Biderman et al. war beim Instruction-Tuning eines 7B-Modells auf Code Rang 256 nötig, um mit vollständigem Fine-Tuning gleichzuziehen, während Rang 64 bei Mathematik nahe herankam.
- Maximale Sequenzlänge ist die längste Eingabe, die der Durchlauf verarbeitet. Wählen Sie sie so, dass Ihre längsten Beispiele abgedeckt sind – höchstens bis zur Größe des Kontextfensters des Modells –, denn alles, was länger ist, wird abgeschnitten.
- Warmup und Lernratenplan steuern, wie die Lernrate zu Beginn ansteigt und sich im Verlauf des Trainings verändert. Ein kurzes Warmup und ein Cosine-Decay sind die üblichen Standardeinstellungen. Die Studie von Pareja et al. zu kleinen Modellen ergab jedoch, dass der Verzicht auf das Warmup die Endergebnisse nicht verschlechterte.
Betrachten Sie diese Werte als Ausgangspunkte für einen Sweep, nicht als feste Einstellungen.
Schritt 5: Trainieren und Verlust überwachen
Beobachten Sie während des Trainings die Verlustkurven für Training und Validierung, um zu prüfen, ob es funktioniert.
Der Verlust (Loss) misst, wie weit die Ausgaben des Modells von Ihren Beispielen abweichen, und sollte im Verlauf des Trainings gleichmäßig sinken. Der Trainingsverlust bezieht sich auf die Daten, aus denen das Modell lernt. Der Validierungsverlust wird an den zurückgehaltenen Beispielen gemessen.
Wenn Trainings- und Validierungsverlust gemeinsam sinken, lernt das Modell zu generalisieren. Sinkt der Trainingsverlust weiter, während der Validierungsverlust stagniert oder ansteigt, lernt das Modell den Trainingsdatensatz auswendig, statt das Muster zu erlernen (Overfitting).
Schritt 6: Evaluieren, dann bereitstellen
Ein niedriger Trainingsverlust garantiert keine korrekten Ausgaben. Bewerten Sie das feinabgestimmte Modell daher anhand der Kriterien, die Sie in Schritt 1 festgelegt haben.
Wenn das Modell die Prüfung besteht, haben Sie zwei Möglichkeiten für die Bereitstellung:
- Stellen Sie den Adapter zusammen mit dem Basismodell bereit und laden Sie beide zur Laufzeit; so bleibt der Adapter austauschbar.
- Führen Sie den Adapter mit den Basisgewichten zusammen, um ein einzelnes eigenständiges Modell zu erhalten, das sich einfacher hosten lässt.
Nutzen Sie Perplexity, um Ihrem LLM Zugriff auf aktuelle Informationen zu geben
Fine-Tuning ist die richtige Wahl, wenn Sie das Verhalten eines Modells an Ihre Anforderungen anpassen möchten.
Wenn Ihr Modell aktuelle Informationen benötigt, insbesondere solche, die sich schnell ändern, brauchen Sie RAG oder ein zuverlässiges Suchtool eines Drittanbieters.
Ein eigener Retrieval-Stack eignet sich am besten für proprietäre Datensätze wie Ihr internes Wiki, den Verlauf Ihres Kundensupports, Verträge oder Produktdokumentation.
Wenn das Wissen, das Sie nutzen möchten, öffentlich ist, müssen Sie keine eigene Retrieval-Ebene aufbauen. Perplexity ist eine Antwortmaschine, die Antworten mit klickbaren Inline-Quellenangaben aus einem Live-Webindex liefert. Die Agent API liefert diese webbasierten Antworten mit Quellenangaben in einem einzigen Aufruf, sodass Ihre App auf aktuelle Quellen zurückgreifen kann.
Häufig gestellte Fragen zum Fine-Tuning von LLMs
Kann man ein LLM kostenlos per Fine-Tuning anpassen?
Ja, Sie können ein kleines offenes LLM kostenlos per Fine-Tuning anpassen. Die kostenlose Version von Google Colab bietet beispielsweise genug GPU-Leistung, um QLoRA auf einem Modell mit 3B bis 8B Parametern auszuführen – das reicht für eine klar umrissene Aufgabe völlig aus. Kosten fallen erst an, wenn Sie mehr Speicher, längere Durchläufe oder ein größeres Basismodell benötigen, als die kostenlose Version bewältigen kann.
Brauchen Sie eine eigene GPU oder können Sie das Fine-Tuning in der Cloud durchführen?
Für das Fine-Tuning von LLMs müssen Sie keine eigene GPU besitzen. Managed Services und GPU-Cloud-Anbieter vermieten die Hardware stundenweise, sodass eine einzige gemietete GPU für einen QLoRA-Durchlauf mit einem kleinen Modell ausreicht. Der Kauf einer GPU lohnt sich nur, wenn Sie häufig Fine-Tuning durchführen oder alle Ihre Daten auf Ihren eigenen Rechnern behalten müssen.
Wie lange dauert das Fine-Tuning von LLMs?
Bei einem kleinen LLM kann ein Durchlauf je nach Datensatzgröße und Hardware in wenigen Minuten bis einigen Stunden abgeschlossen sein. Oumi etwa hat auf seiner gehosteten Plattform ein 0,8B-Modell in etwas mehr als einer Stunde vollständig feinabgestimmt.
Größere Modelle oder Zehntausende von Beispielen verlängern das auf einen Tag oder mehr: Die LoRA-Durchläufe von Emburse mit einem 7B-Modell dauerten auf einer einzelnen 40-GB-GPU 8 Stunden für 5.000 Beispiele und etwa 30 Stunden für 50.000.
Können Sie ein feinabgestimmtes Modell laufend aktualisieren, wenn sich Ihre Daten ändern?
Sie können das Fine-Tuning mit neuen Daten wiederholen, doch jede Runde kostet Rechenleistung und birgt das Risiko des katastrophalen Vergessens (Catastrophic Forgetting). Für Wissen, das sich häufig ändert, ist RAG meist die bessere Lösung, da Sie die Quelldokumente aktualisieren, statt das Modell neu zu trainieren.