TRL documentation

Chat Şablonları

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.17.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Chat Şablonları

Bir söyleşim şablonu, mesajları modelin eğitiminde kullanılan dize biçimine dönüştüren bir Jinja2 parçasıdır. Örneğin:

>>> from transformers import AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-0.5B-Instruct")
>>> tokenizer.chat_template
"{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}"
>>> tokenizer.apply_chat_template([{"role": "user", "content": "Hi!"}], tokenize=False)
'<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n<|im_start|>user\nHi!<|im_end|>\n'

Çoğu durumda sohbet şablonlarıyla (chat template) uğraşmanıza gerek yoktur: modeller, şablonlarını tokenizer ile birlikte sunar ve TRL bunu sizin için uygular. Tüm süreç şeffaftır. Ancak bazı TRL tarifleri, çoğu hazır şablonda bulunmayan özelliklere dayanır:

  • assistant_only_loss=True ile SFT, kayıp maskesinin yalnızca asistan jetonlarını hedefleyebilmesi için asistan çıktısının etrafında {% generation %} / {% endgeneration %} işaretçileri gerektirir.
  • Araç çağrılarıyla GRPO için şablonun önek koruyucu olması gerekir: bir araç mesajı eklenmesi, önceki mesajların nasıl işlendiğini değiştirmemelidir.

TRL, yaygın aileler (Qwen, Llama, DeepSeek-V3, GPT-OSS, …) için yamalı şablonları trl/chat_templates/ altında sunar ve desteklenen modeller için bunları otomatik olarak devreye alır. Diğer herhangi bir model için şablonunu kendiniz yamalamanız gerekir. Bu sayfanın geri kalanı, paketlenen içerikleri listeler.

Desteklenen model aileleri

TRL, başlatma sırasında desteklenen modelleri tanıyabilmek ve gerektiğinde bir eğitim şablonu kullanabilmek için orijinal şablonların referans kopyalarını saklar. Tanınan aileler şunlardır: Cohere, Cohere2, DeepSeek-V3 (DeepSeek-R1, DeepSeek-R1-0528 ve DeepSeek-V3-0324 dahil), DeepSeek-R1-Distill, DiffusionGemma, Gemma, Gemma3, Gemma4 (Gemma-4-12B, Gemma-4-26B-A4B ve Gemma-4-31B dahil), GLM-4-MoE (4.5, 4.6, 4.7), GLM-5, GLM-5.1, GLM-5.2, GLM-5.3, GLM-5.3-Flash, GPT-OSS, Idefics3, LFM2, LFM2.5 (LFM2.5-1.2B-Instruct, LFM2.5-2.6B ve LFM2.5-24B-A2B dahil), LFM2.5-VL (LFM2.5-VL-450M dahil), Llama 3 / 3.1 / 3.2, Llava-Next, Mistral Large 4, Mistral Medium 3.5, Muse Glimmer, Nemotron 3 (Nano, Super, Ultra), Nemotron 3.5 Lightning, Phi-3, Phi-3.5, Qwen2-VL, Qwen2.5 (temel denetim noktaları dahil), Qwen2.5-VL, Qwen3 (Instruct-2507 ve Thinking-2507 varyantları dahil), Qwen3-Coder (Qwen3-Coder-Next dahil), Qwen3-VL, Qwen3.5, Qwen3.6, Qwen3.8, SmolVLM (SmolVLM2 dahil).

Eğitim şablonları

Eğitime özgü sorunları düzelten yamalı şablonlar. Araçlar etkinleştirildiğinde (GRPO) veya assistant_only_loss=True olduğunda (SFT) init sırasında değiştirilir.

cohere_training.jinja

Yamalı Cohere şablonu. cohere.jinja ile fark:

return_assistant_tokens_mask=True parametresinin SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalayın.

cohere2_training.jinja

Yamalı Cohere2 şablonu. cohere2.jinja ile fark:

