← 返回 2026-05-13

用代码思考:让大语言模型以代码为中心进行数学推理 Teaching Language Models to Think in Code

Hyeon Hwang, Jiwoo Lee, Jaewoo Kang 📅 2026-05-11 👍 31 2026-07-13 08:36
GRPO 代码生成 工具增强推理 强化学习 思维链 数学推理

THINC框架让代码本身成为推理主体,4B模型击败235B基线

前置知识

工具集成推理(Tool-Integrated Reasoning, TIR)

TIR是一种让语言模型在生成过程中调用外部工具(如Python解释器)的推理范式。标准TIR轨迹形如 $\tau_{TIR} = (q, t_1, c_1, o_1, t_2, c_2, o_2, \ldots, t_N, c_N, o_N, a)$,即自然语言思考 $t_i$ 与代码块 $c_i$ 交替出现,$o_i$ 为解释器执行输出。代表性工作包括PAL、PoT、ReTool、ASTER、Tool-Star等。

本文的核心创新建立在批判TIR现有范式之上,必须理解TIR的多轮NL+code交互结构才能体会THINC把NL从中间移除的设计意图。

监督微调(Supervised Fine-Tuning, SFT)与轨迹蒸馏

SFT通过在带标签数据上做下一token预测损失 $\mathcal{L}_{SFT}(\theta) = -\mathbb{E}_{\tau \sim D_{SFT}}\sum_k m_k \log \pi_\theta(x_k|x_{<k})$ 来适配预训练模型。轨迹蒸馏指用强教师模型在少样本提示下生成推理轨迹,再以这些轨迹为监督数据训练学生模型,是TIR领域常用的数据构造方式。

THINC的三阶段训练中的前两步(轨迹蒸馏+SFT)正是这一范式,论文明确给出学习率 $7\times 10^{-6}$、3 epoch、batch size 16等超参,并强调蒸馏质量过滤准则(正确性、无执行错误、≥3个代码块、规划token占比<50%)。

GRPO与可验证奖励强化学习

Group Relative Policy Optimization(GRPO)是一种免评论家(critic-free)的策略梯度算法。对每个问题 $q$ 采样 $G$ 条轨迹,用组内奖励均值 $\mu_q$ 和标准差 $\sigma_q$ 计算优势 $A^{(g)} = (r^{(g)} - \mu_q)/\sigma_q$。可验证奖励指用ground-truth答案做精确匹配 $r(\tau) = \mathbb{1}[a(\tau) = a^\star(q)]$,无需训练奖励模型。本文使用DAPO改进版(token级归一化、非对称clip $\epsilon_{low}=0.20 < \epsilon_{high}=0.28$、无KL惩罚)。

THINC第三阶段用GRPO在DAPO-Math-17k上分3阶段训练(16K→16K→32K上下文,20→20→40次工具调用),带来最终29.9(4B)和24.6(1.7B)个百分点的精度提升,是论文的核心训练方法。

Qwen3系列基座模型

Qwen3是阿里发布的开源LLM系列,覆盖1.7B到235B等多种规模。其中Qwen3-4B-Thinking-2507是带思维链的4B模型,Qwen3.5-27B是本文蒸馏用的教师模型。Qwen3-235B-A22B-Thinking是235B参数的强NL推理基线。

THINC建立在Qwen3-1.7B和Qwen3-4B-Thinking-2507之上,需要了解其推理特性才能理解为何4B模型能超越235B的NL推理基线。

研究动机

