Was es ist
Ein Trainingsset ist eine Stichprobe der Situationen, auf die ein Modell treffen wird. Es enthält ein Muster, das gelernt werden soll, wie z. B. wie Ihr Assistent antwortet und in welchem Ton und Format, sowie Rauschen, das Sie nicht möchten: den genauen Wortlaut einer Antwort, einen Tippfehler, die Eigenheiten der Frage eines Kunden. Ein Modell generalisiert, wenn es das Muster erfasst. Es kommt zum Overfitting, wenn es sich auch an das Rauschen anpasst, und zum Underfitting, wenn es das Muster nicht erfasst hat.
So erkennen Sie es
Das deutlichste Signal findet sich in den Verlustkurven. Der Trainingsverlust kann so lange weiter sinken, wie das Modell mehr auswendig lernen kann. Der Validierungsverlust, gemessen an Konversationen, mit denen das Modell nie trainiert wurde, hört auf zu sinken, wenn das Modell gelernt hat, was generalisiert, und steigt, sobald es anfängt, auswendig zu lernen.
Bei einem feingetunten Sprachmodell zeigt sich Overfitting auch in den Antworten selbst.
- Wortwörtliches Kopieren: Phrasen, ganze Sätze, sogar Namen und Zahlen aus Trainingsantworten tauchen in Antworten auf unzusammenhängende Fragen auf.
- Vorgefertigte Antworten: Eine stark vertretene Antwort wird auf Fragen gegeben, die der ursprünglichen Frage nur ähneln.
- Verlorene Flexibilität: Fragen, die wie die Trainingsdaten formuliert sind, funktionieren gut, anders formulierte bereiten Schwierigkeiten, und allgemeine Aufgaben, die das Basismodell zuvor bewältigte, haben sich verschlechtert.
- Überzeugende Erfindungen: Das Modell imitiert den Stil spezifischer, detaillierter Antworten, wie etwa benannte Menüs und nummerierte Schritte, ohne das dahinterstehende Wissen zu besitzen, und erfindet die Details.
Warum es passiert
| Ursache | Warum dies zum Auswendiglernen führt |
|---|---|
| Zu wenige Beispiele | Bei wenigen Daten ist das Auswendiglernen jeder Antwort der einfachste Weg, den Loss zu minimieren |
| Zu viele Epochen | Jeder Durchlauf zeigt dieselben Antworten erneut, bis das Modell sie wiedererkennt |
| Lernrate zu hoch | Große Updates passen sich schnell an einzelne Beispiele an |
| Duplikate und wiederholte Antworten | Eine Antwort, die oft vorkommt, wird als feste Antwort erlernt |
| Einseitige Daten | Das Modell sieht nie, wie echte Fragen variieren, und kann daher nicht lernen, was variabel ist |
| Zu viel Kapazität für die Daten | Vollständiges Fine-Tuning oder ein großer Adapter auf einem kleinen Datensatz bietet genug Platz, um Beispiele zu speichern |
So verhindern Sie es
- Stoppen Sie am optimalen Punkt. Verwenden Sie die Anzahl der Epochen, bei der der Validierungsverlust am niedrigsten war, oder einen Checkpoint von diesem Punkt. Dies ist Early Stopping, der einfachste und effektivste Schutz.
- Weniger Epochen oder eine niedrigere Lernrate. Beides begrenzt, wie weit sich die Gewichte vom Basis-Modell entfernen.
- Mehr und vielfältigere Daten. Decken Sie die verschiedenen Arten ab, wie Menschen wirklich fragen, einschließlich kurzer und vager Fragen. Ein paar hundert abwechslungsreiche Beispiele lehren mehr als tausend Beinahe-Duplikate.
- Entfernen Sie Duplikate und zu oft wiederholte Antworten vor dem Training.
- Regularisierung: LoRA-Dropout, Weight Decay oder einfach ein kleinerer Adapter-Rang, was begrenzt, wie viel gespeichert werden kann.
- Durchlauf A: 6 Epochen, Multiplikator 2. Der Trainingsverlust erreicht 0,15. Der Validierungsverlust ist nach Epoche 2 am niedrigsten und endet deutlich über diesem Minimum. Im Test-Chat verwenden die Antworten ganze Sätze aus den Trainingsantworten wieder.
- Durchlauf B: 2 Epochen, Multiplikator 1. Der Trainingsverlust endet bei 0,6 und der Validierungsverlust endet nahe seinem Minimum. Die Antworten behalten den Hausstil bei, werden aber für jede Frage neu formuliert.
- Fazit: Der geringere Trainingsverlust von Durchlauf A ist das Problem, nicht der Erfolg. Durchlauf B generalisiert und das Training kostete nur ein Drittel.
Underfitting
Underfitting ist der gegenteilige Fehler: Weder der Trainings- noch der Validierungsverlust sinkt stark, und das feingetunte Modell antwortet ähnlich wie das Basis-Modell. Die Ursachen sind zu wenig Training (zu wenige Epochen oder Schritte oder eine zu niedrige Lernrate) oder Daten ohne konsistentes Muster, wie z. B. Antworten, die ähnliche Fragen auf widersprüchliche Weise beantworten. Überprüfen Sie zuerst die Daten. Das Erhöhen der Epochen oder der Lernrate bei inkonsistenten Daten lehrt meistens nur die Inkonsistenz.
Häufige Fehler
- Einen Durchlauf nach seinem Trainingsverlust zu beurteilen. Der niedrigste Trainingsverlust gehört meistens zum Durchlauf mit dem stärksten Overfitting.
- Der Versuch, ein schwaches Modell mit mehr Epochen auf demselben kleinen Datensatz zu reparieren.
- Den Validierungs-Split zu überspringen, um jedes Beispiel für das Training zu behalten, und damit die einzige Möglichkeit zu verlieren, Overfitting zu erkennen.
- Zuzulassen, dass Duplikate oder eine einzige vorgefertigte Antwort die Daten dominieren.
- Die Validierung anhand von Konversationen, die auch im Training vorkommen, was Overfitting vollständig verbirgt.
Quellen und weiterführende Literatur
Externe Quellen werden in einem neuen Tab geöffnet.
- 01OverfittingGoogle Machine Learning Crash Course · developers.google.comGeneralisierung, Overfitting und die Rolle eines zurückgehaltenen Datensatzes, mit interaktiven Beispielen.
- 02OverfittingWikipedia · en.wikipedia.org
- 03Early stoppingWikipedia · en.wikipedia.orgDas Stoppen am Punkt des niedrigsten Validierungsfehlers, der häufigste Schutz vor Overfitting.
- 04Regularization for Deep LearningGoodfellow, Bengio & Courville · Deep Learning, chapter 7 · deeplearningbook.orgDie lehrbuchmäßige Behandlung von Weight Decay, Dropout, Early Stopping und Data Augmentation.