Episode Details

Back to Episodes
Why Chat Templates Break Models Silently

Why Chat Templates Break Models Silently

Episode 6021 Published 1 week, 5 days ago
Description
Your JSON messages don't reach the GPU as JSON. Somewhere in between, a Jinja chat template flattens them into a string of reserved special tokens — the exact format each model family was trained on. Llama 3 brackets roles with start_header and end_header; OpenAI's ChatML embedded the role in a single opening token; gpt-oss uses Harmony with separate stop tokens for "done talking" and "calling a tool"; Gemma has no system role at all; DeepSeek uses full-width CJK pipes. This episode walks through what special tokens actually are, how tokenizers register them, why the add_generation_prompt flag matters more than anyone thinks, and why a format mismatch never throws an error — it just produces a model that's a bit dimmer than it should be. Key sources: • Hugging Face, Chat templates — https://huggingface.co/docs/transformers/chat_templating • Matthew Carrigan / HF, Chat Templates: An End to the Silent Performance Killer, 2023-10-03 — https://huggingface.co/blog/chat-templates • OpenAI, Harmony Response Format, 2025-08-05 — https://cookbook.openai.com/articles/openai-harmony Episode 6021 — myweirdprompts.com/n/6021 (permanent short link: myweirdprompts.com/765230)
Listen Now

Love PodBriefly?

If you like Podbriefly.com, please consider donating to support the ongoing development.

Support Us