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

深度Hugging Face2025年12月4日5 分钟阅读
DeepMath:轻量级数学推理智能体
Intel AI 推出 DeepMath,一个基于 Qwen3-4B Thinking 微调的数学推理智能体(Agent)。它通过生成简短的 Python 代码片段,在沙箱中执行计算,将结果反馈给模型,从而减少错误并缩短输出长度。在四个数学数据集上的评估显示,输出长度最多减少 66%,同时准确性通常有所提升。

Intel AI 软件团队发布了 DeepMath,这是一个基于 Qwen3-4B Thinking 微调、并采用 GRPO(Group Relative Policy Optimization) 进行对齐的数学推理智能体(Agent)。与生成冗长文本不同,该模型会生成微小的 Python 代码片段作为中间步骤,在安全沙箱中运行它们,并将结果反馈到其推理过程中,从而减少错误并缩短输出长度。该智能体使用 smolagents 库 实现。

我们在四个数学数据集上评估了 DeepMath:MATH500AIMEHMMTHLE,结果显示:

  • 🤖 仅使用智能体(Agent)模式,输出长度最多减少 66%,同时准确性通常有所提升。
  • ⚡ GRPO 训练进一步提升了智能体在几乎所有基准测试中的性能。

👉 代码和评估脚本:https://github.com/IntelLabs/DeepMath 👉 模型:https://huggingface.co/Intel/deepmath-v1

为什么需要 DeepMath?

大语言模型(LLM)具备先进的推理能力,但数学问题求解仍然具有挑战性;思维链(Chain-of-Thought)轨迹可能冗长且容易出现算术错误。近期研究[^1][^2]表明,小模型也能达到很强的性能,而其他研究[^3]则探索了使用工具(Tool Use)来提高可靠性。这些论文通常没有强调的是减少轨迹的冗长性,或者明确训练模型偏好简短、面向计算的轨迹,并在受约束、可审计的环境中执行。

我们专注于两个目标:

  1. 将确定性计算卸载到安全的执行器中。
  2. 训练模型偏好简洁、面向计算的轨迹,而非冗长的文本。

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,请引用:

code
@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

本文编译自 DeepMath: A lightweight math reasoning Agent with smolagents,版权归原作者所有。

觉得有用?分享给更多人

获取每周 AI 工具精选

工具推荐、实战教程和生态洞察,每周更新。

相关文章

Simon Willison 正在重构 LLM Python 库的抽象层,以支持服务器端工具执行等新功能。他利用 Claude Code 分析了四大 LLM 提供商的客户端库,生成了用于测试的 curl 命令和 JSON 输出。这些调研材料已开源,旨在帮助设计更通用的 API 抽象。

深度Simon Willison·4月5日·1 分钟

智能体技能——包含程序性知识和可执行资源的结构化包,供智能体在推理时动态加载——已成为增强 LLM 智能体的可靠机制。然而,推理时技能增强存在根本性限制:检索噪声引入无关指导,注入的技能内容带来大量 token 开销,而模型从未真正习得它所遵循的知识。我们提出一个问题:技能是否可以被内化到模型参数中,使其在无需任何运行时技能检索的情况下实现零样本自主行为?我们提出 Skill0,一个专为技能内化设计的上下文强化学习框架。Skill0 引入了一种训练时课程,从提供完整技能上下文开始,逐步撤除。技能按类别离线分组,并与交互历史一起渲染为紧凑的视觉上下文,教授模型工具调用和多轮任务完成。动态课程机制…

深度·4月5日·17 分钟

评论