Sonundaki <|END_OF_TURN_TOKEN|> etiketini, rol yönlendirme {% endif %} bloğunun sonundan alıp her bir rol dalına taşıyın ve asistan dalını (<|START_RESPONSE|>...<|END_RESPONSE|><|END_OF_TURN_TOKEN|>) {% generation %} / {% endgeneration %} ile sarın; böylece return_assistant_tokens_mask=True parametresi, SFT için yalnızca asistan kaybı hesaplanırken doğru maskeleri üretir.

deepseek_r1_distill_training.jinja

Yamalı DeepSeek-R1-Distill şablonu. deepseek_r1_distill.jinja ile fark:

  • Asistan içeriğindeki '</think>' bölünmesini kaldırır. Orijinal sürüm, </think> dahil olmak üzere her şeyi atar; bu da eğitim hedefinden akıl yürütme kısmını sessizce silerdi.
  • SFT yalnızca asistan kaybı için asistan mesajı çıktısını {% generation %} / {% endgeneration %} işaretçileriyle sarar. Asistan turunu açan <|Assistant|> ve <|tool▁outputs▁end|> işaretçileri, istem zaten bunlarla bittiği için işaretçilerin dışında kalır.

deepseekv3_training.jinja

Yamalı DeepSeek-V3 şablonu. deepseekv3.jinja ile fark:

  • | tojson, tool['function']['arguments'] üzerinde kullanılır, böylece arguments bir dict olarak geçirilebilir (transformers docs'a göre belgelenen biçim). Orijinal şablon, ham string birleştirme kullanır ve bu da dict girdilerinde çökme yapar.
  • Asistan içeriğindeki '</think>' bölünmesini kaldırır, böylece akıl yürütme bloğu her zaman görüntülenir. Orijinal sürüm, </think> dahil olmak üzere her şeyi atar; bu da akıl yürütme içeriğini eğitim hedefinden sessizce silerdi.
  • SFT yalnızca asistan kaybı için asistan mesajı çıktısını {% generation %} / {% endgeneration %} işaretçileriyle sarar. Asistan turunu açan <|Assistant|> ve <|tool▁outputs▁end|> işaretçileri, istem zaten bunlarla bittiği için işaretçilerin dışında kalır.

deepseekv3_v2_training.jinja

Yamalı DeepSeek-R1-0528 şablonu. deepseekv3_v2.jinja ile fark:

  • | tojson, tool['function']['arguments'] üzerinde kullanılır; böylece arguments, deepseekv3_training.jinja'de olduğu gibi bir dict olarak geçirilebilir.
  • Asistan içeriğindeki '</think>' bölünmesini kaldırır, böylece akıl yürütme bloğu her zaman görüntülenir. Orijinal sürüm, </think> dahil olmak üzere her şeyi atar; bu da akıl yürütme içeriğini eğitim hedefinden sessizce silerdi.
  • SFT yalnızca asistan kaybı için asistan mesajı çıktısını {% generation %} / {% endgeneration %} işaretçileriyle sarar. Araç çıktılarından sonra bir asistan turunu açan <|tool▁outputs▁end|>, istem zaten onunla bittiği için işaretçilerin dışında kalır.

deepseekv3_v3_training.jinja

Yamalı DeepSeek-V3 şablonu (deepseek-ai/DeepSeek-V3 tarafından kullanılır). deepseek_r1_distill_training.jinja ile aynı fark, deepseekv3_v3.jinja dosyasına uygulanmıştır: SFT için yalnızca asistan kaybı hesaplanabilmesi amacıyla asistan mesajı çıktısının etrafına {% generation %} / {% endgeneration %} işaretleri eklenmiştir; asistan turunu açan <|Assistant|> ve <|tool▁outputs▁end|> etiketleri bu işaretlerin dışında bırakılmıştır.

deepseekv3_v4_training.jinja

Düzeltilmiş DeepSeek-V3-0324 şablonu (deepseek-ai/DeepSeek-V3-0324 tarafından kullanılır). deepseekv3_v2_training.jinja ile aynı fark, deepseekv3_v4.jinja dosyasına uygulanmıştır: araç çağrısı argümanlarında | tojson ve asistan çıktısının etrafında {% generation %} / {% endgeneration %} işaretleri.

diffusion_gemma_training.jinja

Yamalı DiffusionGemma şablonu. diffusion_gemma.jinja ile fark:

Modelin ürettiği tur bölümlerini (düşünme kanalı, araç çağrıları, içerik ve kapanış <turn|>) {% generation %} / {% endgeneration %} ile sarmalayın, böylece return_assistant_tokens_mask=True SFT için yalnızca asistan kaybında doğru maskeleri üretsin. Tur içinde gömülü olan araç yanıtları ortamdan gelir ve üretim bloğunun dışında kalır.

gemma_training.jinja

Yamalı Gemma şablonu (Gemma ve Gemma2 tarafından paylaşılan, aynı sohbet şablonlarını içeren). gemma.jinja ile fark:

Birleşik asistan çıktısını bölün, böylece <start_of_turn>model\n başlığı (model tarafından üretilmeyen bir istem ipucu) üretim bloğunun dışında kalsın ve SFT için yalnızca asistan kaybı hesaplaması adına asistan içeriğini {% generation %} / {% endgeneration %} işaretçileriyle sarın.

gemma3_training.jinja

Yamalı Gemma 3 şablonu. gemma_training.jinja ile aynı fark (birleşik çıktı satırını rol bazlı dallara bölmek, böylece <start_of_turn>model\n istem ipucu üretim bloğunun dışında kalır ve asistan içeriği {% generation %} / {% endgeneration %} ile sarılır), sistem mesajlarını ve çok modlu içerik bloklarını destekleyen Gemma 3 temel şablonuna uygulanmıştır.

glm4moe_training.jinja

Yamalı GLM-4-MoE şablonu. glm4moe.jinja ile fark:

Her asistan turunu, bir sonraki turu açan rol işaretiyle (<|observation|> araç çağrılarından sonra, aksi halde <|user|> veya <|system|>) üretim bloğu içinde kapatın. GLM’nin orijinal şablonunda tur sonu token’ı yoktur: bir tur, sonraki mesajın rol işaretiyle sona erer ve GLM <|user|> ile <|observation|>’yi dizin sonu token’ları olarak tanımladığı için, eğitim şablonu dur token’ını kayıp maskesinde tutmak amacıyla işareti asistan turuna ekler ve sonraki mesaj kendi işaretini artık görüntülemez.

SFT için yalnızca asistan kaybı hesaplanabilmesi amacıyla asistan mesajı çıktısını (düşünme bloğu ve araç çağrıları dahil) {% generation %} / {% endgeneration %} işaretçileriyle sarmalayın. enable_thinking=False kullanıldığında, üretim istemi zaten boş \n<think></think> ile bittiği için düşünme bloğu işaretçilerin dışında kalır.

qwen3_training.jinja

Yamalı Qwen3 şablonu. qwen3.jinja ile fark:

loop.last durumuna bağlı olarak koşullu olarak atlanan düşünme bloğunu, mesaj konumundan bağımsız olarak her zaman dahil edin. Bu, bir araç mesajı eklendiğinde asistanın görüntülenmesini değiştirir ve önek korumasını bozar:

- {%- if loop.index0 > ns.last_query_index %}
-     {%- if loop.last or (not loop.last and reasoning_content) %}
-         {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
-     {%- else %}
-         {{- '<|im_start|>' + message.role + '\n' + content }}
-     {%- endif %}
- {%- else %}
-     {{- '<|im_start|>' + message.role + '\n' + content }}
- {%- endif %}
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}

return_assistant_tokens_mask=True parametresinin SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalayın. Üretim isteminin önceden doldurduğu düşünme bloğu kısmı (enable_thinking=False ile <think>\n\n</think>\n\n) işaretçilerin dışında kalır, çünkü istem zaten bununla sona erer. Diğer Qwen3 eğitim şablonları da kendi üretim istemlerinin önceden doldurdukları kısımla aynı işlemi yapar, örneğin <think>\n.

qwen3_v2_training.jinja

Düzeltilmiş orijinal Qwen3 şablonu (Mayıs 2025'ten önce Qwen3 kontrol noktalarıyla ve hâlâ Qwen3 temel kontrol noktalarıyla birlikte dağıtılan). qwen3_training.jinja dosyasındaki farkla aynı, qwen3_v2.jinja dosyasına uygulanmıştır.

qwen3_vl_training.jinja

Yamalı Qwen3-VL şablonu. qwen3_vl.jinja ile fark:

Asistan mesajı çıktısını (hem content hem de tool_calls) {% generation %} / {% endgeneration %} ile sarmalayın, böylece return_assistant_tokens_mask=True SFT için yalnızca asistan kaybında doğru maskeleri üretsin.

gptoss_training.jinja

Yamalı GPT-OSS şablonu. gptoss.jinja ile fark:

return_assistant_tokens_mask=True parametresinin SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalayın.

idefics3_training.jinja

Yamalı Idefics3 şablonu. idefics3.jinja ile fark:

Asistan mesajını kendi dalına ayırın, böylece {% generation %} / {% endgeneration %} işaretleri asistan içeriğini sarar. Bu, SFT asistan-only kaybı için doğru maskeler üretmek üzere return_assistant_tokens_mask=True parametresinin etkinleşmesini sağlar.

lfm2_training.jinja

Yamalı LFM2 şablonu. lfm2.jinja ile fark:

Birleşik mesaj çıktı satırını rol bazlı dallara ayırın; böylece <|im_start|>assistant\n istem ipucu, üretim bloğunun dışında kalır (model tarafından üretilmez), asistan içeriği ve <|im_end|>\n (modelin üretmeyi ve burada durmayı öğrenmesi gereken) ise bloğun içinde yer alır. Asistan içeriğini {% generation %} / {% endgeneration %} ile sarın ki return_assistant_tokens_mask=True, SFT için yalnızca asistan kaybına yönelik doğru maskeleri üretebilsin.

lfm2_v2_training.jinja

Yamalı LFM2 şablonu, sonraki revizyon. lfm2_v2.jinja ile fark:

Asistan çıktısını, tool_calls işleyen dalda ve düz içerik dalında, {% generation %} / {% endgeneration %} ile sarmalayın; böylece return_assistant_tokens_mask=True, SFT asistan-only kaybı için doğru maskeleri üretir. <|im_start|>assistant\n istem ipucu, üretim bloğunun dışında kalırken içerik, araç çağrıları ve <|im_end|>\n bloğun içinde yer alır.

llama3_training.jinja

Yamalı Llama 3 şablonu. llama3.jinja ile fark:

return_assistant_tokens_mask=True parametresinin SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalayın.

llava_next_training.jinja

Yamalı Llava-Next şablonu. llava_next.jinja ile fark:

  • SFT yalnızca asistan kaybı için asistan mesajı çıktısını {% generation %} / {% endgeneration %} işaretçileriyle sarar.
  • </s> işaretinin ardından gelen boşluğu üretim bloğunun dışında tutar. Tokenizer bu boşluğu bir sonraki turun ilk token'ı olan ▁[ ile birleştirir; aksi halde bu token asistan çıktısı olarak maskelenir ve maskelenmiş aralığın sonundaki </s> durdurma token'ı gizlenmiş olur.

mistral_large_4_training.jinja

Mistral Large 4 şablonu yamalandı. mistral_large_4.jinja ile fark: mistral_medium_3_5_training.jinja ile aynı değişiklik, asistan turunu (içerik, araç çağrıları ve tur sonu token'ı) {% generation %} / {% endgeneration %} ile sarmalayarak return_assistant_tokens_mask=True'ün SFT asistan-only kaybı için doğru maskeleri üretmesini sağlıyor.

mistral_medium_3_5_training.jinja

Yamalı Mistral Medium 3.5 şablonu. mistral_medium_3_5.jinja ile fark: orijinal zaten önek koruyucu olduğundan, tek değişiklik, SFT asistan-only kaybı için doğru maskelerin üretilmesini sağlamak üzere asistan turunu (içerik, araç çağrıları ve tur sonu token'ı) {% generation %} / {% endgeneration %} ile sarmalamaktır; böylece return_assistant_tokens_mask=True doğru maskeleri üretir.

muse_glimmer_training.jinja

Patched Muse Glimmer şablonu. muse_glimmer.jinja ile fark: return_assistant_tokens_mask=True'ün SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere, turun tüm ATEM kanallarını içeren asistan dalının tamamını {% generation %} / {% endgeneration %} ile sarmalayın.

nemotron_3_nano_training.jinja

Yamalı Nemotron Nano şablonu. nemotron_3_nano.jinja ile fark: orijinal zaten öneki koruyucu olduğundan, tek değişiklik, SFT için yalnızca asistan kaybında doğru maskelerin üretilmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalamaktır; böylece return_assistant_tokens_mask=True doğru maskeleri üretir.

nemotron_3_super_training.jinja

Nemotron Super şablonu için yama. nemotron_3_super.jinja ile fark: nemotron_3_nano_training.jinja ile aynı — orijinal zaten öneki koruyucu olduğundan, tek değişiklik, SFT için yalnızca asistan kaybında doğru maskelerin üretilmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalamaktır; böylece return_assistant_tokens_mask=True doğru maskeleri üretir.

nemotron_3_ultra_training.jinja

Nemotron Ultra şablonu için yama. nemotron_3_ultra.jinja ile fark: nemotron_3_nano_training.jinja ile aynı — orijinal zaten öneki koruyucu olduğundan, tek değişiklik, SFT için yalnızca asistan kaybında doğru maskelerin üretilmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalamaktır; böylece return_assistant_tokens_mask=True doğru maskeleri üretir.

nemotron_3_5_lightning_training.jinja

Nemotron 3.5 Lightning şablonu için yama. nemotron_3_5_lightning.jinja ile fark: nemotron_3_nano_training.jinja ile aynı — orijinal zaten öneki koruyucu olduğundan, tek değişiklik, SFT için yalnızca asistan kaybında doğru maskelerin üretilmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalamaktır; böylece return_assistant_tokens_mask=True doğru maskeleri üretir.

phi3_training.jinja

Yamalı Phi-3 şablonu. phi3.jinja ile fark:

return_assistant_tokens_mask=True parametresinin SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalayın.

phi3_5_training.jinja

Yamalı Phi-3.5 şablonu. phi3_5.jinja ile fark:

return_assistant_tokens_mask=True parametresinin SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalayın.

qwen2_5_training.jinja

Yamalı Qwen2.5 şablonu. qwen2_5.jinja ile fark:

return_assistant_tokens_mask=True parametresinin SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalayın.

qwen2_5_base_training.jinja

Yamalı Qwen2.5 taban şablonu (yalnızca varsayılan sistem istemcisi açısından talimat şablonundan farklı olan, Qwen2.5-0.5B gibi taban denetim noktaları tarafından kullanılır). qwen2_5_training.jinja dosyasındaki farkın aynısı, qwen2_5_base.jinja dosyasına uygulanmıştır.

qwen2_5_vl_training.jinja

Yamalı Qwen2.5-VL şablonu (bayt düzeyinde aynı şablonu içeren Qwen2-VL için de kullanılır). qwen2_5_vl.jinja ile fark:

Asistan mesajını kendi dalına ayırın, böylece {% generation %} / {% endgeneration %} işaretleri asistan içeriğini sarar. Bu, SFT asistan-only kaybı için doğru maskeler üretmek üzere return_assistant_tokens_mask=True parametresinin kullanılmasını sağlar.

qwen3_instruct_2507_training.jinja

Yamalı Qwen3-Instruct-2507 şablonu (reasoning_content / <think> ayrıştırma, multi_step_tool izleme veya enable_thinking bayrağı içermeyen, daha basit bir Qwen3 sürümüyle gelen Qwen3-4B-Instruct-2507 gibi modeller tarafından kullanılır). qwen3_instruct_2507.jinja ile fark:

return_assistant_tokens_mask=True parametresinin SFT için yalnızca asistan kaybında doğru maskeler üretmesini sağlamak üzere asistan mesajı çıktısını {% generation %} / {% endgeneration %} ile sarmalayın.

qwen3_thinking_2507_training.jinja

Yamalı Qwen3-Thinking-2507 şablonu (üretim isteminde <think>\n ön dolduran Qwen3-4B-Thinking-2507 gibi modeller tarafından kullanılır). qwen3_thinking_2507.jinja ile fark: qwen3_training.jinja ile aynı değişiklik seti; bu, düşünme bloğunun her zaman yayınlanmasını (önek koruması) sağlayan loop.index0 > ns.last_query_index koşulunu kaldırır ve SFT asistan-only kaybı için asistan çıktısını {% generation %} / {% endgeneration %} işaretçileriyle sarar.

qwen3_5_think_training.jinja / qwen3_5_nothink_training.jinja

Her iki varyantta da ortak mantığa sahip, yamalı Qwen3.5 şablonları (yalnızca enable_thinking bayrağının varsayılan değeri farklıdır):

  • qwen3_5_think_training.jinja, Qwen3.5-4B ve daha büyük modellerde kullanılan, varsayılan olarak düşünme özelliğini etkinleştirir.
  • qwen3_5_nothink_training.jinja, Qwen3.5-2B ve daha küçük modellerde kullanılan, varsayılan olarak düşünme özelliğini devre dışı bırakır.

qwen3_5_think.jinja / qwen3_5_nothink.jinja ile fark: qwen3_training.jinja ile aynı (loop.index0 > ns.last_query_index koşulunu kaldırın ki düşünme bloğu her zaman oluşturulsun, asistan çıktısını {% generation %} / {% endgeneration %} ile sarın).

qwen3_6_training.jinja

Yamalı Qwen3.6 şablonu. qwen3_6.jinja ile fark: qwen3_training.jinja ile aynı (loop.index0 > ns.last_query_index koşulunu kaldırın ki düşünme bloğu her zaman oluşturulsun, asistan çıktısını {% generation %} / {% endgeneration %} ile sarın).

qwen3_8_training.jinja

Yamalı Qwen3.8 şablonu. qwen3_8.jinja ile fark: preserve_thinking / loop.index0 > ns.last_query_index koşulunu kaldırın, böylece düşünme bloğu her zaman çıkarılır — bu sayede çağrıcı preserve_thinking=False geçirdiğinde bile önek koruması geçerli kalır — ve SFT için yalnızca asistan kaybı (assistant-only loss) amacıyla asistan çıktısını {% generation %} / {% endgeneration %} işaretçileriyle sarın; üretim isteminin (generation prompt) önceden doldurduğu düşünme bloğu kısmı bu işaretçilerin dışında kalsın.

smolvlm_training.jinja

Yamalı SmolVLM şablonu (SmolVLM2 için de kullanılır; SmolVLM2, bayt düzeyinde aynı şablonu içerir). smolvlm.jinja ile fark:

Asistan mesajını kendi dalına ayırın, böylece {% generation %} / {% endgeneration %} işaretleri asistan içeriğini sarar. Bu, SFT asistan-only kaybı için doğru maskeler üretmek üzere return_assistant_tokens_mask=True parametresinin etkinleşmesini sağlar.

İlgili yardımcılar

Bu şablonlar üzerinde çalışan yardımcı işlevler (clone_chat_template(), is_chat_template_prefix_preserving, get_training_chat_template()) için Chat Template Utilities bölümüne bakın.

Update on GitHub