Ressourcen/Modelltraining/Datensätze

Konzept

Was ein Datensatz ist

Eine benannte, eingefrorene Sammlung von Trainingsbeispielen — aus Chats kopiert, von einem Modell geschrieben oder importiert — plus jegliche Dokumente, aus denen gelernt werden soll: warum es sich um eine Momentaufnahme und nicht um einen Link handelt, und was das für Korrekturen, Importe und Reproduzierbarkeit bedeutet.

Kapitel 44 Min. Lesezeit3 Quellen

Was es ist

Ein Datensatz ist eine benannte Sammlung von Trainingsbeispielen. In Scalata sind die meisten Beispiele Chats: die Unterhaltung sowie die Auswahl, welche Antworten des Assistenten als Zielantworten dienen. Ein Datensatz kann auch Dokumente enthalten, um daraus Fakten zu lernen. Alles Nachgelagerte bezieht sich darauf: Sie bereiten einen Datensatz auf, trainieren mit den aufbereiteten Dateien und evaluieren das daraus entstandene Modell.

Snapshot, kein Link

Wenn ein Chat zu einem Datensatz hinzugefügt wird, werden seine Nachrichten hineinkopiert. Von da an sind der Datensatz und der Chat unabhängig voneinander: Das Fortsetzen, Bearbeiten oder Löschen des Chats ändert nichts am Datensatz.

Einen Chat hinzufügen
Chat in Sitzungen→Nachrichten kopiert→Datensatz-BeispielAb jetzt eingefroren
Später im Chat
Chat fortgesetzt, bearbeitet oder gelöscht✕Datensatz unverändert
Eine Antwort im Datensatz korrigieren
Ursprüngliche AntwortBeibehalten+Korrigierte AntwortWas trainiert wird→Ein vorgefertigtes Präferenzpaar
Ein Datensatz kopiert Nachrichten hinein. Was danach mit dem ursprünglichen Chat passiert, erreicht ihn nicht, während eine Korrektur innerhalb des Datensatzes das Original daneben beibehält.

Dies ist beabsichtigt. Ein Trainingsdurchlauf kann Stunden dauern, eine Evaluierung wird Tage später gelesen, und ein Modell kann monatelang im Einsatz bleiben. Wenn sich der Datensatz im Hintergrund ändern könnte, ließe sich nicht mehr sagen, womit ein Modell trainiert wurde; zwei Durchläufe mit „demselben“ Datensatz hätten möglicherweise unterschiedliche Daten gesehen; und das Löschen eines Chats könnte stillschweigend Beispiele entfernen, auf die Sie sich verlassen haben.

Korrekturen innerhalb des Datensatzes

Sie können eine Antwort innerhalb eines Datensatzes korrigieren. Der korrigierte Text ist das, was trainiert wird, und das Original bleibt daneben erhalten. Beides zu behalten, ist nicht nur für die Dokumentation nützlich: Das Original und die Korrektur bilden ein fertiges Präferenzpaar, bei dem die Korrektur bevorzugt wird. Eine Korrektur ist eines der stärksten Signale, die Sie einem Modell geben können, da hierbei eine Person genau angibt, was falsch war.

Eine Korrektur, zwei Verwendungszwecke
  1. Ursprüngliche Antwort: „Gehen Sie zu den Einstellungen.“
  2. Ihre Korrektur: „Öffnen Sie Einstellungen → Benachrichtigungen und deaktivieren Sie ‚Wöchentliche Zusammenfassung‘.“
  3. Supervised Fine-Tuning lernt die Korrektur.
  4. Preference Tuning kann das Paar nutzen: Korrektur bevorzugt, Original nicht.

Importierte Unterhaltungen

Aus anderen Chat-Apps exportierte Unterhaltungen können ebenfalls importiert werden. Ein erneuter Import desselben Exports fügt nichts doppelt hinzu. Duplikate sind wichtiger, als es scheint: Eine Unterhaltung, die zweimal vorkommt, zählt im Training doppelt, und ihre Kopien könnten auf beiden Seiten des Validierungs-Splits landen, was die Evaluierung beschönigen würde.

