DeepMath:轻量级数学推理智能体

Intel AI 软件团队发布了 DeepMath,这是一个基于 Qwen3-4B Thinking 微调、并采用 GRPO(Group Relative Policy Optimization) 进行对齐的数学推理智能体(Agent)。与生成冗长文本不同,该模型会生成微小的 Python 代码片段作为中间步骤,在安全沙箱中运行它们,并将结果反馈到其推理过程中,从而减少错误并缩短输出长度。该智能体使用 smolagents 库 实现。
我们在四个数学数据集上评估了 DeepMath:MATH500、AIME、HMMT 和 HLE,结果显示:
- 🤖 仅使用智能体(Agent)模式,输出长度最多减少 66%,同时准确性通常有所提升。
- ⚡ GRPO 训练进一步提升了智能体在几乎所有基准测试中的性能。
👉 代码和评估脚本:https://github.com/IntelLabs/DeepMath 👉 模型:https://huggingface.co/Intel/deepmath-v1
为什么需要 DeepMath?
大语言模型(LLM)具备先进的推理能力,但数学问题求解仍然具有挑战性;思维链(Chain-of-Thought)轨迹可能冗长且容易出现算术错误。近期研究[^1][^2]表明,小模型也能达到很强的性能,而其他研究[^3]则探索了使用工具(Tool Use)来提高可靠性。这些论文通常没有强调的是减少轨迹的冗长性,或者明确训练模型偏好简短、面向计算的轨迹,并在受约束、可审计的环境中执行。
我们专注于两个目标:
- 将确定性计算卸载到安全的执行器中。
- 训练模型偏好简洁、面向计算的轨迹,而非冗长的文本。
DeepMath 通过结合一个小型 Python 执行器与微调后的 LLM 来解决这个问题,实现了简洁、计算驱动的推理。模型学习生成简短的 Python 代码片段,这些片段在沙箱中执行并重新整合到上下文中。GRPO 微调通过奖励正确性和鼓励更短的输出来强化这种行为。
DeepMath 如何工作?
-
基础模型:Qwen3-4B Thinking。
-
执行器约束:沙箱环境、允许导入的模块白名单、每个代码片段的执行超时。
-
推理:基于 smolagents 创建数学智能体。使用 vLLM 作为推理引擎。
-
训练:基于 TRL 中的 GRPO 训练器,我们修改了 TRL 的 vLLM 客户端和服务器,以使用我们的 DeepMath 智能体生成 GRPO 候选结果。
-
智能体接口:在推理过程中,模型可以输出普通 token 或包含 Python 代码片段的特殊智能体调用。
-
执行:代码片段在具有严格安全约束的沙箱环境中运行(无文件 I/O、无网络、超时限制)。
-
设计目标:
- 简洁性:用简短、聚焦的代码片段替代多行文本计算。
- 确定性与安全性:强制执行严格的执行限制。
- 可解释性:代码片段可读且可审计。
使用 GRPO 进行训练
我们使用 GRPO 对模型进行微调,这是一种基于奖励的优化,平衡了以下因素:
- 准确性奖励:答案正确 +1 分。
- 使用代码片段:生成代码片段 +1 分,其权重是准确性奖励的 10:1。
- 长度缩减:通过将 GRPO 候选结果限制在 5k token 以内来鼓励更短的输出。
- 温度调度:我们实现了线性温度调度(T=1.2 → T=0.7),以在训练期间平衡探索和稳定性。这种方法旨在增强初始训练阶段的实验性,随后随着我们对技能的熟练掌握而降低温度。
- 上下文学习:我们包含了 4 个已解决的示例,其中轨迹包含智能体调用和执行器输出,以便模型学习语法和调用/响应模式。
- 数据集:我们使用了 OpenMathReasoning 数据集的工具集成推理(TIR)子集。请注意,GRPO 只使用数据中的问题,而不使用解决方案。选择此数据集是为了确保问题能从外部工具中受益。
评估结果
我们在四个数据集上对 DeepMath 与基线模型进行了基准测试。指标包括:
-
majority@16:跨样本的鲁棒性,如先前数学推理工作中所用。
-
平均输出长度:简洁性。
-
我们比较了基线配置(Qwen3-4B-Thinking-2507,无智能体模式)与我们的 DeepMath 模型。作为消融实验,我们评估了我们开发的智能体框架与未经训练的 Qwen3 模型一起运行的情况,记为 +Agent。此外,我们还检查了 GRPO 训练(针对智能体使用)是否改善了非智能体推理,记为 +GRPO。因此,这两个消融实验是独立的,而非叠加的。
-
我们观察到智能体推理减少了输出长度,但准确性结果好坏参半。DeepMath 模型既经过 GRPO 训练,又以智能体模式运行,显示出最高的准确性和缩短的轨迹。我们得出结论:要获得最佳结果,GRPO 训练和智能体推理两者都是必需的。
关键洞察:DeepMath 将输出长度最多减少 66%,同时在具有挑战性的数据集上提高了准确性。
为什么这很重要?
- 准确性:卸载计算减少了算术错误。
- 效率:更短的输出意味着更快的推理和更容易的可解释性。
- 安全性:沙箱执行降低了运行任意代码的风险。
结论
DeepMath 展示了一种实用且轻量级的方法,将小型执行器与 LLM 结合,并训练模型偏好简短、计算驱动的轨迹。卸载确定性计算减少了算术和数值错误,并缩短了轨迹,而 GRPO 微调进一步鼓励了简洁、正确的答案。其结果是一个更准确、更易解释的数学求解智能体,无需庞大的模型或重量级的外部工具。
亲自尝试
查看 GitHub 仓库 并分享你的反馈!欢迎贡献。🚀
引用
如果你在研究中使用了 DeepMath,请引用:
@software{deepmath2025,
author = {Fleischer, Daniel and Berchansky, Moshe and Wasserblat, Moshe},
title = {DeepMath: A Lightweight Math Reasoning Agent for LLMs},
year = {2025},
publisher = {Intel AI Labs},
url = {https://github.com/IntelLabs/DeepMath}
}
局限性与未来工作
- 范围:我们专注于小模型和数学推理。
- 泛化性:在竞赛风格数学问题上进行了评估;结果可能无法迁移到开放式数学创造力或形式化证明。
- 执行生成的代码本质上是存在风险的。DeepMath 使用严格的沙箱化和资源限制,但任何部署都应仔细管理攻击面并强制执行速率限制。
参考文献
[1] Luo, Michael, Sijun Tan, Justin Wong, et al. 2025. “DeepScaleR: Surpassing O1-Preview with a 1.5B Model by Scaling RL.” https://pretty-radio-b75.notion.site/DeepScaleR-Surpassing-O1-Preview-with-a-1-5B-Model-by-Scaling-RL-19681902c1468005bed8ca303013a4e2
[2] Liu, Mingjie, Shizhe Diao, Ximing Lu, et al. 2025. “ProRL: Prolonged Reinforcement Learning Expands Reasoning Boundaries in Large Language Models.” arXiv:2505.24864. Preprint, arXiv, May 30. https://doi.org/10.48550/arXiv.2505.24864
[3] Moshkov, Ivan, Darragh Hanley, Ivan Sorokin, et al. 2025. “AIMO-2 Winning Solution: Building State-of-the-Art Mathematical Reasoning Models with OpenMathReasoning Dataset.” arXiv:2504.16891. Preprint, arXiv, April 23. https://doi.org/10.48550/arXiv.2504.16891
觉得有用?分享给更多人