mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
5193 字
15 分钟
Qwen2.5-Math:7B 追平 72B
2026-07-11

Qwen2.5-Math 论文解读:给它一个 Python 解释器,7B 就能追上 72B#

论文:Qwen2.5-Math Technical Report: Toward Scaling Law in Mathematical Reasoning(arXiv<2409>.12122,v1 标题;正式版改名为 Toward Mathematical Expert Model via Self-Improvement) 作者:An Yang、Beichen Zhang、Binyuan Hui 等 16 人,阿里通义千问团队,2024 年 9 月 这是少见的”全流程”技术报告:1.5B / 7B / 72B 三个尺寸的数学专家模型,从预训练、SFT、奖励模型到强化学习,全部用同一套方法论串起来。它最核心的两个抓手,一个是 TIR(Tool-Integrated Reasoning,工具集成推理)——让模型边推理边写 Python 代码做计算;另一个是 自我改进(Self-Improvement)——每一轮的老师都是上一轮的自己。72B-Instruct 在 2024 年中文高考数学上拿到 88.5 分(官方博客,TIR 模式),当时妥妥的开源数学天花板。

一、先说清楚:这篇报告到底在解什么问题#

1. LLM 做数学,有两个先天性短板#

做过大模型数学评测的人都有体会,模型做错题基本就两种死法:

  • 算错。推理链条是对的,但中间某一步”三七二十一”算岔了,后面全崩。纯靠自然语言做多位数乘除、开根号、解方程,本质上是让一个背语料的模型去干计算器的活,出错是必然的。
  • 绕不出来。涉及符号运算、算法型题目(比如求矩阵特征值、解二次方程组的两个根),模型用自然语言”手搓”推导,又慢又容易错。

Qwen2.5-Math 这份报告的出发点就是这两件事:计算不准,就让模型学会用工具;数据不够,就让模型自己造

2. 模型家族一览#

报告一口气发布了三类模型:

模型说明
Qwen2.5-Math-1.5B / 7B / 72BBase 模型,在 Qwen Math Corpus v2 上继续预训练
Qwen2.5-Math-1.5B / 7B / 72B-Instruct指令模型,支持中英双语、CoT + TIR 两种推理
Qwen2.5-Math-RM奖励模型(Reward Model),既管训练也管推理选择

有个细节值得玩味:论文 v1 版本标题是”Toward Scaling Law in Mathematical Reasoning”(迈向数学推理的 scaling law),正式版改成了”Toward Mathematical Expert Model via Self-Improvement”(通过自我改进迈向数学专家模型)。标题的变化其实暴露了团队结论的演化——一开始想找的是”参数换分数”的幂律,最后真正跑通的却是”数据 + 工具 + 自我迭代”这条更便宜的路

二、三种推理范式:CoT、PoT,和真正的主角 TIR#

1. CoT:老老实实写步骤#

链式思维(Chain-of-Thought, CoT) 大家都熟:模型用自然语言一步步推理,“因为……所以……”地写下来。这是基本盘,Qwen2.5-Math 给它专门构建了训练数据集,中英双语、标注题加合成题混着用。

2. PoT:一口气写完整个程序#

程序思维(Program-of-Thought, PoT) 更进一步:模型把整个解题过程写成一个完整程序,最后一次性执行拿答案。问题是模型写的时候看不到任何中间结果,等于盲写——一个小错就全盘报废。报告里 PoT 主要出现在评测设置中(zero-shot),不是训练的重心。

3. TIR:边想边算,这才是杀手锏#

工具集成推理(Tool-Integrated Reasoning, TIR) 是这篇报告的真正主角。它的玩法是:模型推理到需要计算的地方,现场写一段 Python 代码,交给解释器执行,看到结果后再继续往下推理。就像人做题时按了一下计算器,而不是强迫自己全程心算。

这直接补上了 CoT 的三个短板,报告里概括为:

  • 精确数值计算(precise computation)——大数运算、复杂数值;
  • 符号运算(symbolic manipulation)——求二次方程的根、矩阵特征值;
  • 算法型操作(algorithmic manipulation)——需要写循环、枚举、验证的题。

