多想几步,少动一些参数
两条线索在 2024 年交汇:用更多计算换更好的推理,用稀疏结构让更大的模型跑得动。
- 2017
稀疏门控的混合专家
Shazeer 等,Google
- 解决了什么
- 模型越大越强,但每多一个参数,每次计算都要多算一份。
- 带来了什么变化
- 把一层拆成成千上万个“专家”小网络,由门控网络给每个输入挑出少数几个来算;专家层的参数做到 1370 亿,计算量却增长有限[3]。
- 2021
Switch Transformer:只选一个专家
Fedus、Zoph、Shazeer,Google
- 解决了什么
- 多个专家一起路由,计算和通信复杂,训练也不稳定。
- 带来了什么变化
- 每个 Token 只送给一个专家;同样的计算资源下,预训练速度最多提高到 7 倍,并训练出万亿参数级的稀疏模型[4]。
- 2022
- 2024
Mixtral 8x7B:8 选 2
Jiang 等,Mistral AI
- 解决了什么
- 开放权重的大模型,运行成本高。
- 带来了什么变化
- 每层 8 个专家、每个 Token 只用 2 个:总参数约 470 亿,每个 Token 只用到约 130 亿[2]。
- 2024
o1:先想再答
OpenAI
- 解决了什么
- 思维链要靠提示词“引”出来,模型不会主动进行长时间的推理。
- 带来了什么变化
- 用强化学习训练模型在回答前生成很长的思维链;表现随训练时的强化学习计算量和回答时的“思考”时间增加而持续提升[6]。
- 2024
DeepSeek-V3:256 个专家
DeepSeek-AI
- 解决了什么
- 专家越多,越难让负载均匀、训练成本可控。
- 带来了什么变化
- 每层 1 个共享专家加 256 个路由专家,每个 Token 选 8 个;总参数 6710 亿,每个 Token 激活 370 亿,完整训练约用 278.8 万 H800 GPU 小时[7]。
- 2025
思维链:把中间步骤写出来 Chain-of-Thought
1一句话
让模型先写出一步步的推算,再给出答案。对多步的数学和逻辑题,这样往往比直接给答案准确得多。
2打个比方
像做应用题时老师要求“写出过程”:一口报出答案,容易漏掉一步;把每一步写在草稿纸上,每一步都只需要做一件小事。
对模型来说,写下的每一步都会成为后面计算的上下文:生成下一个 Token 时,它能“看到”前面写好的中间结果。这里说的“想”只是比喻,模型并没有在写出来的文字之外另有一套思考。
3动手试
直接回答
一步一步来
4怎么做到的
2022 年,Wei 等人发现:在提示里放几道“带解题步骤”的例题,模型就会模仿着先写步骤、再作答。PaLM 540B 在 GSM8K 小学数学应用题上的准确率由此从 17.9% 升到 56.9%[1]。这种提升要到约千亿参数的模型上才明显,小模型写出的步骤常常前后不通。
同年,Kojima 等人发现连例题都可以不给:只在问题后面加一句 “Let’s think step by step”(让我们一步一步想),InstructGPT(text-davinci-002)在 MultiArith 上的准确率就从 17.7% 升到 78.7%,在 GSM8K 上从 10.4% 升到 40.7%[5]。
为什么有用?一个常见的解释是:模型每生成一个 Token,只做固定量的计算,多步题一次算不完;把中间结果写出来,等于把一道大题拆成很多次小计算,每一次都能用上前面写好的结果。
做不到什么
- 写出的步骤不一定是模型得出答案的真实原因:步骤看起来通顺,答案也可能错,反过来也一样。
- 步骤越长,消耗的 Token 越多,回答更慢、更贵。
- 对本来就简单的问题,写步骤帮助不大。
推理模型与“测试时计算” Reasoning Models · Test-time Compute
1一句话
推理模型被训练成在回答前先生成一长段“思考”。给它更多的思考 Token,往往能做对更难的题,代价是更慢、更贵。
2打个比方
像考试时的草稿纸和时间:同一个学生,给 5 分钟和给 1 小时,难题的得分不一样。多给的时间不会让人变聪明,但能多试几种思路、回头验算。
3动手试
- 思考预算
- 示意准确率
- 相对耗时与费用
- 比上一档多花
预算里能写下的“草稿”
4怎么做到的
2024 年 9 月,OpenAI 发布 o1,并写道:o1 的表现随着更多的强化学习(训练时计算)和更长的思考时间(测试时计算)而持续提升;文中两张图的横轴都是对数刻度[6]。在 2024 年美国数学邀请赛(AIME)的题目上,GPT-4o 平均只解出 12%,o1 每题只答一次就达到 74%,取 64 次作答的共识答案达到 83%[6]。
横轴是对数刻度,意味着想再提高同样多的分数,思考量往往要翻好几倍。所以思考不是越多越好,而是在准确率、速度和费用之间取舍。有的模型把这个取舍交给使用者:Claude 3.7 Sonnet 的接口可以设定“最多思考 N 个 Token”[10]。
做不到什么
- 思考用的 Token 通常也要计费、要等待;简单问题用长思考是浪费。
- 多想不等于想对:模型可能沿着错误的方向越想越远。
- 公开的提升曲线大多来自数学、编程这类答案能自动核对的任务,其他任务未必同样受益。
用强化学习激励推理 Reinforcement Learning · DeepSeek-R1
1一句话
不教模型每一步该怎么写,只告诉它最终答案对不对。反复尝试、反复打分,能拿到奖励的写法会越来越常出现。
2打个比方
像一个只看结果的师傅带徒弟:师傅不讲解法,只在每次交卷时说“对”或“错”。徒弟同一道题试好几种做法,发现“慢慢算、算完再检查”的那几次更常被判对,下次就更多地这样做。
3动手试
题目一个数的 3 倍加上 7 等于 31,这个数是几?标准答案:8
当前策略:选每种写法的概率
期望正确率平均回答长度(相对最长写法)
4怎么做到的
DeepSeek-R1 的研究先训练了一个“R1-Zero”:不先用示范数据做监督微调,直接对基础模型做大规模强化学习[8]。奖励全部按规则判定:答案是否正确(比如数学题核对最终答案),以及格式是否规范(推理过程写在规定的标签里)。
它用的算法叫 GRPO:同一道题一次采样一组回答,用每个回答的奖励减去这一组的平均分、再除以标准差,得到“比同组好多少”;好于平均的写法被加强,差于平均的被削弱。训练中,模型的回答自发变长,开始出现回头检查、换个思路的写法;R1-Zero 在 AIME 2024 上的单次作答准确率从 15.6% 升到 77.9%[9]。
R1-Zero 的输出可读性差,还会中英文混杂。正式的 DeepSeek-R1 在强化学习之前先加入少量示范数据,并分多个阶段训练,改善了这些问题[8]。
做不到什么
- 只适用于答案能自动判对错的任务;写作、建议这类没有标准答案的任务,奖励很难定义。
- 奖励只看结果,模型可能学到“蒙对”的捷径,或者写出很长却在原地打转的推理。
- 一组回答全对或全错时,组内没有差别,这一题就提供不了学习信号。
混合专家:每次只叫醒一部分参数 Mixture of Experts · MoE
1一句话
把一层网络换成许多并排的“专家”,由路由器把每个 Token 只交给打分最高的几个。总参数很多,每次只用到一小部分。
2打个比方
像一家大医院的分诊台:医院里有几十个科室(总参数),每位病人只会被分到一两个科室(激活参数)。医院可以不断增设科室,每位病人看病的时间却不会跟着变长。
“专家”只是个名字。Mixtral 的研究发现,路由的分工更多跟词的写法和语法位置有关,而不是按“数学”“生物”这样的学科划分[2]。
3动手试
| Token | 专家 1 | 专家 2 | 专家 3 | 专家 4 | 专家 5 | 专家 6 | 专家 7 | 专家 8 |
|---|---|---|---|---|---|---|---|---|
| 偏置 | ||||||||
| 负载 |
4怎么做到的
在 Transformer 里,MoE 通常替换每一层中的前馈网络。路由器是一个很小的线性层:给每个专家打一个分,经过 softmax 变成概率,只保留最高的 k 个,再按它们的分数把这几个专家的输出加权相加[3]。Mixtral 8x7B 每层 8 个专家、每个 Token 选 2 个;因为只有前馈部分分成了专家,注意力等部分共用,所以总参数约 470 亿而不是 8 × 70 亿,每个 Token 只用到约 130 亿[2]。
难点在负载均衡:如果路由器总偏爱少数几个专家,它们会过载,其他专家却学不到东西。常见做法是在训练目标里加一项均衡损失[4]。DeepSeek-V3 换了个办法:给每个专家的路由打分加一个偏置,专家过载就把偏置调低,空闲就调高;偏置只影响“选谁”,不影响加权[7]。它每层有 1 个共享专家和 256 个路由专家,每个 Token 选 8 个,总参数 6710 亿,每个 Token 激活 370 亿[7]。
做不到什么
- 计算省了,内存没省:所有专家都要装进显存,随时待命。
- 专家分散在多张显卡上时,Token 要在卡与卡之间来回传送,通信容易成为瓶颈。
- 路由是离散的“选或不选”,训练比普通网络更容易不稳定。
这一章留下的问题
- 01
写出来的步骤不一定是模型得出答案的真实过程。怎样确认它真的是“按步骤算”的,而不是先有答案、再补理由?
- 02
想得越久越贵。怎样让模型自己判断,一道题值得想多久?
- 03
推理模型擅长答案能自动核对的题。要在真实世界里办成一件事,还得会查资料、会用工具,这是下一章的内容。
本章参考文献
- [1] Jason Wei et al.. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. NeurIPS 2022 (arXiv:2201.11903).在少样本提示中给出带中间推理步骤的示例,可显著提升足够大的语言模型在数学应用题等多步推理任务上的表现。
- [2] Albert Q. Jiang et al.. Mixtral of Experts. arXiv:2401.04088 (Mistral AI).介绍开放权重的稀疏混合专家模型Mixtral 8x7B:每层8个专家、每个token只激活其中2个,总参数约470亿,但每个token只用到约130亿活跃参数。
- [3] Noam Shazeer et al.. Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer. ICLR 2017 (arXiv:1701.06538).提出稀疏门控的混合专家(MoE)层,每个输入只激活少数“专家”子网络,使模型参数量可以大幅增加而计算量增长有限。
- [4] William Fedus, Barret Zoph, Noam Shazeer. Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity. Journal of Machine Learning Research, 23(120): 1–39 (2022) (arXiv:2101.03961).把混合专家的路由简化为每个token只送往一个专家,降低了通信开销和训练不稳定性,训练出了万亿参数规模的稀疏模型。
- [5] Takeshi Kojima et al.. Large Language Models are Zero-Shot Reasoners. NeurIPS 2022 (arXiv:2205.11916).发现只要在问题后加上“Let's think step by step”这类提示,不给示例也能让大模型逐步推理,从而提升多项推理任务的准确率。
- [6] OpenAI. Learning to reason with LLMs. OpenAI Blog.介绍用强化学习训练、在回答前先生成较长内部思维链的推理模型o1,并报告其表现会随训练时强化学习计算量和推理时“思考”时间的增加而提升。
- [7] DeepSeek-AI. DeepSeek-V3 Technical Report. arXiv:2412.19437.介绍总参数6710亿、每个token激活370亿参数的混合专家模型DeepSeek-V3,采用多头潜在注意力(MLA)、无辅助损失的负载均衡和FP8混合精度训练,报告完整训练约耗用278.8万H800 GPU小时。
- [8] DeepSeek-AI. DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948.展示仅靠大规模强化学习、不先做监督微调,模型(DeepSeek-R1-Zero)就能发展出长链推理能力,并开放了R1的模型权重以及蒸馏得到的小模型。
- [9] Daya Guo et al. (DeepSeek-AI). DeepSeek-R1 incentivizes reasoning in LLMs through reinforcement learning. Nature, 645(8081): 633–638 (2025).DeepSeek-R1的研究经同行评审后正式发表于《自然》,期刊版标题与arXiv预印本不同。
- [10] Anthropic. Claude 3.7 Sonnet and Claude Code. Anthropic News.Anthropic 称 Claude 3.7 Sonnet 为“混合推理模型”,可在快速回答与扩展思考之间切换;通过接口,使用者可以设定思考预算,让模型最多思考 N 个 Token(N 最大到 128K 的输出上限)。
全部文献、素材与许可见 来源与许可。