Ressourcen/Modelltraining/Datenaufbereitung

Pipeline-Schritt

Validierungs-Split

Ein Teil der Konversationen wird vom Training ausgenommen und verwendet, um den Verlust bei Daten zu beobachten, aus denen das Modell nicht lernt. Die Aufteilung erfolgt nach vollständigen Konversationen, sodass kein Teil eines zurückbehaltenen Chats in das Training einfließt — und dies ist nicht dasselbe wie der Testdatensatz, der für die Evaluierung zurückbehalten wird.

Kapitel 55 Min. Lesezeit3 Quellen

Was es ist

Ein Validation Split legt einen Teil Ihrer Daten beiseite, bevor das Training beginnt. Diese Konversationen werden zurückgehalten: Das Modell trainiert niemals mit ihnen. Der Provider verwendet sie, um während des Trainings den Validation Loss zu berechnen. Sie sind nicht das Test-Set, eine zweite, separate Gruppe von Konversationen, die für die spätere Evaluierung zurückbehalten wird.

Der Grund ist einfach. Ein feinabgestimmtes Modell kann auswendig lernen. Wird ihm eine Frage gestellt, mit der es trainiert wurde, gibt es die Referenzantwort möglicherweise fast wortwörtlich wieder. Das sagt Ihnen jedoch nichts darüber, wie es mit den Fragen der nächsten Woche umgehen wird. Nur Daten, die es noch nicht gesehen hat, können zeigen, ob es das Muster oder nur die Beispiele gelernt hat.

Wie es funktioniert

Training · 90 % der UnterhaltungenValidierung · 10 %, nie darauf trainiert
Ganze Unterhaltungen werden der einen oder anderen Seite zugeordnet. Eine Aufteilung nach Nachrichten würde die erste Hälfte eines Chats ins Training und dessen Antwort in die Validierung verschieben, wodurch die Bewertung das Modell beschönigen würde.

Konversationen werden nach dem Zufallsprinzip der einen oder anderen Seite zugeordnet, und zwar als ganze Konversationen. Eine Aufteilung nach Nachricht wäre eine Form von Data Leakage: Die erste Hälfte eines Chats könnte das Modell trainieren, während seine Antwort in der Validierung liegt, oder dieselbe Antwort könnte auf beiden Seiten in zwei benachbarten Datensätzen auftauchen. Der Validierungs-Score würde dann die Erinnerung messen, nicht die Fähigkeit. Leakage ist eine gut dokumentierte Falle, die weit über Sprachmodelle hinausgeht — Kapoor und Narayanan (2022) fanden Leakage-Fehler, die 329 Publikationen in 17 wissenschaftlichen Bereichen betrafen.

Während des Trainings wendet der Provider das Modell regelmäßig auf die Validierungsdatensätze an und meldet deren Loss, ohne Gewichte zu aktualisieren. Wenn der Training Loss weiter sinkt, der Validation Loss jedoch ansteigt, hat das Modell begonnen zu overfitten.

Die Validierung ist nicht das Test-Set

Validierungsdatensätze werden zusammen mit der Trainingsdatei an den Provider gesendet und während des gesamten Durchlaufs beobachtet; man wählt auch Epochen und Lernraten anhand dieser Daten aus. Das macht sie etwas weniger als ungesehen, sodass sie kein sauberer Abschlusstest sind. Ein sauberer Test erfordert Konversationen, die weder das Training noch die Validierung berühren und Ihre Hände niemals verlassen: das Test-Set. Die Evaluierung verwendet es standardmäßig und greift nur dann auf die Validierungsfragen zurück, wenn kein Test-Set vorhanden ist.

DatensatzWährend des Trainings gesehen?Verwendet für
TrainingJa, daraus wird gelerntAnpassung der Gewichte
ValidierungVom Anbieter gesehen, nicht daraus gelerntValidierungsverlust; eine zweite Meinung bei der Evaluierung, wenn kein Testdatensatz vorhanden ist
TestNein, wird niemals an den Anbieter gesendetBeurteilung, ob sich das Modell wirklich verbessert hat

Wie groß sollte es sein?

Es ist ein Kompromiss. Jede zurückgehaltene Konversation ist eine, aus der das Modell nicht lernt; jede trainierte Konversation ist eine, mit der Sie nicht testen können. Die Präzision eines Scores hängt von der Anzahl der zurückgehaltenen Beispiele ab, nicht von ihrem Anteil. Deshalb sind kleine Datensätze der schwierige Fall. Bei einer Win-Rate schrumpft die Unsicherheit in etwa mit der Quadratwurzel der Anzahl der Fragen:

