Was es ist
Ein feinabgestimmtes Modell hat Ihre Trainingsantworten viele Male gelesen. Wenn Sie ihm eine dieser Fragen erneut stellen, kann es die Antwort fast Wort für Wort reproduzieren. Das wirkt wie Können, ist aber Auswendiglernen: Es sagt Ihnen nichts darüber, wie das Modell mit dem nächsten Kunden umgehen wird, dessen Frage es noch nie gesehen hat.
Das Test-Set ist die Lösung und eine der ältesten Regeln im maschinellen Lernen: Halten Sie einige Beispiele vollständig vom Training fern und bewerten Sie das Modell nur anhand dieser. Große Sprachmodelle machen diese Regel wichtiger, nicht unwichtiger. Studien zu öffentlichen Benchmarks haben wiederholt Modelle identifiziert, die während des Trainings Testelemente gesehen haben und dadurch höhere Punktzahlen erzielten — ein Problem, das als Datenkontamination oder Leakage bekannt ist.
Funktionsweise
dataset has ≥ 10 conversations? no → no test set
yes → test = 10% of conversations (at least 3)
random, but fixed for this prep
each assistant reply in a test conversation → one question
asked with the conversation up to that point
reference answer = the reply itself
reply identical to a training reply → dropped- Zuerst beiseitegelegt. Bevor die Validierung abgespalten oder etwas für das Training geschrieben wird, wählt die Datenaufbereitung 10 % der Konversationen aus, mindestens jedoch 3. Datensätze mit weniger als 10 Konversationen erhalten kein Test-Set.
- Zufällig, aber pro Aufbereitung festgelegt. Die Auswahl erfolgt zufällig, sodass sie nicht auf einfache oder schwierige Konversationen verzerrt ist. Sie bleibt für diese Aufbereitung gleich, sodass bei einer erneuten Evaluierung dieselben Fragen gestellt werden.
- Eine Frage pro Antwort. Jede Antwort des Assistenten in einer Testkonversation wird zu einer Frage, die zusammen mit dem bisherigen Verlauf der Konversation gestellt wird. Die Antwort selbst ist die Referenzantwort.
- Keine versteckten Kopien. Eine Testantwort, die Wort für Wort mit einer Trainingsantwort übereinstimmt — dieselbe Standardantwort in einer anderen Konversation —, wird verworfen, da das Modell sie faktisch bereits gesehen hat.
- Verlässt niemals das System. Testkonversationen befinden sich weder in der Trainings- noch in der Validierungsdatei und werden niemals an den Anbieter gesendet.
- Daraus gelernt
- nein
- An den Anbieter gesendet
- nein
Hat sich das Modell wirklich verbessert?
- Daraus gelernt
- nein
- An den Anbieter gesendet
- ja
Eine zweite Meinung, wenn es kein Test-Set gibt
- Daraus gelernt
- ja
- An den Anbieter gesendet
- ja
Nur eine Plausibilitätsprüfung: Ergebnisse sind optimistisch
Warum die Validierung kein reiner Test ist
Aus Validierungskonversationen wird nicht gelernt, warum also nicht anhand dieser bewerten? Weil der Anbieter die Validierungsdatei erhält und sie während des Trainings verwendet, um den Validierungsverlust zu berechnen und den Durchlauf zu überwachen. Die Daten haben Ihre Hände verlassen, und jede Entscheidung, die durch die Beobachtung dieser Zahlen getroffen wird — welcher Durchlauf beibehalten wird, wie viele Epochen —, stimmt das Ergebnis ein wenig auf genau diese Fragen ab. Die Validierung ist eine gute zweite Meinung; sie ist keine Blindprüfung.
Woher Evaluate seine Fragen bezieht
| Quelle | Während des Trainings gesehen? | Verwenden für |
|---|---|---|
| Zurückgehaltener Test | Nein | Beurteilung, ob sich das Modell wirklich verbessert hat |
| Validierung | Vom Anbieter eingesehen, aber nicht daraus gelernt | Eine zweite Meinung, wenn kein Test-Set vorhanden ist |
| Trainingsstichprobe | Ja, daraus gelernt | Nur eine Plausibilitätsprüfung; die Ergebnisse sind optimistisch |
Evaluate verwendet die erste verfügbare Quelle in dieser Reihenfolge. Ein Ergebnis aus einer Trainingsstichprobe ist eine Obergrenze: Wenn das abgestimmte Modell nicht einmal bei Fragen gewinnt, die es gelernt hat, wird es dies bei neuen Fragen erst recht nicht tun; wenn es gewinnt, wissen Sie immer noch nicht, mit welchem Vorsprung.
- Der Datensatz umfasst 120 Konversationen, daher legt die Datenaufbereitung 10 % beiseite: 12 Konversationen, zufällig ausgewählt und für diese Aufbereitung festgelegt.
- Diese 12 Konversationen enthalten 31 Antworten des Assistenten. Jede davon wird zu einer Frage, die zusammen mit dem bisherigen Verlauf der Konversation gestellt wird, wobei die Antwort als Referenzantwort dient.
- Zwei Antworten stimmen Wort für Wort mit Antworten in den Trainingskonversationen überein — eine Standardantwort zum Zurücksetzen eines Passworts. Sie werden verworfen: Es bleiben 29 Testfragen.
- Die restlichen 108 Konversationen gehen in den üblichen Validierungs-Split und das Training über. Keine der beiden Dateien enthält eine Testkonversation, und der Anbieter erhält diese niemals.
- Nach dem Training stellt Evaluate die 29 Testfragen. Zum Vergleich: Ein Datensatz mit 25 Konversationen würde 3 beiseitelegen (das Minimum), und einer mit 9 hätte kein Test-Set, sodass Evaluate auf Validierungsfragen zurückgreifen würde.
Optimale Nutzung
- Geben Sie ihm Raum. Ein Testdatensatz von 29 Fragen ist nützlich, aber klein: Bei dieser Größe ist eine Erfolgsquote von 60 % immer noch mit keinerlei Verbesserung vereinbar. Mehr Konversationen im Datensatz bedeuten mehr Testfragen und ein fundierteres Urteil.
- Halten Sie Testkonversationen aus späterem Training heraus. Wenn Sie diese in einen anderen Datensatz kopieren und damit trainieren, hat das nächste Modell sie bereits gesehen und seine Evaluierung fällt schmeichelhaft aus.
- Vergleichen Sie Gleiches mit Gleichem. Eine neue Aufbereitung zieht ihren eigenen Testdatensatz heran. Wenn Sie Modelle vergleichen, verwenden Sie die Testfragen einer einzigen Aufbereitung für alle.
- Nehmen Sie Warnungen ernst. Eine Evaluierung anhand einer Trainingsstichprobe ist aus gutem Grund als solche gekennzeichnet: Betrachten Sie sie als Plausibilitätsprüfung, nicht als Endergebnis.
Fragenquellen
Fragen aus der Datenaufbereitung von Konversationen, die zurückbehalten wurden. Nie für das Training verwendet, nie für die Validierung genutzt, nie an den Anbieter gesendet: der saubere Test und der Standard.
Fragen aus der Validierungsaufteilung. Nicht daraus gelernt, aber vom Anbieter während der Trainingsüberwachung gesehen. Wird verwendet, wenn die Aufbereitung keinen Testdatensatz enthält.
Eine Stichprobe von Fragen, mit denen das Modell trainiert wurde. Der letzte Ausweg, versehen mit einer Warnung: Die Ergebnisse sind optimistisch und zeigen nur, dass nichts schwerwiegend fehlerhaft ist.
Häufige Fehler
- Die Evaluierung anhand von Trainingsfragen und die Interpretation des Ergebnisses als reale Leistung.
- Die Behandlung von Validierungsergebnissen als ebenso rein wie die Ergebnisse zurückgehaltener Tests.
- Das Kopieren von Testkonversationen in einen späteren Trainingsdatensatz, sodass das nächste Modell diese bereits gesehen hat.
- Eine Handvoll Testfragen als endgültiges Urteil zu bezeichnen: Bei kleinen Test-Sets ist eine große Differenz erforderlich, um aussagekräftig zu sein.
- Der Vergleich von Modellen, die jeweils mit dem Test-Set einer anderen Aufbereitung evaluiert wurden.
Quellen und weiterführende Literatur
Externe Quellen werden in einem neuen Tab geöffnet.
- 01Training, validation, and test data setsWikipedia · en.wikipedia.orgDie dreifache Aufteilung und warum der Testdatensatz erst am Ende verwendet wird.
- 02Leakage (machine learning)Wikipedia · en.wikipedia.orgWie Informationen aus den Testdaten in das Training einfließen und die Bewertungen künstlich in die Höhe treiben.
- 03NLP Evaluation in trouble: On the Need to Measure LLM Data Contamination for each BenchmarkSainz et al., 2023 · arXiv · arxiv.orgWarum Kontamination die Evaluierungsergebnisse unzuverlässig macht und warum sie überprüft werden muss.
- 04Time Travel in LLMs: Tracing Data Contamination in Large Language ModelsGolchin & Surdeanu, 2023 · arXiv · arxiv.orgErkennen, wann ein Modell Testbeispiele auswendig gelernt hat, indem man es auffordert, diese zu vervollständigen.