效果有多直接?看同一模型 CoT 和 TIR 在 MATH 上的对比:

模型CoT MATHTIR MATH提升
1.5B-Instruct75.879.9+4.1
7B-Instruct83.685.2+1.6
72B-Instruct85.988.1+2.2

模型越小,TIR 的收益越大——1.5B 的小模型靠一个 Python 解释器,MATH 直接干到接近 80。到了竞赛题上差距更夸张:AIME24 上 72B 用 CoT 贪心解码只能解出 9/30,换 TIR 立刻变 12/30;1.5B 用 CoT 只有 3/30,用 TIR 直接跳到 7/30。

工程上还有一个精巧的细节:做 TIR 的强化学习时,Python 解释器输出的所有 token 都被 mask 掉——不让模型为”工具的输出”负责,只为自己写的代码和后续的推理负责。这个处理很干净。

三、数据工程:数学语料从哪来,难题怎么造#

1. 预训练语料:从 700B 到 1T+ tokens#

Qwen2-Math 时代用的 Qwen Math Corpus v1 大约 700B tokens,来源是数学网页、代码、百科、考试题加合成数据。处理流程是标准四件套,但每一步都为数学定制:

  1. 召回:训 FastText 分类器,从 Common Crawl 里捞数学文本,还利用 URL 元信息扩召回;
  2. 去重:MinHash 过滤相似文档;
  3. 质量过滤:拿 Qwen2-0.5B-Instruct 配合 prompt 给候选数据打分,优中选优;
  4. 合成:用 Qwen2-72B-Instruct 从已有材料里抽取整理数学问答,或者直接生成新的问答对。

到了 v2,规模拉到 1T+ tokens,三个升级点:

  • 用 Qwen2-Math-72B-Instruct 大规模合成预训练级数学数据(注意:是用上一代指令模型给下一代造预训练粮,自我改进从这儿就开始了);
  • 补了大量中文数学数据,来自网页、书籍、代码仓库;
  • Base 不再从 Qwen2 初始化,而是从语言、代码、推理更强的 Qwen2.5 base 继续预训练,上下文 4K。

最后的配比不是拍脑袋的:拿 1.5B 小模型做消融实验,试出来最优混合比例。这个”用小模型当探针调数据配比”的做法,便宜又实用。

2. SFT 数据:题从哪来,答案怎么筛#

指令微调的数据分两条线。

CoT 数据:query 侧有 58 万英文题 + 50 万中文题,标注题来自 GSM8K、MATH、NuminaMath 的训练集,中文还额外加了 K-12 题集;合成题用 MuggleMath 方法从标注题”演化”而来。response 侧经过迭代式拒绝采样(Rejection Sampling):当前最强模型对每道题生成多条推理路径,有标准答案的只留答案正确的,没有标准答案的合成题用 加权多数投票(weighted majority voting) 推断哪条路径更可能对,然后再用奖励模型分数选 top-k。最后沉淀出 200 万英文 + 50 万中文 的 CoT 训练样本。

TIR 数据19 万标注题 + 20.5 万合成题(合成用了 MuggleMath 和 DotaMath 两种方法),另选 7.5 万标注题翻译成中文强化中文推理。标注题用 在线拒绝微调(online RFT):多个温度做核采样,难题加大采样量,只保留答案与参考答案一致的代码路径,每轮去重,用清洗后的数据继续微调,滚雪球式迭代。

3. 难度控制:给每道题打分#

这里有个容易被忽略但很关键的工程点:团队训了一个难度打分模型(difficulty-scoring model) 给每道题的复杂度打分,用来维持不同难度层级的分布平衡

为什么重要?因为拒绝采样天然偏爱简单题——简单题容易采样出正确答案,数据里就会越积越多简单题。不控制难度分布,模型会”刷低级题刷到高分、一上难题就露馅”。主动管住难度分布,是后面 AIME/AMC 竞赛成绩能起来的前提之一。

4. 防污染:13-gram + 最长公共子序列#