当前主流的工具集成推理(TIR)范式将自然语言(NL)思考与代码块交替使用,但作者通过具体案例(图1)揭示了该范式存在三种结构化缺陷。第一是事后验证(post-hoc tool verification):模型先用NL推导得到答案,再调用代码确认,例如解 $x^2-7x+10=0$ 时NL算出 $\alpha^2+\beta^2=29$ 后才写 `assert sum(r**2 for r in roots) == 29`,解释器未贡献任何新计算。第二是不可靠的NL中间计算:模型在NL中做算术时若出错(如 $500\times 0.12=50.0$ 而非 $60.0$),错误会以硬编码常量形式潜入代码块,解释器无法察觉并默默传播。第三是角色错配:NL逐步铺陈算法,代码只是把NL描述翻译成Python,二者做着同样的事,没有真正分工。ASTER-4B虽然设计了密集工具调用,但仍是NL与代码交替;ReTool-32B虽然用RL优化工具策略,依然存在上述三类失败。

本文的目标是本文提出THINC(Thinking in Code)框架,目标是让代码本身成为数学推理的主体(reasoner),而不是NL推理调用的工具(tool)。具体而言,THINC要求模型在每条轨迹的开头用一段简短的NL做高层规划(strategy),之后所有推理都通过代码块执行完成,代码块之间仅靠执行输出 $o_i$ 串联,NL不再介入中间步骤。这一结构应当能(i)让解释器真正参与推导而非仅作验证,(ii)保证所有中间数值都经过解释器验证,(iii)恢复NL(高层规划)与代码(精确推导)的清晰分工。最终在五项竞赛级数学基准上达到SOTA。

与已有工作不同的是,现有TIR改进工作(如ReTool聚焦RL工具策略、ASTER强调密集工具调用、Tool-Star扩展多工具协作)都在如何更好地把工具塞进NL推理这一框架内打转,没有动摇NL主导这一前提。THINC的独特切入角度是从轨迹结构本身出发做减法:把NL限制在最开头的一次规划步骤,中间完全交给代码。这种格式优先(format-first)的设计与同样使用Qwen3-4B-Thinking-2507基座和GRPO训练的ASTER-4B形成天然消融,可在matched条件下直接比较代码成为主体这一设计选择本身的价值。作者还通过Recovery@k实验显示,移除NL中间步骤反而让模型在多次代码执行失败后保持64-69%的恢复率,远高于所有interleaved TIR基线。

核心方法

THINC的核心直觉是:编程语言和数学一样是符号系统,变量、运算、函数都直接对应数学对象,因此代码天然适合做精确的多步推导,而不是仅作NL推理的附属品。技术上THINC是一条三阶段流水线——先用少样本提示从教师模型Qwen3.5-27B蒸馏12.2k条代码中心轨迹,再用这些轨迹对Qwen3-1.7B和Qwen3-4B-Thinking-2507做SFT以建立格式先验,最后在DAPO-Math-17k上用GRPO分3阶段继续训练。整个框架的关键不是新算法,而是新的轨迹结构 $\tau_{ThinC} = (q, t_1, c_1, o_1, c_2, o_2, \ldots, c_N, o_N, a)$:仅保留首段规划 $t_1$,中间全部为代码块,块间仅靠执行输出串联。

与已有TIR最本质的区别不在于工具使用频率或RL算法,而在于轨迹的语种分配。TIR让NL在每一步都做思考 $t_i$,代码仅在NL认为需要精确计算时出现;THINC反之,把NL锁死在开头一次规划,剩余所有推理表达、推导、验证、修正都通过代码完成。这意味着:(i)每段代码都必须自己跑得动,不能依赖上一段NL的上下文来理解意图;(ii)所有中间数值都是解释器产物,不可能存在NL算错后悄悄硬编码到代码中的情况;(iii)代码量大幅增加(平均349行/轨迹 vs ASTER的102行),因为所有推理细节都得由代码承载。这种格式甚至让SFT前的过滤准则中明确要求 $|t_1|/\tau < 0.5$,强制代码为主体。

方法步骤详情

