Falsche Chat-Control-Tokens erzeugen andere Token-Sequenzen; Training und Inference müssen dasselbe Format nutzen.
Nicht stoppende, leere oder Role-Token ausgebende Fine-Tunes mit EOS/PAD, Chat Template, Generation Prompt, Masking und Tokenizer Resize beheben.
Falsche Chat-Control-Tokens erzeugen andere Token-Sequenzen; Training und Inference müssen dasselbe Format nutzen.
`add_generation_prompt=True` startet eine neue Assistant-Antwort; `continue_final_message` ist für Prefill und beide werden nicht zusammen verwendet.
PAD und EOS können dieselbe ID teilen, aber falsches Masking/Generation-Config kann EOS-Supervision versehentlich entfernen.
Wenn nur `max_new_tokens` stoppt, EOS-Supervision/Generation prüfen. Ausgegebene Role-Marker deuten auf Template-Mismatch; sofortiges EOS kann maskierte Assistant-Inhalte bedeuten.
Training- und Inference-Sequenz decodieren und BOS/EOS, Role-Header und Turn-Terminator vergleichen.
python - <<'PY'
# print(tokenizer.special_tokens_map)
# print(tokenizer.eos_token, tokenizer.eos_token_id)
# print(tokenizer.pad_token, tokenizer.pad_token_id)
# print(tokenizer.chat_template)
PY
Wenn EOS/Turn-End am Ende der Assistant-Antwort nicht supervised wird, lernt das Modell eventuell nicht zu stoppen. Prüfen, dass der Terminator nicht durch Masking zu -100 wird.
PAD=EOS ist üblich. Maskiert der Collator aber jede EOS-ID als Padding, verschwindet echte EOS-Supervision. Padding-Positionen statt nur Token-ID prüfen.
Llama, Qwen, Gemma, Mistral usw. nutzen unterschiedliche Control-Token-Sequenzen. Ein fremdes ChatML-Template kann Training verfälschen.
Nach neuen Role/EOS-Tokens müssen Model-Embeddings angepasst werden. Danach prüfen, wie Embedding/lm_head im PEFT-Checkpoint gespeichert werden.
Generation-Parameter verändern Stop-Verhalten. Stoppt das Modell nur durch Hard Limit, versteckt zusätzliche Stopping Criteria den Trainingsfehler statt ihn zu lösen.
Stoppt das Basismodell mit demselben Template korrekt, aber Adapter nicht, liegt der Fehler wahrscheinlich im Adapter-Training/Masking. Versagt auch das Basismodell, zuerst Template/Tokenizer/Generation korrigieren.
Special-Token-Map speichern, fünf Trainingsbeispiele als IDs/Decode prüfen, Assistant-Start/Ende in Labels verifizieren, Base/Adapter identisch testen und Tokenizer-Dateien mit dem Checkpoint ausliefern.
| Symptom | Wahrscheinliche Ursache | Prüfung |
|---|---|---|
| Stoppt nie | Keine EOS-Supervision | Assistant-Endlabels |
| Gibt Role-Tokens aus | Falsches Template | Trainingssequenz decodieren |
| Leere Antwort | Masking/Truncation | Supervision-Tokens zählen |
| Base gut, Adapter schlecht | Fine-Tune-Format | Base/Adapter A/B |
In einer funktionierenden Trainingsumgebung Pakete nicht blind aktualisieren. GPU, Treiber, CUDA/PyTorch-Runtime, Transformers, Accelerate, PEFT, TRL, bitsandbytes/Diffusers, Modellrevision und Dataset-Fingerprint pro Run protokollieren.
Nicht immer. Wichtig ist, echte EOS-Tokens nicht fälschlich als Padding zu maskieren.
EOS wurde eventuell nicht gelernt, falsche EOS-ID verwendet oder Pipeline erkennt den Terminator nicht.
Modellgröße, Precision, Context, Batch, LoRA/QLoRA oder Full Fine-Tuning und Multi-GPU gemeinsam bewerten.