从0训练LLM · 现代大模型体系 阅读 + 实验 ≈ 35 分钟 页内实验 ×4
C12 后训练:从续写到听话、推理、做事 第 6 课

怎么让模型想得更久,又能控制它想多久?

思考模型:想得更久,也能控制
「一步一步想」的提示只能引出大模型已有的能力;RL 让思考本身成为被训练的行为,R1-Zero 的回答在训练中自己越写越长。可一直想也不行:同一个模型要能想能不想,还要能按预算收住。Qwen3.8 的「推理力度」其实就是模板写进 system 的一段英文指令;K3 把超预算的轨迹奖励直接改成 −1。
❓

本课一问:数学题、代码题,一口气写出答案经常错,先想一想再答就好得多。怎么训出一个「会想」的模型?想得越久越好吗——想多久又怎么控制?

这一课先不碰:小模型怎么继承大模型的思考(第 7 课);思考与工具调用交错(第 8 课)。

从已有出发

从已有出发 · 后训练流水线 点已学的站看数据、损失与模型数

第 5 课的 R1-Zero 在 RL 过程中出现了一个没人教过的现象:回答越写越长,开始在里面回头检查、换思路。DeepSeek 把单条回答的上限从 32,768 个 token 放宽到 65,536 个之后,成绩和回答长度又一起跳了一截(第 8,200 步) 。贯穿提问在 Qwen3.8 的训练样本里长这样:思考块 <think>…</think> 就在助手的回答里,和正文一样是训练目标(这条样本里 18 个思考 token 都算 loss):

同一串模板字符交给两个词表(<|im_start|>assistant↵): Qwen3.8 切成 3 个 token,GPT-2 切成 10 个: <|im_start|>assistant↵。 特殊 token 是在词表里显式注册的:没注册过的词表只会把它当成一串普通字符。

演进图 · 每一代都是被上一代的失败逼出来的本课高亮
  1. 第一代 SFT:用示范教格式 FLAN 2021 · LIMA 2023
  2. 第二代 RLHF:奖励模型 + PPO Christiano 2017 → Ziegler 2019 → InstructGPT 2022
  3. 第三代 · 离线 DPO:不训奖励模型 Rafailov et al. 2023(Stanford)
  4. 第三代 · 在线 GRPO 系:去掉 value model DeepSeekMath 2024-02 → DAPO / Dr. GRPO / GSPO 2025
  5. 奖励来源 RLVR:可验证的奖励 Tülu 3 2024-11 命名 · DeepSeek-R1 2025-01 规模化
  6. 岔路 RL 扩展了能力,还是重排? Yue 2025 vs ProRL 2025
  7. 第四代 思考模型:想更久,也能控 o1 2024-09 · R1 2025-01 · Qwen3 2025-05 你在这里
    解决了Qwen3-235B 推理 RL:3,995 个 query-verifier 对,AIME’24 170 步内 70.1 → 85.1;同一个模型能想能不想。
    卡在小模型自己做 RL:Qwen2.5-32B 直接做 R1-Zero 式 RL,AIME 2024 只有 47.0。
  8. 第五代 蒸馏:小模型直接继承 Hinton 2015 → GKD 2023 → Qwen3 2025
  9. 第六代 Agentic RL:在环境里做事 SWE-RL 2025-02 · Kimi K2 · GLM-4.5 slime · DeepSeek-V3.2

先自己设计:提示它「一步一步想」

最省事的做法不训练:在提示里加几个带推理步骤的示例(Wei et al. 2022 的思维链提示),或者只加一句「Let’s think step by step」(Kojima et al. 2022)。

  1. ① 朴素方案
  2. ② 它在哪失败
  3. ③ 改进方案
朴素方案思维链提示:在提示里要求一步一步想
PaLM 540B(思维链原文表 4)GSM8KSVAMPASDivAQuAMAWPS
普通提示17.969.472.125.279.2
思维链提示56.979.073.935.893.3

同一个 540B 模型,只换提示,GSM8K 从 17.9 涨到 56.9——能力本来就在,提示把它引了出来 。可小模型用同样的提示,生成的推理「通顺但不合逻辑」。

改进一:R1 的四段流程——让思考可读、可用

R1-Zero 想得好,但回答可读性差、中英混杂,也只会做推理题。DeepSeek-R1 的流程是四段:① 用几千条「对话式、像人一样」的长思维链做冷启动 SFT;② 推理 RL(GRPO),额外加一个「语言一致性」奖励;③ 用 RL 模型拒绝采样出约 60 万条推理样本、再加非推理数据做一轮 SFT;④ 覆盖全部场景的第二轮 RL,推理题用规则奖励、通用题用偏好奖励(只放在最后 400 步) 。OpenAI 的 o1(2024-09)是更早的闭源先例,只公开了结论,没有公开做法。

改进二:同一个模型,能想也能不想

