Qwen3-8B 微调把思考模式训没了,模板默认空 `<think>` 块是根因
MeldhLLC · reddit · 2026-07-26
作者在微调 Qwen3-8B 时发现,模型的「思考模式」会在不知不觉中被训练掉,因为训练模板把空的 <think> 块教成了默认输出。
发生了什么
- 他们用同一份语料做了两次微调,结果一版还能正常触发思考开关,另一版则每次都返回空的 thinking 字段。
- 训练 loss 看起来正常,现有评测也没有及时发现这个退化。
根因
- Qwen3 的标准聊天模板会把非思考回复渲染成空的 <think> 块。
- 如果拿这个模板去渲染「只给答案」的数据,模型很容易学成:空思考块才是正确输出。
- 文中还引用了一篇相关论文:只检查 reasoning block 是否“存在且完整”并不够,不能代表推理本身真的正确。
他们测到的现象
- 在 GSM8K 上,当训练目标不带 think 标签时,模型有 96.5% 的输出会生成有效 reasoning block。
- 当目标里包含空 think block 时,这个比例掉到 58.2%。
- 如果把这些空 block 从 loss 里排除,比例又回到 100%。
- 在他们的 false-premise 测试里,失去思考能力的版本更容易编造错误前提。
第二个坑:Ollama 模板没有按预期生效
- 导入 GGUF 后,Ollama 保留了模型内嵌模板,而不是用 Modelfile 里的 TEMPLATE 覆盖。
- 他们通过 ollama show <model> --template 才看出来实际模板。
- 当他们手工渲染请求后,同一组权重在 20/20 个测试问题上都能正常思考。
建议
- 先渲染完整训练样本,检查 <think> 里到底是什么。
- 不要只信配置文件,要读 Ollama 实际生效的模板。
- 用真实业务问题测思考能力,不要只测冷门 trivia。
- 每次请求都显式设置 think 为 true/false。
「模型」频道最新
- Opus 5 被指过度执着于机制设计和“别被抓到” — TheZvi · 2026-07-26
- Claude Opus 5 上线不足 24 小时就引爆早期实作 — Aiden_Tech_Ai · 2026-07-26
- Opus 5 的 agent 疯狂发明各种“ledger”对象 — Sauers_ · 2026-07-26
- 语音模型通病:动不动就回“Exactly!” — HamelHusain · 2026-07-26
- 用户称 Opus 5 发布后 Claude Pro 额度明显收紧 — Hefty-Honeydew-874 · 2026-07-26
- mlx-dspark 在 M4 Pro Mac 上将 Gemma 4 提速约 3 倍 — GlennCameronjr · 2026-07-26