dougalldeepmind/2026-08-01-qwen36-sft-mixture-40-60-empty-think-tags
Qwen3.6-27B SFT mixture — 40_60_empty_think_tags 40% difficult-advice / 60% TULU3 replay, with Qwen3.6's empty think marker added to the replay rows and excluded from the loss. Training data for qwen3.6-27b-difficult-advice-tulu-lora-40_60_empty_think_tags. Derived from qwen3.6-27b-sft-mixture-40-60_assistant_loss_only — same rows, same 580/1402 split, same seed. Only the markers differ. This file: md5 a09b35d6cd04c65616e7f0927d209bfe. The marker Every TULU3… See the full description on the dataset page: https://huggingface.co/datasets/dougalldeepmind/2026-08-01-qwen36-sft-mixture-40-60-empty-think-tags.
Qwen3.6-27B SFT mixture — 4060emptythinktags
40% difficult-advice / 60% TULU3 replay, with Qwen3.6's empty think marker added to the replay rows and excluded from the loss. Training data for `qwen3.6-27b-difficult-advice-tulu-lora-40_60_empty_think_tags`.
Derived from `qwen3.6-27b-sft-mixture-40-60_assistant_loss_only` — same rows, same 580/1402 split, same seed. Only the markers differ. This file: md5 a09b35d6cd04c65616e7f0927d209bfe.
The marker
Every TULU3 replay row carries <think>\n\n</think>\n\n on its final assistant turn -- Qwen3.6's non-thinking marker, placed exactly where apply_chat_template puts it (the template emits it only on final turns; the insertion is asserted to reproduce the template byte-for-byte before any data is touched).
Those marker tokens are masked out of the loss. The model is conditioned on the marker -- which is how Qwen3.6 injects it as a prefill in non-thinking mode -- but never trained to emit it, since learning to emit an empty think block is the documented reasoning-collapse pattern. Difficult-advice rows are untouched and keep their real <think> traces fully supervised.
<|im_start|> MASKED
assistant MASKED
<think> MASKED <- marker: context, not a target
</think> MASKED
To LOSS <- supervision starts at the answerSupervision is otherwise assistant-tokens-only: everything outside an assistant turn is -100. A supervised span ends after the closing <|im_end|>, which the model must produce to stop.
Files
Re-rendering from messages will not reproduce these strings.
Provenance
src/experiments/add_empty_think.py applied to the published no-marker mixture above, itself built by build_mixture.py (seed 0) over `allenai/tulu-3-sft-mixture` and matboz/difficult-advice-qwen3.