THINC的实现分三步。第一步是THINC-SFT数据构造:从Skywork-OR1和OpenMathReasoning抽取英文整数答案问题,用3-shot提示让Qwen3.5-27B按 $\tau_{ThinC}$ 结构生成轨迹,每题采样1条,然后按四准则过滤——(i)答案正确、(ii)所有代码块无解释器错误、(iii)至少3个代码块、(iv)规划token占比 $|t_1|/\tau < 0.5$,最终得到12,200条THINC-SFT数据集。第二步是SFT:分别对Qwen3-1.7B和Qwen3-4B-Thinking-2507在32K上下文、学习率 $7\times 10^{-6}$ cosine schedule、global batch size 16、3 epoch下做全token(含执行输出 $m_k=1$)的SFT,得到THINC-1.7B-SFT和THINC-4B-SFT。第三步是RL:在DAPO-Math-17k上用GRPO,Clip-Higher($\epsilon_{low}=0.20$, $\epsilon_{high}=0.28$),无KL惩罚,每prompt采样G=8条轨迹。RL分三阶段——Stage 1在16K上下文、20次工具调用上限下跑280步(约2 epoch);Stage 2过滤掉Stage 1已100% pass的题,继续在16K/20次工具下跑120步(结束于step 400);Stage 3在32K上下文、40次工具调用下继续跑至结束(≥100步)。三阶段通过逐步增加上下文预算让模型能处理更难的题。

技术新颖性

技术新颖性体现在三个层面。第一是格式层面的范式转移:把TIR从NL主导+code补充变成一次NL规划+code主体,并通过硬性数据过滤准则 $|t_1|/\tau < 0.5$、至少3个代码块把这一格式固化在训练数据中。第二是评测设计上的精细化:除了avg@16主指标外,提出Code-Grounded Answer Rate(99.2% vs rStar2的49.9%、ReTool的88.4%)和Recovery@k(连续k次代码失败后的恢复率)两个诊断指标,前者衡量最终答案是否真的由代码产出,后者衡量格式本身带来的鲁棒性。第三是消融的天然性:与同基座同教师同RL的ASTER-4B直接对比,平均提升4.1个点且推理成本更低(6.1 vs 11.1次工具调用,13.5k vs 15.4k token),说明增益确实来自格式而非规模或算法。

Comparison of interleaved TIR (left) and THINC (right)
Figure 2: Comparison of interleaved TIR (left) and THINC (right)

实验结果

在AIME 2024-2026、HMMT 2025 February、BeyondAIME五项竞赛级基准上,THINC-4B平均78.1%为SOTA,THINC-1.7B平均42.8%。具体到每个基准:THINC-4B在AIME 2024得88.3(仅低于Qwen3-235B的90.6,高于ASTER的78.8)、AIME 2025得85.8(高于ASTER的84.6、Qwen3-235B的80.6)、AIME 2026得86.0(高于所有基线)、HMMT 2025得74.0(高于ASTER的73.1)、BeyondAIME得56.1(高于ASTER的54.0),五项中四项第一。相对同基座、同RL的ASTER-4B平均高4.1个点;相对Qwen3-235B-A22B-Thinking平均高2.9个点;甚至超过其蒸馏教师Qwen3.5-27B带3-shot prompt(64.7)平均13.4个点。THINC-1.7B相比Qwen3-1.7B基座提升10.6个点(42.8 vs 32.2),相比加了工具的Qwen3-1.7B*提升13.0个点。训练动力学(图3)显示SFT阶段因格式冷启动出现暂时下滑(THINC-4B-SFT 48.1% vs 教师64.7%),但RL在三阶段平滑爬升到88.3%,且响应长度稳定在7-11K。诊断实验(图4)显示THINC-4B平均每条轨迹写349行代码(远高于ASTER 102、CoRT 40),99.2%最终答案可在某次执行输出中找到。Recovery@k实验(图5)显示连续k次代码失败后,THINC在k=1,2,3保持64-69%恢复率,k=4,5仍达54.5%和33.3%;ASTER从k=1的52.1%跌至k=5的18.5%,rStar2-Agent从39.1%崩塌到0%。

