Fine-tuning
Beim Fine-Tuning wird ein vortrainiertes Modell mit aufgabenspezifischen Daten weitertrainiert, damit es sich mit deutlich weniger Daten und Rechenleistung anpasst. Behandelt die Funktionsweise, PEFT und Code.
Feinabstimmung bedeutet, das Training eines bereits auf einem großen Datensatz trainierten Modells fortzusetzen und einige oder alle seiner Gewichte anhand eines kleineren, aufgabenspezifischen Datensatzes zu aktualisieren. Die Gewichte des vortrainierten Modells enthalten bereits allgemeines Wissen, etwa über Kanten, Texturen und Formen bei Bildverarbeitungsmodellen oder über Grammatik und Fakten in großen Sprachmodellen (LLMs). Deshalb erreicht die Feinabstimmung mit deutlich weniger gelabelten Daten und Rechenleistung als ein Training mit Zufallsgewichten eine hohe Genauigkeit. Sie ist die gängigste Methode für Transferlernen und die Grundlage für die meisten benutzerdefinierten Modelle zur Objekterkennung und die meisten Chat-Assistenten, die auf vortrainierten Basismodellen aufbauen.
So funktioniert die Feinabstimmung#
Bei einem Feinabstimmungslauf werden vortrainierte Gewichte geladen, Schichten mit Bezug zur ursprünglichen Aufgabe – etwa ein Klassifikator oder Erkennungskopf – ersetzt oder angepasst und das Modell mit der üblichen Verlustfunktion und dem üblichen Optimierer auf den neuen Daten trainiert. Drei Entscheidungen bestimmen, wie viel vom ursprünglichen Modell erhalten bleibt:
- Lernrate: Bei der Feinabstimmung wird eine niedrigere Lernrate als beim Vortraining verwendet, üblicherweise nach einer kurzen Aufwärmphase. So verfeinern die Aktualisierungen die vortrainierten Merkmale, statt sie zu überschreiben. ULMFiT ging mit differenziellen Lernraten noch weiter und teilte die Rate für jede Schicht unterhalb der obersten durch 2,6.
- Welche Schichten trainiert werden: Das Einfrieren der frühen Schichten des Backbones erhält allgemeine Merkmale, senkt den Speicherbedarf und verringert bei kleinen Datensätzen das Risiko der Überanpassung. Beim schrittweisen Auftauen wird zuerst der neue Kopf trainiert und anschließend werden tiefere Schichten freigegeben.
- Trainingsdauer: Je länger ein Modell ausschließlich mit neuen Daten trainiert wird, desto mehr seiner ursprünglichen Fähigkeiten verliert es durch katastrophales Vergessen.
Die passende Konfiguration hängt vom verfügbaren Speicher, der Menge an gelabelten Daten und davon ab, ob die ursprünglichen Fähigkeiten weiterhin wichtig sind:
Vollständige und parametereffiziente Feinabstimmung#
Bei der vollständigen Feinabstimmung wird jedes Gewicht aktualisiert. Bei einem LLM mit 7 Milliarden Parametern müssen dafür Gradienten und Optimiererzustand für 7 Milliarden Werte vorgehalten und für jede Aufgabe eine vollständige Modellkopie gespeichert werden. Bei der parametereffizienten Feinabstimmung (PEFT) bleiben die vortrainierten Gewichte eingefroren und stattdessen wird eine kleine Anzahl hinzugefügter oder ausgewählter Parameter trainiert. Die PEFT-Bibliothek von Hugging Face implementiert die gängigen Methoden. LoRA ergänzt eingefrorene Gewichtsmatrizen um trainierbare Matrizen mit niedrigem Rang. Gegenüber der vollständigen Feinabstimmung von GPT-3 175B mit Adam verringerte LoRA die Anzahl trainierbarer Parameter um den Faktor 10.000 und den GPU-Speicherbedarf um den Faktor 3. QLoRA trainiert LoRA-Adapter auf einem 4-Bit-quantisierten Basismodell. Dadurch wurde die Feinabstimmung eines Modells mit 65 Milliarden Parametern auf einer einzelnen GPU mit 48 GB möglich.
LLMs durchlaufen nach dem Vortraining mehrere Feinabstimmungsphasen. Beim Instruktionstuning wird mit Paaren aus Eingabeaufforderungen und Antworten trainiert. Anschließend richten präferenzbasierte Methoden wie bestärkendes Lernen mit menschlichem Feedback (RLHF) und direkte Präferenzoptimierung (DPO) die Antworten an menschlichen Präferenzen aus.
Feinabstimmung und verwandte Begriffe#
- Transferlernen: Der allgemeine Ansatz, ein für eine Aufgabe trainiertes Modell für eine andere wiederzuverwenden. Bei der Feinabstimmung werden die vortrainierten Gewichte aktualisiert. Bei der Merkmalsextraktion bleiben sie eingefroren und es wird nur ein neuer Kopf trainiert.
- Training von Grund auf: Beginnt mit Zufallsgewichten und benötigt deutlich mehr gelabelte Daten und Rechenleistung. Es eignet sich für neue Architekturen und Bereiche, die nur wenig mit verfügbaren Vortrainingsdaten gemeinsam haben.
- Lineares Sondieren: Trainiert ausschließlich einen linearen Klassifikator auf eingefrorenen Merkmalen, üblicherweise um zu messen, wie viel eine vortrainierte Repräsentation bereits erfasst.
- Prompt Engineering und Retrieval-Augmented Generation (RAG): Verändern das Verhalten eines LLM über seine Eingabe, ohne die Gewichte anzutasten.
Einen Objektdetektor feinabstimmen#
Wird auf einem vortrainierten YOLO26-Checkpoint mit einem neuen Datensatz train() aufgerufen, wird das Modell feinabgestimmt: Alle kompatiblen Gewichte werden übernommen. Die Standardeinstellung cls_remap=True kopiert Zeilen des Klassifikators, deren Klassennamen übereinstimmen. Beim Datensatz African Wildlife beruhen die Ausgaben für Elefant und Zebra daher auf den mit COCO vortrainierten Zeilen, während Büffel und Nashorn, die in COCO fehlen, mit neuen Gewichten beginnen.
from ultralytics import YOLO
# Mit COCO vortrainierte YOLO26n-Gewichte laden; YOLO("yolo26n.yaml") würde stattdessen von Grund auf trainieren
model = YOLO("yolo26n.pt")
# Mit 1.052 Trainingsbildern von Büffeln, Elefanten, Nashörnern und Zebras feinabstimmen
results = model.train(data="african-wildlife.yaml", epochs=30, imgsz=640)Für diesen Trainingslauf mit 30 Epochen wählt die Standardeinstellung optimizer="auto" AdamW mit lr0=0.00125. Die Lernrate wird anhand der 4 Klassen des Datensatzes berechnet, da der Lauf unter 10.000 Iterationen bleibt.










