Was es ist
Ein Trainingsdatensatz enthält weit mehr als nur die zu lernende Antwort: einen System-Prompt, vielleicht mehrere vorherige Interaktionen und die Frage des Benutzers. Loss Masking bedeutet, dass der Trainingsfehler — der Loss — nur für die Token der Zielantwort berechnet wird. Das Modell liest jedes Token, und der Kontext prägt jede seiner Vorhersagen, aber es wird niemals für die Vorhersage des Kontexts selbst bewertet.
Howmaskiert␣domaskiert␣Imaskiert␣resetmaskiert␣mymaskiert␣passwordmaskiert?maskiertOpenp 0.62Loss 0.48␣Settingsp 0.81Loss 0.21␣→p 0.35Loss 1.05␣Securityp 0.90Loss 0.11Funktionsweise
Ein Sprachmodell wird trainiert, indem es jeweils das nächste Token vorhersagt. An jeder Position gibt es eine Wahrscheinlichkeit für jedes Token in seinem Vokabular aus. Der Loss an dieser Position ist der negative Logarithmus der Wahrscheinlichkeit, die es dem richtigen Token zugewiesen hat: nahe 0, wenn es sich sicher war und richtig lag, hoch, wenn es sich sicher war und falsch lag. Der Loss des Datensatzes ist der Durchschnitt über die relevanten Positionen.
loss for one record = average over target tokens of −ln p(correct token | everything before it)
context tokens: read, label = -100 → ignored by the loss
target tokens: read and scored → averaged into the lossOhne Maskierung würde der Durchschnitt über jedes Token im Datensatz berechnet. Mit Maskierung werden die Kontextpositionen ausgelassen. Beim Training wird dies erreicht, indem jedem Kontext-Token ein spezielles Label zugewiesen wird — -100 in PyTorch-basierten Bibliotheken wie Hugging Face Transformers —, das die Loss-Funktion anweisungsgemäß ignoriert.
- Ein Datensatz hat 40 Kontext-Token (System-Prompt und Frage) und 4 Ziel-Token: „Open“, „ Settings“, „ →“, „ Security“.
- Das Modell weist den korrekten Ziel-Token Wahrscheinlichkeiten von 0,62, 0,81, 0,35 und 0,90 zu. Ihre Verluste, −ln p, betragen 0,48, 0,21, 1,05 und 0,11.
- Der Verlust des Datensatzes ist ihr Durchschnitt: (0,48 + 0,21 + 1,05 + 0,11) ÷ 4 ≈ 0,46.
- Die 40 Kontext-Token tragen nichts bei. Die Aktualisierung wird hauptsächlich die Wahrscheinlichkeit von „ →“ erhöhen, dem Token, bei dem sich das Modell am unsichersten war.
Warum überhaupt maskieren?
- Das Signal wirkt dort, wo Sie es möchten. Ihre Zielwerte spiegeln das von Ihnen gewählte Verhalten wider. Ohne Maskierung würde ein Großteil des Trainingsaufwands in die Vorhersage von Benutzerfragen und die Wiederholung des System-Prompts fließen.
- Das Modell lernt nicht, Benutzer zu imitieren. Das Training mit Benutzerinteraktionen bringt dem Modell bei, so zu schreiben wie die Fragesteller — inklusive Tippfehlern —, was sich auf seine Antworten übertragen kann.
- Langer Kontext überdeckt keine kurzen Antworten. Bei einem Datensatz mit 2.000 Token Historie und einer Antwort von 60 Token würde sich ein unmaskierter Loss zu etwa 97 % auf die Historie beziehen.
Ist Maskierung immer besser?
Maskierung ist die Standardwahl und die Voreinstellung in den meisten Trainingsdiensten und -bibliotheken. Es gibt Ausnahmen: Eine Studie von Shi und Kollegen aus dem Jahr 2024 ergab, dass das Training auch auf den Anweisungen hilfreich sein kann, wenn die Anweisungen lang und die Ausgaben kurz sind oder wenn es nur sehr wenige Beispiele gibt. Für das Fine-Tuning mit echten Konversationen, bei denen Benutzerinteraktionen nicht das Verhalten sind, das Sie reproduzieren möchten, bleibt die Maskierung des Kontexts die sinnvolle Standardeinstellung.
Maskiert bedeutet nicht irrelevant
Ein maskiertes Token wird nicht bewertet, aber es wird dennoch gelesen, und das Modell lernt, den Zielwert unter Berücksichtigung dieses Kontexts zu erzeugen. Wenn der Kontext eine falsche Aussage enthält, der das Ziel zustimmt, lernt das Modell, dieser zuzustimmen. Wenn sich der System-Prompt im Training von dem später verwendeten unterscheidet, wird das erlernte Verhalten möglicherweise nicht übernommen. Maskierung schränkt ein, was bewertet wird; sie macht den Rest des Datensatzes jedoch nicht unwichtig.
Häufige Fehler
- Die Annahme, dass die Qualität des Kontexts keine Rolle spielt, nur weil er nicht bewertet wird.
- Einen niedrigen Trainings-Loss als Qualitätsbeweis zu werten, wenn die Zielwerte kurz und einfach sind.
- Der Vergleich von Loss-Werten zwischen Datensätzen mit sehr unterschiedlichen Ziellängen.
- Die Erwartung, dass das Modell etwas lernt, das ausschließlich in Benutzernachrichten vorkommt.
Quellen und weiterführende Literatur
Externe Quellen werden in einem neuen Tab geöffnet.
- 01Instruction Tuning With Loss Over InstructionsShi et al., 2024 · arXiv · arxiv.orgWann das Training sowohl auf dem Prompt als auch auf der Antwort hilft.
- 02SFT TrainerHugging Face TRL docs · huggingface.coDie Loss-Optionen „completion-only“ und „assistant-only“ in der Praxis.
- 03Causal language modelingHugging Face Transformers docs · huggingface.coDie Vorhersage des nächsten Tokens und wie Labels dafür aufbereitet werden.
- 04Supervised Fine-TuningHugging Face LLM Course · huggingface.coFine-Tuning mit Chat-Daten, Schritt für Schritt.