Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR
EKA SUNUCU · AI MODEL EĞİTİM HATA MERKEZİ

Fine-Tune Edilen Model Neden Durmuyor? EOS, PAD Token ve Chat Template Hataları

Fine-tune sonrası durmayan, role token basan veya boş cevap üreten modeli EOS/PAD, chat template, generation prompt, masking ve tokenizer ile düzeltin.

PyTorchTransformersPEFT / TRLSon teknik kontrol: 14 Ağustos 2026
01

Resmî dokümantasyonla doğrulanan temel noktalar

01

Chat modelinin beklediği control token'lar yanlışsa aynı mesaj yapısı farklı modele tamamen farklı token sequence üretebilir; format training ve inference'ta aynı olmalıdır.

02

`add_generation_prompt=True` yeni assistant cevabının başlangıç control token'larını eklemek içindir; prefill senaryosunda `continue_final_message` farklı davranır ve ikisi aynı anda kullanılmaz.

03

PAD ve EOS aynı ID yapılabilir ama loss masking ve generation config doğru kurulmazsa EOS token'ları yanlışlıkla ignore edilebilir.

02

Belirtiler: sonsuz konuşma, role token, boş cevap

Model `max_new_tokens` dolana kadar hiç EOS üretmiyorsa EOS supervision veya generation config'i inceleyin. `<|assistant|>`, `<|user|>` gibi marker'ları metin olarak kusuyorsa template/tokenizer eşleşmesi şüphelidir. Hemen EOS üreterek boş cevap veriyorsa training data'da assistant content masklenmiş olabilir.

03

Training ve inference template'i birebir karşılaştırın

Training sırasında `apply_chat_template(..., add_generation_prompt=False)` ile oluşturulan sequence ile inference sırasında `add_generation_prompt=True` sequence'ini decode edip yan yana koyun. BOS/EOS, role header ve turn terminator token'ları beklenen yerde mi kontrol edin.

Teşhis / doğrulama komutları
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
04

EOS supervision gerçekten label içinde mi?

Assistant cevabının sonundaki EOS/turn-end token'ı label olarak tutulmuyorsa model durmayı öğrenmez. Completion-only/assistant-only masking uygularken terminator token'ın -100'e çevrilmediğini örnek batch üzerinde kontrol edin.

05

PAD=EOS kullanımındaki kritik ayrım

Causal LM'lerde ayrı pad token olmayan tokenizer için `pad_token=eos_token` sık kullanılır. Fakat collator tüm EOS ID'lerini padding sanıp labels'ı -100 yaparsa gerçek sequence-end EOS supervision da kaybolabilir. Masking'i token ID'ye kör uygulamak yerine attention mask/padding position üzerinden doğrulayın.

06

Chat template model ailesine özgüdür

Llama, Qwen, Gemma, Mistral ve diğer instruct modelleri aynı `messages` yapısını farklı control token dizilerine dönüştürür. Bir modelin ChatML template'ini başka modele kopyalamak, tokenizer special token'ları eksikse training sinyalini bozabilir.

07

Yeni special token eklediyseniz embedding'i büyütün

Tokenizer'a yeni role/EOS token ekleyip model input embedding boyutunu büyütmezseniz index hatası veya öğrenilmeyen token davranışı oluşabilir. `resize_token_embeddings(len(tokenizer))` sonrası yeni embedding/lm_head parametrelerinin adapter checkpoint'te nasıl saklandığını PEFT troubleshooting rehberine göre kontrol edin.

08

Generation config training hatasını gizleyebilir

`eos_token_id`, list halinde multiple EOS, `pad_token_id`, `min_new_tokens`, `max_new_tokens` ve stopping criteria generation davranışını değiştirir. Model yalnız hard limit ile duruyorsa training template'i ve EOS label'ı düzeltilmeden sadece stopping criteria eklemek semptomu gizler.

09

Base model ile aynı promptu karşılaştırın

Aynı chat template, aynı prompt ve deterministic decoding ile base model düzgün duruyor, adapter model durmuyorsa problem adapter training/masking tarafındadır. Base model de bozuksa tokenizer/template/generation pipeline önce düzeltilmelidir.

10

Doğrulama checklist'i

Tokenizer special token map'i kaydedin; 5 training example'ını token ID ve decoded biçimde inceleyin; assistant başlangıç ve bitiş token'larını label içinde doğrulayın; base/adapter inference'ı aynı config ile karşılaştırın; checkpoint tokenizer dosyalarının modelle birlikte dağıtıldığını kontrol edin.

DIAGNOSTIC MATRIX

Belirtiye göre kontrol

BelirtiMuhtemel nedenKontrol
Hiç durmuyorEOS label yokAssistant son token labels
Role token basıyorYanlış templateDecoded training sequence
Boş cevapAssistant mask/truncationSupervised token count
Base düzgün adapter bozukFine-tune formatıBase vs adapter A/B
Üretim ortamı notu

Çalışan eğitim ortamında paketleri rastgele güncellemeyin. GPU modeli, driver, CUDA/PyTorch runtime, transformers, accelerate, peft, trl, bitsandbytes/diffusers sürümleri ile model revision ve dataset fingerprint bilgisini her run için kaydedin. Önce minimal reproducible test oluşturun, sonra production eğitime müdahale edin.

FAQ

Sık sorulan sorular

`pad_token=eos_token` yanlış mı?

Her zaman değil. Kritik nokta gerçek EOS token'larının padding sanılıp loss'tan maskelenmemesidir.

Model neden `max_new_tokens` dolana kadar konuşuyor?

EOS üretmeyi öğrenmemiş, yanlış EOS ID kullanıyor veya generation pipeline doğru EOS'u tanımıyor olabilir.

OFFICIAL SOURCES

Resmî teknik kaynaklar ve proje issue'ları

CLUSTER

İlgili AI eğitim rehberleri

EKA SUNUCU · GPU ALTYAPISI

Eğitim konfigürasyonunuza göre GPU seçin.

Model boyutu, precision, context, batch, LoRA/QLoRA veya full fine-tuning yöntemi ve multi-GPU ihtiyacınızı birlikte değerlendirin; yalnız GPU model adına bakarak kapasite seçmeyin.

GPU Sunucu VPS Destek
Top