Das Problem
Echte Konversationen bestehen selten aus einer Frage und einer Antwort. Ein Support-Chat kann zehn Nachrichtenwechsel umfassen: eine Begrüßung, eine klärende Frage, zwei Teilantworten und eine endgültige Lösung. Einige dieser Assistentenantworten sind es wert, gelernt zu werden, andere nicht. Ein Trainingsformat muss sowohl den vollständigen Kontext als auch die Auswahl der relevanten Antworten ausdrücken.
Ansatz 1: Gewichtungen pro Nachricht
Einige Formate ermöglichen es, dass jede Assistentennachricht eine Gewichtung erhält. Die gesamte Konversation ist ein Datensatz; Antworten, die mit weight: 1 markiert sind, werden gelernt, und Antworten mit weight: 0 dienen nur als Kontext — sie werden gelesen, aber nicht bewertet.
{"messages": [
{"role": "user", "content": "Hi"},
{"role": "assistant", "content": "Hello! How can I help?", "weight": 0},
{"role": "user", "content": "Export my report as PDF"},
{"role": "assistant", "content": "Open the report, click Export → PDF…", "weight": 1}
]}Dies ist die effiziente Option. Jeder Datensatz wird einmal verarbeitet, alle Ziele in einer Konversation teilen sich deren Kontext, und die Auswahl dessen, was gelernt werden soll, ist exakt.
Ansatz 2: Ein Datensatz pro Ziel
Formate ohne Gewichtungen können nur aussagen: „Hier ist eine Konversation; lerne ihre Assistentenantworten“. Um eine bestimmte Antwort zu lernen, wird die Konversation direkt danach abgeschnitten und als eigener Datensatz geschrieben. Eine Konversation mit drei Zielen wird zu drei Datensätzen, von denen jeder länger ist als der vorherige.
{"messages": [
{"role": "user", "content": "Hi"},
{"role": "assistant", "content": "Hello! How can I help?"},
{"role": "user", "content": "Export my report as PDF"},
{"role": "assistant", "content": "Open the report, click Export → PDF…"}
]}Es gibt zwei Nebeneffekte. Jede frühere Antwort des Assistenten innerhalb eines Datensatzes wird ebenfalls gelernt, da das Format sie nicht nur als Kontext markieren kann — einschließlich der Antworten, die Sie nicht ausgewählt haben. Zudem taucht der frühe Teil der Unterhaltung in mehreren Datensätzen auf, sodass er mehrfach verarbeitet und bezahlt wird.
- Eine Konversation besteht aus vier Nachrichtenwechseln von jeweils etwa 250 Token. Die Antworten 2 und 4 sind Ziele; die Antworten 1 und 3 nicht.
- Mit Gewichtungen: ein Datensatz von etwa 1.000 Token. Die Antworten 2 und 4 werden jeweils einmal gelernt; 1 und 3 dienen als Kontext.
- Ohne Gewichtungen: ein Datensatz, der nach Antwort 2 abgeschnitten wird (etwa 500 Token), und einer nach Antwort 4 (etwa 1.000 Token) — insgesamt 1.500 Token, 50 % mehr.
- Jede Assistentenantwort in einem Datensatz wird gelernt: die Antworten 1 und 2 zweimal, die Antworten 3 und 4 einmal. Die Antworten 1 und 3, die Sie nicht ausgewählt haben, werden trotzdem gelernt.
Wann es darauf ankommt
Der Unterschied ist gering, wenn Unterhaltungen kurz sind oder jede Antwort des Assistenten gut ist. Er fällt jedoch ins Gewicht, wenn Unterhaltungen lang sind, wenn frühe Antworten mangelhaft sind (ein falscher erster Versuch, der später korrigiert wurde) oder wenn Sie Antworten absichtlich weggelassen haben. Bei einem Anbieter, der Gewichtungen unterstützt, erhalten Sie genau das, was Sie ausgewählt haben; bei einem Anbieter ohne diese Funktion lohnt es sich, die schwachen Antworten vor dem Training zu korrigieren.
Häufige Fehler
- Anzunehmen, dass eine nicht markierte Antwort niemals gelernt wird, unabhängig vom Format des Anbieters.
- Eine falsche frühe Antwort in einer langen Konversation zu belassen, wenn der Anbieter sie nicht ausschließen kann.
- Token-Anzahlen zwischen Anbietern zu vergleichen, ohne wiederholten Kontext zu berücksichtigen.
- Die Datensätze einer Konversation zwischen Training und Validierung aufzuteilen; aus diesem Grund erfolgt die Aufteilung nach Konversation.
Quellen und weiterführende Literatur
Externe Quellen werden in einem neuen Tab geöffnet.
- 01SFT TrainerHugging Face TRL docs · huggingface.coTraining ausschließlich anhand der Antworten des Assistenten innerhalb einer gesamten Unterhaltung.
- 02Chat templatesHugging Face Transformers docs · huggingface.coWie Multi-Turn-Chats für ein Modell aufbereitet werden und wie die Antworten des Assistenten lokalisiert werden.
- 03Supervised fine-tuningOpenAI API docs · developers.openai.comDie Trainingsdaten eines Anbieters im Chat-Format, einschließlich Multi-Turn-Beispielen.
- 04Prepare supervised fine-tuning data for Gemini modelsGoogle Cloud documentation · docs.cloud.google.comDas Inhaltsformat mit Benutzer- und Modellrollen.