评测集污染是数学 benchmark 的重灾区(MATH 训练集里不少题和测试题结构高度相似)。报告的做法:13-gram 匹配加文本规范化,再加一条规则——最长公共子序列占比超过 0.60 就判为污染。预训练数据对照 GSM8K、MATH 等过滤;SFT、RM、RL 的数据则对照全部 12 个评测集(含 AIME24、AMC23、高考、中考)剔除可能重叠的题目和解法。这个严谨度,分数才敢信。

四、自我改进闭环:整篇报告的灵魂#

1. 闭环长什么样#

把报告的方法论抽象一下,就是一个循环:

  1. 旧模型大规模生成数学语料 / 解题回答;
  2. 用**规则校验器(答案对不对)+ 奖励模型(过程好不好)**双重筛选;
  3. 用筛出来的数据做 SFT,得到更强的模型;
  4. 更强的模型重新采样,训出更强的奖励模型;
  5. 新 RM 再回到第 1 步,指导下一轮数据迭代、RL 训练和推理选择。

关键在于这个循环每一段都用上了:预训练语料是 Qwen2-Math-Instruct 造的;SFT 数据由 RM 筛;RL 的奖励一半来自 RM;连推理时的 best-of-N 选择都由 RM 打分。一个 RM 贯穿全流程,这是它和”训个 RM 只做最后一步 RL”的常规做法最大的区别。

2. 奖励模型怎么训#

Qwen2.5-Math-RM 的训练数据:36.1 万英文题 + 25.7 万中文题,每题配 6 条候选回答(从不同版本、不同尺寸的模型采样,用来平衡难度)。偏好标签的构造简单粗暴但有效:对照标准答案,答对的标正、答错的标负,全对或全错的题直接扔掉——因为这些题没有区分度。

结构上,RM 从 SFT 模型初始化,把语言建模头换成一个两层线性层的标量打分头,训练用 listwise 排序损失——不是把 6 条回答拆成 pair,而是直接在有效 pair 上算 ranking loss。

3. RM 推理时有多值钱#

推理阶段用 RM 做 best-of-N 重排(rm@N),效果全面压过朴素的多数投票(maj@N)。挑几个英文 MATH 的数字:

模型(72B-Instruct)pass@1maj@8rm@8
CoT85.988.689.8
TIR88.191.892.9

TIR + rm@8 在 MATH 上拿到 92.9——同样的模型,多采样 8 条再让 RM 挑一条,就比贪心解码高了近 5 分。RM 在这里不是训练时的配角,而是推理时的性能放大器。

五、训练细节:SFT、RM、GRPO 一条龙#

1. SFT#

CoT 和 TIR 数据联合训练,3 个 epoch,序列长 4096。72B 用 batch size 256、学习率 5e-6;1.5B/7B 用 batch size 128、学习率 2e-5,最后都衰减到 7e-7。中规中矩,没有玄学。

2. RL:GRPO + 精心挑题#

强化学习用的是 GRPO(Group Relative Policy Optimization)——DeepSeekMath 带火的方案:不训 value function,对同一个 query 采一组回答,用组内 reward 的均值和标准差归一化出 advantage,再摊到每个 token 上。实现基于 ChatLearn,每 query 采 32 条回答,KL 系数 1e-3。

但真正见功夫的是 query 筛选:拿不同尺寸的 SFT 模型对 RM 训练集每题重采 8 条回答,对照答案判对错,只保留 8 条里恰好对 2~5 条的题——对太少(<2)说明模型现在学不会,对太多(>5)说明已经会了没有训练价值。筛完剩 6.6 万道题。这就是”最近发展区”思路:只练跳一跳够得着的题。

3. 奖励塑形:规则校验兜底,RM 排序#

reward 由两部分拼成:

r = σ(α · rm) + (rv − 1),其中 α = 0.5

rv 是规则校验器(答案对 = 1,错 = 0),rm 是奖励模型的连续分数。这个设计保证任何正确回答的总分一定高于任何错误回答(正确答案下限 > 错误答案上限),然后在正确组、错误组内部再按 RM 分数排序。既避免了 RM 打分漂移导致”过程漂亮但答案错”被奖励,又保留了过程级的细粒度信号。