Comparison on AIME 2024, AIME 2025, AIME 2026, HMMT 2025 February, BeyondAIME, and their arithmetic mean
Table 1: Comparison on AIME 2024, AIME 2025, AIME 2026, HMMT 2025 February, BeyondAIME, and their arithmetic mean
Training dynamics
Figure 3: Training dynamics
Code-centric reasoning behavior measured on overall benchmarks
Figure 4: Code-centric reasoning behavior measured on overall benchmarks
Recovery@k under initial code failures
Figure 5: Recovery@k under initial code failures
查看结构化数据
任务指标本文基线提升
AIME 2024 avg@16 (32K token budget) 88.3 ± 8.8 Qwen3-235B-A22B-Thinking 90.6, ASTER-4B 78.8, Qwen3-4B-Thinking-2507 79.2 在4B规模上+9.5 vs ASTER-4B, +8.5 vs 同基座NL, 接近235B巨模型
AIME 2025 avg@16 (32K token budget) 85.8 ± 8.8 ASTER-4B 84.6, Qwen3-235B-A22B-Thinking 80.6, OpenReasoning-Nemotron-7B 73.1 +1.2 vs ASTER, +5.2 vs 235B-Thinking, 比同基座NL 73.1高12.7
AIME 2026 avg@16 (32K token budget) 86.0 ± 9.8 ASTER-4B 78.8, Qwen3-235B-A22B-Thinking 82.1, gpt-oss-20B 76.9 +7.2 vs ASTER, +3.9 vs 235B, 所有基线中最高
HMMT 2025 February avg@16 (32K token budget) 74.0 ± 12.7 ASTER-4B 73.1, Qwen3-235B-A22B-Thinking 68.8, ReTool-32B 47.1 +0.9 vs ASTER, +5.2 vs 235B, +26.9 vs ReTool-32B
BeyondAIME avg@16 (32K token budget) 56.1 ± 8.1 ASTER-4B 54.0, Qwen3-235B-A22B-Thinking 54.1, OpenReasoning-Nemotron-7B 38.6 +2.1 vs ASTER, +2.0 vs 235B, +17.5 vs 同基座NL 45.8
五项基准平均 (AIME24-26, HMMT25, BeyondAIME) avg@16 THINC-4B 78.1 / THINC-1.7B 42.8 Qwen3-235B-A22B-Thinking 75.2, ASTER-4B 73.8, Qwen3-4B-Thinking-2507 65.0 4B比235B NL巨模型高+2.9,比同基座同RL的ASTER高+4.1;1.7B比Qwen3-1.7B NL高+10.6,比CoRT-1.5B高+17.1

局限与改进

作者明确承认两点限制:其一,受算力约束实验仅覆盖1.7B和4B两个小规模,没有在10B+乃至70B+上验证THINC是否仍有效,文中虽提到4B即可击败235B但更大模型下格式增益是否仍存在未知;其二,评估仅限竞赛级数学,未涵盖其他工具推理场景(符号推理、表格问答、网页搜索等),因此THINC格式能否泛化到非数学领域是开放问题。除此之外可补充几点观察:SFT冷启动后精度反而下降(THINC-4B-SFT 48.1% < 教师64.7%、THINC-1.7B-SFT 18.1% < Qwen3-1.7B 30.2%),意味着单纯SFT无法获得增益,必须依赖RL,这意味着训练成本不低(3阶段RL约400+步GRPO,batch=128×G=8);论文报告使用3-shot蒸馏但未公开prompt全貌(仅在Appendix B提及full prompt),且未公开THINC-SFT数据集和模型权重(说Our code and models will be released soon),完整复现需要等待开源;32K上下文下AIME仍有提升空间(即使是THINC-4B也未在AIME 2024上超过235B),可能与单次规划 $t_1$ 在难题上信息密度不足有关。

独立分析的弱点