Weitere Quellen für Beispiele

  • Synthetische Chats. Der Dataset Builder lässt ein leistungsstarkes Modell verschiedene Szenarien anhand eines Briefings planen und Beispielunterhaltungen schreiben. Sie überprüfen diese, bevor Sie sie hinzufügen, und sie werden als Synthetisch markiert, damit sie von echten Chats unterschieden werden können.
  • Öffentliche Datensätze. Zeilen aus einem Hugging Face-Datensatz können als Chats importiert werden, sobald Scalata ermittelt hat, welche Spalten die Frage und die Antwort enthalten. Große Importe laufen im Hintergrund.
  • Chat-Feedback. Im Chat vergebene Daumen nach oben und unten werden zu Beispielen: Eine positiv bewertete Antwort wird zu einer Antwort, aus der gelernt werden kann, und eine positiv sowie eine negativ bewertete Antwort auf dieselbe Frage werden zu einem Präferenzpaar.
  • Dokumente. Hochgeladene Dateien, bereits in Scalata vorhandene Dateien, öffentliche Webseiten, die Klartextzeilen eines Hugging Face-Datensatzes oder Dateien aus einer angebundenen Datenquelle. Deren Text wird einmalig gelesen; ein Modell kann daraus dann Frage-und-Antwort-Beispiele schreiben, oder offene Modelle können direkt mit dem Text trainiert werden (fortgesetztes Pre-Training).

Jede Quelle hat ihre eigenen Tücken. Synthetische Chats sind sauberer als echte, mischen Sie diese also nach Möglichkeit mit echten Daten und behalten Sie echte Chats für Tests zurück. Importierte Zeilen sind nur so gut wie ihre Quelle. Dokumente vermitteln, was wahr ist, nicht wie man antwortet; daher kommen sie in der Regel vor oder parallel zum Chat-Training zum Einsatz.

Neue Versionen statt endloser Änderungen

Bei einer wesentlichen Änderung — einem neuen Produktbereich, einem neuen Schwung an Chats, einem anderen Stil — ist es meist übersichtlicher, einen neuen Datensatz zu erstellen, als einen alten immer wieder umzugestalten. Benennen Sie Versionen so, dass der Unterschied offensichtlich ist („Support v2 — Abrechnung hinzugefügt“), und archivieren Sie den alten Datensatz, anstatt ihn zu löschen, damit frühere Modelle weiterhin auf das verweisen, womit sie trainiert wurden.

Häufige Fehler

  • Die Erwartung, dass eine im ursprünglichen Chat vorgenommene Korrektur in einen zuvor erstellten Datensatz übernommen wird.
  • Das Löschen eines alten Datensatzes, mit dem ein noch genutztes Modell trainiert wurde, wodurch die Aufzeichnung dessen, was es gelernt hat, verloren geht.
  • Das Mischen unzusammenhängender Aufgaben in einem Datensatz ohne ausreichend Beispiele für jede einzelne.
  • Eine falsche Antwort als Zielantwort zu belassen, anstatt sie im Datensatz zu korrigieren.

Quellen und weiterführende Literatur

Externe Quellen werden in einem neuen Tab geöffnet.

  1. 01Datasheets for DatasetsGebru et al., 2018 · arXiv · arxiv.orgGründe für die Dokumentation, wie jeder Datensatz erfasst wurde und was er enthält.
  2. 02DatasetsHugging Face docs · huggingface.coWie das Open-Source-Ökosystem Trainingsdaten speichert, versioniert und teilt.
  3. 03Deduplicating Training Data Makes Language Models BetterLee et al., 2021 · arXiv · arxiv.orgWarum es sich lohnt, doppelte Beispiele zu entfernen.

Verwandeln Sie wochenlange Expertenarbeit in Minuten

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

Vertrieb kontaktieren