wie die Stichprobengröße die Präzision bestimmt
standard error of a win rate  ≈  √( p × (1 − p) ÷ n )
95% margin                    ≈  1.96 × standard error
at p = 0.5                    ≈  1 ÷ √n

n = 10   →  ± 31 points
n = 50   →  ± 14 points
n = 100  →  ± 10 points
n = 400  →  ±  5 points
ValidierungsanteilTypisch 10 % (10–20 %)#

Der Anteil der Konversationen, der für die Validierung zurückbehalten wird. Bei Tausenden von Konversationen liefert selbst ein Anteil von 5 % eine stabile Validierungskurve; bei einigen Hundert sorgen 15–20 % für eine weniger rauschanfällige Kurve bei moderaten Einbußen für das Training.

Mindestanzahl zurückbehaltener KonversationenTypisch 10#

Unterhalb dieser Zahl bestünde der Validierungsverlust hauptsächlich aus Rauschen. Daher wird kein Validierungs-Split vorgenommen, und alle Daten außerhalb des Testdatensatzes fließen stattdessen in das Training ein.

Rechenbeispiel: drei Datensatzgrößen bei 10 %
  1. 2.000 Konversationen: 200 gehen zunächst in das Test-Set, dann 10 % des Rests (180) in die Validierung, sodass 1.620 für das Training verbleiben. Eine Evaluierung der 200 Testkonversationen misst eine Win-Rate auf etwa ±7 Punkte genau — gut genug, um Durchläufe zu vergleichen.
  2. 300 Konversationen: 30 Test- und 27 Validierungskonversationen. Eine Evaluierung von 30 Testkonversationen hat eine Fehlermarge von etwa ±18 Punkten und kann ein 55-%-Modell nicht von einem 45-%-Modell unterscheiden; nur mehr Daten können diese Spanne verringern.
  3. 60 Konversationen: 6 gehen in das Test-Set. 10 % der verbleibenden 54 sind 5, was unter dem Minimum von 10 liegt. Daher gibt es keine Validierungskurve und alle 54 werden für das Training verwendet. Die Evaluierung hat immer noch 6 ungesehene Testkonversationen: Das sind wenige, betrachten Sie das Ergebnis also eher als Anhaltspunkt.
  4. 8 Konversationen: zu wenige für ein Test-Set, das einen Datensatz von mindestens 10 erfordert. Nichts wird zurückgehalten, und eine Evaluierung kann nur mit einer Warnung auf Fragen zurückgreifen, mit denen das Modell trainiert wurde.

Häufige Fehler

  • Aufteilung nach Nachricht oder Datensatz, sodass Teile derselben Konversation auf beiden Seiten landen.
  • Zurückhalten eines Anteils, der zu klein ist, um etwas zu messen, und anschließendes Hineininterpretieren einer Bedeutung in ein 6-zu-4-Ergebnis.
  • Hinzufügen von Beinahe-Duplikaten von Validierungskonversationen zu einem späteren Trainings-Set, was diese unbemerkt zu Trainingsdaten macht.
  • Vergleich zweier Modelle, die auf unterschiedlichen zurückgehaltenen Sets evaluiert wurden, als ob die Scores auf derselben Skala lägen.
  • Verzicht auf die Aufteilung bei einem echten Datensatz, um „alle Daten zu nutzen“, wodurch die einzige ehrliche Messung verloren geht.
  • Behandlung von Validierungsergebnissen als sauberen Abschlusstest, obwohl der Provider diese Datensätze während des gesamten Trainings gesehen hat.

Quellen und weiterführende Literatur

Externe Quellen werden in einem neuen Tab geöffnet.

  1. 01Datasets: Dividing the original datasetGoogle Machine Learning Crash Course · developers.google.comEine klare Einführung in Trainings-, Validierungs- und Test-Sets.
  2. 02Training, validation, and test data setsWikipedia · en.wikipedia.orgDefinitionen und die Rolle jedes Sets.
  3. 03Leakage and the Reproducibility Crisis in ML-based ScienceKapoor & Narayanan, 2022 · arXiv · arxiv.orgEine Untersuchung darüber, wie Leakage zwischen Trainings- und Testdaten die gemeldeten Ergebnisse künstlich erhöht.

Verwandeln Sie wochenlange Expertenarbeit in Minuten

Erfahren Sie, wie Scalata zu Ihrem Team, Ihren Daten und Ihren Kontrollen passt.

Vertrieb kontaktieren