《脚手架与摩天楼:数学思维不是靠写代码练出来的》
——解读 What Really Improves Mathematical Reasoning: Structured Reasoning Signals Beyond Pure Code
🎭 开场:建筑师与砌砖工
想象两个学建筑的人。
小明每天去工地,搬了三年砖。他对砖块的尺寸了如指掌,砌墙的手法炉火纯青。你给他一堆砖,他能砌出完美的墙。
小红花了一年时间学习结构力学、材料科学、建筑史。她没砌过多少墙,但她理解为什么墙要这样砌——力的传递、荷载的分布、美观与实用的平衡。
现在,让他们各自设计一座摩天楼。
谁会赢?
答案显而易见。小明可能在砌局部墙面上更快更稳,但小红能设计出经得起地震的、有美学价值的、功能合理的摩天楼。
今天这篇论文,讲的就是 AI 训练中的"小明与小红"问题——我们一直以为让 AI 多写代码就能让它更会推理,但真相是:推理能力来自结构化思考的训练,而不是代码本身。
🔬 我们在解决什么问题?
论文:Yuze Zhao, Xinran Zhang, Guoqiang Xu, Haonan Wang, Yikang Shen, Yining Ye, Zhezheng Ying, Jiaya Jia, Jian Zhao, Jingdong Wang. What Really Improves Mathematical Reasoning: Structured Reasoning Signals Beyond Pure Code. arXiv:2605.19762, 2026.
领域:AI / 大语言模型 / 数学推理 / 数据工程
背景:"代码提升推理"的神话
在 AI 圈,有一个几乎成为共识的信念:在预训练数据中加入代码,能让大模型变得更擅长推理。
这个信念的来源看似合理:
- 代码本身就是逻辑严密的结构化语言
- 写代码需要逐步推导、条件判断、循环迭代——这不就是推理吗?
- GPT-4、Claude 等强推理模型确实都在大量代码上训练过
于是,各家公司疯狂爬取 GitHub、Stack Overflow,把代码当作"推理能力的肥料"往模型里灌。
但这篇论文问了一个极其重要却被忽略的问题:
"到底是代码本身提升了推理,还是代码数据中的某种其他东西在起作用?"
📚 基础概念:预训练数据的"黑箱"
1️⃣ 预训练 = 通读人类知识
大语言模型的预训练,本质上就是让模型"阅读"互联网上的海量文本。这个过程没有明确的"课程表",模型自己从统计规律中学习。
2️⃣ 代码数据的复杂性
"代码数据"不是一个单一品类。它至少包含:
- 纯代码:Python、Java、C++ 等可执行程序
- 代码注释:解释代码功能的自然语言
- Code-NL 混合:Stack Overflow 上的问题与答案(既有解释又有代码片段)
- Math-Code 混合:数学论文中的算法描述
- Math-Text 混合:数学教材、推导过程
3️⃣ 混淆变量问题
如果我在预训练中加入代码,同时模型推理变强了,能说是"代码"的功劳吗?
不一定。因为代码数据通常伴随着:
- 大量技术文档(自然语言解释)
- 结构化推理痕迹("首先……然后……因此……")
- 数学相关内容(算法分析、复杂度证明)
这些伴随物本身可能就是推理能力提升的真正来源。
💡 核心实验设计:精密的变量控制
这篇论文最精彩的地方在于它的实验设计。研究者没有简单比较"有代码 vs 无代码",而是做了一个 10T token 的大规模预训练实验,精细控制了每一个变量。
实验架构
他们构建了一个具有细粒度域分离的语料库,把数据分成多个"纯净"的桶:
| 数据类型 | 说明 |
|---|---|
| 纯代码 (Code) | 可独立执行的程序 |
| 自然语言代码 (Code-NL) | 带解释的技术文档 |
| 纯数学文本 (Math-Text) | 数学推导、定理证明 |
| 数学-文本混合 (Math-Text Mix) | 数学教材、逐步解题过程 |
| 数学-代码混合 (Math-Code Mix) | 数学论文中的算法 |
| 通用文本 (General) | 维基百科、新闻等 |
然后,他们系统地改变各个域的比例,观察模型在不同任务上的表现变化。
🔢 三个颠覆性发现
📊 发现一:纯代码 ≠ 通用推理增强剂
实验结果令人震惊:
当代码被限制为纯可执行程序,并且 Code-NL 数据被严格控制时——代码大幅提升了编程能力,但并没有充当通用推理增强剂。
换句话说,让 AI 读更多 Python 脚本,它确实更擅长写 Python,但并不会因此变得更擅长解数学题或做逻辑推理。
更糟的是,代码训练甚至与知识密集型任务存在竞争关系——尤其是复杂数学推理。模型在某个领域的"砖砌得太好",挤占了学习"结构设计"的资源。
📊 发现二:真正的功臣是"结构化推理痕迹"
那到底是什么让"代码模型"看起来推理更强?
答案是:跨域的结构化推理痕迹,比如 code-text 和 math-text 的混合数据,而不是可执行代码本身。
这些混合数据有什么共同点?它们都包含逐步展开的推理过程:
- "首先,我们观察到……"
- "接下来,假设……"
- "由此可得……"
- "因此,结论是……"
这种显式的推理脚手架——而不是代码语法——才是模型学习推理的真正教材。
📊 发现三:数学域内的结构化密度是关键
论文的第三个发现更加精确:
在固定的数学预算内,增加结构化数学样本的密度,能在困难的数学推理任务上取得显著增益,同时基本保持编程性能。
这意味着:与其给模型灌 1000 亿 token 的杂散代码,不如给它 100 亿 token 高质量的逐步数学推导——后者对数学推理的效果更好,而且不损害其他能力。
🧬 机制证据:专家激活模式
论文还做了路由分析(routing analyses),发现:
- 数据组成的变化,确实反映在模型的专家激活模式中
- 当模型在代码和数学之间"切换"时,不同的"专家"(子网络)被激活
- 这提供了机制层面的证据:跨域能力之间存在竞争性和协同性的复杂互动
也就是说,模型的内部结构告诉我们:它不是一块均匀的海绵,把什么都一样吸收。它有专门化的区域,代码训练和数学训练在争夺这些区域的"使用权"。
🧩 深层启示:数据中心的优化策略
这篇论文的影响是深远的。它从根本上改变了我们思考"如何训练推理模型"的方式:
1️⃣ 从"堆量"到"调结构"
以前:多堆代码数据,推理自然好。 现在:精心调配结构化推理信号的比例,比无脑堆量更有效。
2️⃣ "脚手架"理论
这个发现支持了一个更广泛的认知科学观点:学习复杂技能的关键,不是练习最终形态(写代码),而是练习中间结构(推理过程)。
就像:
- 学音乐,练音阶(结构)比直接弹曲子(成品)更能培养即兴能力
- 学写作,拆解好文章的逻辑结构比背诵范文更能培养创作力
- 学数学,理解证明过程的"为什么"比记住公式更能培养解题能力
🎭 费曼视角:知道名字 ≠ 知道东西
费曼在巴西讲学时,发现学生们能流利地背诵物理名词和公式,但完全不理解物理现象。他说:
"我看到了很多人知道一大堆术语,但完全不知道这些东西是什么。"
这篇论文揭示的,正是 AI 训练中的"巴西物理学生"问题:
模型能"背诵"代码(生成语法正确的程序),但如果训练数据缺少显式的推理结构,它并没有真正学会"思考"——它只是一个超级能干的砌砖工,不是建筑师。
🎯 为什么是这篇论文?
- 戳破泡沫:它用严格的实验推翻了"代码=推理"的行业迷思
- 指明方向:它告诉我们,提升推理能力的关键是结构化推理数据,而不是代码量
- 实用价值:它提供了具体的数据配比策略,对下一代模型的训练有直接指导意义
📚 参考文献
Zhao, Y., Zhang, X., Xu, G., Wang, H., Shen, Y., Ye, Y., Ying, Z., Jia, J., Zhao, J., & Wang, J. (2026). What Really Improves Mathematical Reasoning: Structured Reasoning Signals Beyond Pure Code. arXiv preprint arXiv:2605.19762.
"砌一万面墙,你仍是砌墙匠;理解一面墙的力学,你才是建筑师。" 🏗️
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。