TIR 的 RL 里,Python 解释器输出的 token 全部 mask——前面说过,这个细节值得抄。

六、成绩单:高考 88.5 分,碾压 GPT-4o#

1. 中文:高考数学 88.5 分#

据官方团队博客,Qwen2.5-Math-72B-Instruct 用 TIR 模式在 2024 年中文高考数学卷上拿到 88.5 分。论文内的中文基准(GaoKao 综合 + CMATH + CN Middle School 24)上,72B-Instruct 的 CoT 平均 82.7,TIR rm@8 平均 83.1,而 GPT-4o 的中文平均只有 65.2——差了 17.5 分,这不是误差,是断层。

2. 英文:7 项基准平均 68.2 vs GPT-4o 的 62.0#

英文 CoT pass@1,72B-Instruct 平均 68.2,GPT-4o(2024-08-06)62.0。单项看:MATH 85.9 vs 81.1、Minerva Math 44.1 vs 36.8、OlympiadBench 49.0 vs 43.3,全面领先。

3. 对比 DeepSeekMath:同尺寸下的降维打击#

和同为 7B 的 DeepSeekMath-7B-RL 比:

指标Qwen2.5-Math-7B-InstructDeepSeekMath-7B-RL
MATH(英文 CoT)83.652.4
英文 7 项平均62.946.6
OlympiadBench41.619.0

MATH 上 31 分的差距。DeepSeekMath 证明了 GRPO 路线可行,Qwen2.5-Math 则证明了”数据迭代 + TIR + RM 全流程”能把同尺寸天花板再抬高一大截。

4. 竞赛题:TIR + RM 采样是核武器#

AIME24(30 题)和 AMC23(40 题)上,对比最刺眼:GPT-4 Turbo 只能解 1/30,Gemini 1.5 Pro 2/30,而 Qwen2.5-Math-72B-Instruct:

  • CoT 贪心:9/30;TIR 贪心:12/30
  • TIR + rm@256:19/30
  • AMC23 上 TIR + rm@256:39/40,接近满分。

更吓人的是 1.5B:TIR + rm@256 在 AIME24 上解出 19/30——和 72B 打平。小模型 + 工具 + 大规模重排采样,硬是把竞赛题拉到了旗舰水平。

5. Base 模型也在偷偷进化#

7B base 在 GSM8K / MATH / 高考填空上做到 91.6 / 55.4 / 57.6,已经超过自家 Qwen2-72B base(89.5 / 51.1 / 55.9);72B base 的 MATH 从上一代 60.5 涨到 66.8。专项继续预训练的价值,base 层就看得见。

七、所谓”数学 scaling law”:数据和工具在替代参数#

报告没有给出幂律公式,但数据本身讲了一个更实在的故事:

  1. 7B 追平上一代 72B:Qwen2.5-Math-7B-Instruct 的 CoT MATH 83.6,几乎等于 Qwen2-Math-72B-Instruct 的 84.0;英文平均 62.9 对旧旗舰 65.7,只差 2.8。
  2. 1.5B 逼近旧 72B:1.5B-Instruct 中文平均 76.1,贴着 Qwen2-Math-72B-Instruct 的 76.6。
  3. 工具对小模型收益最大:TIR 让 1.5B 的 MATH 提升 4.1 分,远超 72B 的 2.2 分。

换句话说,在数学这个垂类上,“更多参数”的边际收益正在被”更好的数据 + 更强的工具 + 更精的采样”吃掉。这大概就是标题从”Scaling Law”改成”Self-Improvement”的原因——团队最后发现,真正能稳定复现的规律不是参数幂律,而是自我改进闭环的迭代收益。

收尾:我的一点看法#

第一,TIR 是被低估的路线。 现在大家一提推理模型就是 o1 式的长 CoT,但 Qwen2.5-Math 在 2024 年 9 月就证明了:给模型一个 Python 解释器,比让它多堆几千 token 的思维链划算得多。计算错误是”确定性损失”,工具能把它清零;而推理能力的提升是”概率性收益”,贵且慢。后来 Qwen3、DeepSeek 都在往”推理 + 工具调用”融合走,回头看这篇报告是押对了方向的。