一直想也不行:简单问题想几千个 token 是浪费,用户也不想等。Qwen3 的做法叫模式融合:在推理 RL 之后,把「有思考」和「思考块为空」两种 SFT 样本混在一起训(用户消息里加 /think、/no_think 标记),让同一个权重学会两种模式。原文还观察到一个副产品:模型学会两种模式后,能基于不完整的思考直接作答——于是可以做「思考预算」:思考写到用户给的上限时,强行插入一句停止思考的指令,模型接着就给出回答。原文强调这个能力「不是显式训练的,而是模式融合后自然出现的」 。

锚点 Qwen3.8 把这件事做进了官方聊天模板。下面是模板在四种设置下真正生成的提示(Qwen3.8 真 tokenizer 现数):

🎯

试三件事:① 看「推理力度」一列:xhigh 和 low 各是一段模板自动写进 system 的英文指令,medium 什么都不写——「力度」不是模型里的一个开关,是一段文字,模型要在后训练里学会读懂它;② 看「关闭思考」:模板替模型写好 <think>↵↵</think>↵↵ 这个空思考块(4 个 token),模型从回答开始写;③ 回到本页开头的模板组件,点「两轮 · 删掉历史思考」和「保留历史思考」:Qwen3.8 默认把历史轮的思考留在上下文里(preserve_thinking),第 8 课会看到为什么 agent 场景需要它。

改进三:用 RL 直接训「想多久」

提示和模板只能表达意图,真正让模型学会收住的是奖励。2026 年几家的做法:

K3 的规则可以自己算一遍(8 条轨迹的思考长度与对错是教学数据):

🎯

试三件事:① τ 拖到 6(预算 12,000):没有轨迹超预算,优势为正的轨迹平均思考 4,380 个 token;② 拖回 2(预算 4,000):5,200 和 9,800 那两条答对了,却因为超预算奖励变成 −1——被奖励的轨迹平均思考长度降到 2,300;③ 拖到 1.5:连 3,100 那条也超了,组内平均奖励变成负数——两条答错但很短的轨迹(800、1,500 token)优势也变成了正的 +0.302。预算罚得太狠,会连「短而错」一起奖励;这就是 K3 先用大 τ、再逐步收紧的原因。

测试时算力:想得多为什么有用

「想更久」本质上是在推理时多花算力。最简单的一种是同一题独立采 N 次、多数投票:

单次正确率 0.6 时,5、15、64 次投票的正确率是 0.683、0.787、0.946;单次正确率 0.4 时却是 0.317、0.213、0.054——越投越差 。测试时算力放大的是模型已有的倾向。OpenAI 报告 o1 在 AIME 2024 上单样本 74%、64 个样本共识 83%、1,000 个样本用打分模型重排 93% ;Snell et al. 2024 发现按题目难度分配测试时算力,比 best-of-N 省 4 倍以上,算力对齐时能胜过大 14 倍的模型 。思考模型把「多采样、再挑」的一部分搬进了单条回答内部:在一条回答里自己试、自己检查、自己改。

⚠

常见误解一:「思考模式是另一个模型。」 Qwen3 与 Qwen3.8 都是同一个权重,由模板和 system 指令决定想不想、想多深。

常见误解二:「关闭思考就是不生成 think 标签。」 模板替模型写好了一个空的思考块,模型从回答开始接着写;训练里也要有这种样本,模型才学得会。

常见误解三:「想得越久一定越好。」 单次正确率低于一半时投票越投越差;K3、V4 都专门惩罚超预算的思考。Qwen3 报告的图 2 里成绩确实随思考预算平滑上升——多想通常有用,但每多一个 token 都要付推理时间和钱,「想多久」是一个要权衡的旋钮,不是越大越好。

证据三问

问本课的回答
① 它解决什么问题?提示只能引出已有能力、不可控;要把「想」训成行为,还要能按需收住
② 数学上为什么可能有效?多数投票对单次正确率 > 0.5 的放大可证明 ;「在一条回答里多想 ≈ 在推理时多花算力」是理论动机
③ 实验上为什么选了它?R1-Zero 15.6% → 77.9%;Qwen3 170 步 70.1 → 85.1;o1 74% → 83% → 93%

一句话

📌

思考是模型自己生成的 token:RL 让它学会在需要时多想,模式融合让同一个模型能想能不想,预算和力度决定想多久。

🚦

先停在这里:记住「思维链提示只能引出;R1 四段;模式融合 + 预算;力度是一段 system 指令;投票只放大已有倾向」。
再深一层:在预算组件里找出让所有对答案都拿正优势的最小 τ,再去读 K3 §4.1.2。

下一个缺口

235B 的模型能靠 RL 想明白,小模型呢?DeepSeek 在 Qwen2.5-32B 上直接做 R1-Zero 式 RL,AIME 2024 只有 47.0;而用 R1 生成的数据给同一个底座做 SFT,是 72.6。小模型自己做 RL 又贵又差——能不能直接继承大模型? → 第 7 课:蒸馏

你可能会问