独立分析有四个潜在弱点。第一,SFT冷启动精度暴跌(THINC-1.7B-SFT仅18.1%,远低于基座32.2%),这意味着仅靠模仿蒸馏数据无法获得格式内化的能力,必须靠RL硬磨。如果RL阶段遇到困难(如某些问题所有8条轨迹全错导致group advantage为0),格式先验可能不收敛。改进方向是在SFT数据中混入部分interleaved轨迹作为warm-up,或在RL阶段加入针对代码块数量的过程奖励。第二,单次规划 $t_1$ 可能成为瓶颈——当问题极复杂时(如多步骤几何证明),把所有策略塞进一段NL中可能让规划本身出错,而后续代码因没有NL辅助无法自我纠正。改进方向是允许在关键节点插入短NL反思而不破坏格式主体(如AST-style注释)。第三,对执行环境的强依赖——99.2%答案来自代码意味着如果Python解释器环境受限(如沙箱禁用了某个库、或题目需用领域专用CAS),THINC会束手无策,而interleaved TIR至少可以用NL退化。改进方向是支持多解释器后端(Mathematica、Lean等)甚至让模型在缺乏工具时自动回退NL。第四,token效率有提升空间——THINC-4B平均轨迹13.5K token虽优于ASTER的15.4K,但仍比纯NL推理的Qwen3-4B-Thinking长不少,对部署时延敏感的场景不够友好。

未来方向

作者在结论中明确点出两个方向:(i)扩展到更大模型规模(≥10B、≥70B)验证格式增益是否仍存在且是否被规模主导;(ii)迁移到其他工具推理领域如符号推理、定理证明、表格问答、网页Agent等。基于结果还可延伸出几条线索:第一,把THINC格式用到多模态(如图像+代码),规划 $t_1$ 可包含对图像的描述,第二段起直接写调用VLM的代码;第二,研究代码块间通信效率,目前块间仅靠执行输出 $o_i$ 串联,可设计更结构化的代码中间状态协议(如命名变量+单元测试);第三,结合形式化工具(Lean、Coq)做定理级验证,把代码做reasoner推到证明做reasoner;第四,研究THINC的失败模式——为什么在BeyondAIME上仅56.1%而AIME 2024能达88.3%,是难度、题型分布、还是格式本身的局限;第五,把THINC格式与过程奖励模型(PRM)结合,让RL不只奖励最终答案正确性还奖励代码结构合理性。

复现评估

复现评估上,论文给出了相当完整的实验细节但仍有缺口。已公开部分:教师模型Qwen3.5-27B是开源的,基座Qwen3-1.7B和Qwen3-4B-Thinking-2507也开源,所有baseline(CoRT、DemyAgent、ASTER、rStar2-Agent、ReTool、Qwen3各版本)均开源可获取;超参数完全明确(学习率 $7\times 10^{-6}$、3 epoch、batch=16、32K上下文、GRPO的 $\epsilon_{low}=0.20$、$\epsilon_{high}=0.28$、$G=8$、batch=128、3阶段RL的步数与上下文扩展);评估协议完整(avg@16、32K budget、T=0.6、top-p=1.0、Python+numpy+scipy+sympy环境)。未公开部分:作者明确说Our code and models will be released soon,目前(论文成稿时)THINC-SFT 12.2k数据集、THINC-1.7B/4B模型权重、3-shot蒸馏完整prompt(仅说在Appendix B)都未发布;论文正文提到see Appendix A for a representative rollout和full prompt in Appendix B但arXiv版本未提供这两个附录的实质内容。算力门槛:SFT在Qwen3-4B上3 epoch用global batch 16需要数十至数百张A100/H100天;RL阶段400+步GRPO、每步采样1024条轨迹、32K上下文,是更大量的算力开销(论文未给出GPU小时数)。难度:完整复现需要等待权重和数据发布,短期可通过自建蒸馏数据+SFT+RL流水线尝试;部分消融(如仅做SFT、仅做Stage 1 RL)可在较少的8卡机器上完成。