第二,自我改进闭环的本质是把 RM 变成了基础设施。 大多数团队训 RM 只是为了 RLHF 的最后一步,这篇报告里 RM 干了四件事:筛 SFT 数据、定 RL 奖励、训 RL 策略、推理时挑答案。一个组件贯穿全流程,每一轮迭代都在复利。这个架构思路比任何单点数字都更值得借鉴。

第三,它的局限也要看到。 上下文只有 4K,放到今天的长思维链时代明显偏短;中文场景下 TIR 相对 CoT 完全没有英文那样的增益(pass@1 平均 79.9,反而低于 CoT 的 82.7),说明 TIR 数据和中文数学语料的结合还没吃透;竞赛题的好成绩高度依赖 rm@256 这种 256 次采样,推理成本是贪心解码的两百多倍,落地时得掂量。

第四,它给”垂直专家模型”留了一个开放问题。 用领域数据 + 领域工具 + 自我迭代,能不能把这套配方复制到物理、化学、金融?Qwen2.5-Math 证明了数学上行。但数学的特殊性在于:答案可验证(规则校验器免费)、计算可外包(Python 现成)。换到答案模糊的领域,这个闭环还能不能转起来,就是后话了。

附:核心数据速查#

关键成绩表#

指标成绩设置
中文高考 2024 数学88.5 分72B-Instruct,TIR(官方博客)
MATH(英文)92.972B-Instruct,TIR + rm@8
MATH(英文 CoT pass@1)85.9 / 81.1Qwen2.5-Math-72B-Instruct / GPT-4o
英文 7 项平均(CoT)68.2 / 62.0Qwen2.5-Math-72B-Instruct / GPT-4o
中文 3 项平均(CoT)82.7 / 65.2Qwen2.5-Math-72B-Instruct / GPT-4o
MATH(7B CoT)83.6 / 52.4Qwen2.5-Math-7B / DeepSeekMath-7B-RL
AIME2419/3072B-Instruct,TIR + rm@256
AMC2339/4072B-Instruct,TIR + rm@256
AIME24(1.5B)19/301.5B-Instruct,TIR + rm@256(与 72B 持平)
MATH(1.5B TIR)79.9小模型靠工具逼近 80
Base MATH(72B)66.8(上代 60.5)few-shot CoT

数据工程速查#

项目规模
预训练语料 v1 / v2700B / 1T+ tokens
CoT SFT query58 万英文 + 50 万中文
CoT SFT response200 万英文 + 50 万中文
TIR SFT query19 万标注 + 20.5 万合成(另 7.5 万中译)
RM 训练数据36.1 万英文 + 25.7 万中文题,每题 6 条候选
RL query6.6 万(8 次采样对 2~5 条才保留)
去污染规则13-gram 匹配 + 最长公共子序列 > 0.60

概念清单#

  • TIR(Tool-Integrated Reasoning):边推理边调用 Python 解释器执行代码,看到结果再继续,弥补计算和符号运算短板
  • CoT(Chain-of-Thought):自然语言逐步推理
  • PoT(Program-of-Thought):一次性生成完整程序再执行
  • Self-Improvement Loop:旧模型造数据 → 校验器 + RM 筛选 → SFT 出更强模型 → 训更强 RM → 循环
  • GRPO(Group Relative Policy Optimization):免 value function 的 RL,用组内均值标准差归一化 advantage
  • 拒绝采样 / online RFT:反复采样只保留答案正确的路径,滚动微调
  • 加权多数投票(weighted majority voting):无标准答案的合成题,用投票推断正确路径
  • 难度打分模型(difficulty-scoring model):给题打难度分,控制训练集难度分布
  • rm@N / maj@N:采样 N 条后由 RM 重排选最优 / 多数投票选答案
  • Reward Shaping:r = σ(0.5·rm) + (rv−1),规则校验兜底、RM 组内排序
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Qwen2.5-Math:7B 追平 72B
https://mizuki-eaf.pages.dev/posts/qwen/qwen25-math7b-追平-72b/
作者
无名之子
发布于
2026-07-11
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录