ToRA
ToRA 是一系列专为解决高难度数学推理问题而设计的工具集成型智能体。它巧妙地将大语言模型的自然语言推理能力与外部计算工具(如代码解释器、符号求解库)相结合,让模型在思考过程中能够调用工具进行精确计算和验证。这一机制有效解决了传统大模型在处理复杂数学题时容易出现的“幻觉”和计算错误问题,显著提升了答案的准确性和可靠性。
在技术亮点上,ToRA 通过独特的训练策略,实现了语言推理与代码执行的无缝切换。实验数据显示,即使是参数量较小的 ToRA-Code-34B 模型,在结合自一致性策略后,其在权威数学基准测试(如 MATH 数据集)上的得分也能超越未使用工具的 GPT-4,展现了极高的性价比和强大的解题潜力。
ToRA 非常适合人工智能研究人员、教育科技开发者以及需要处理复杂逻辑推理任务的工程师使用。研究人员可以基于其开源代码探索工具增强型推理的新范式;开发者则可将其集成到智能辅导系统或科学计算应用中,为用户提供精准的数学解题辅助。目前,该项目的模型权重与代码已在 Hugging Face 和 GitHub 全面开源,便于社区进一步研究与复用。
使用场景
某在线教育平台的技术团队正在开发一套自动批改系统,旨在为高中生提供复杂数学应用题(如微积分或立体几何)的即时解题步骤与答案反馈。
没有 ToRA 时
- 计算错误频发:传统大模型仅靠“脑算”推理,在处理多步数值运算时容易产生幻觉,导致最终答案错误,误导学生。
- 逻辑链条断裂:面对需要结合代数推导与数值计算的混合题型,模型往往无法维持长程逻辑一致性,中途“迷路”。
- 验证成本高昂:为了保证准确率,团队不得不安排人工专家复核大量机器生成的解答,效率极低且难以规模化。
- 缺乏可执行步骤:模型只能输出文字描述,无法提供可运行的代码或公式推导过程,学生难以理解具体的计算路径。
使用 ToRA 后
- 精准工具调用:ToRA 能自动识别何时需要计算,并即时调用 Python 代码解释器或符号求解库,确保数值结果绝对精确。
- 无缝推理融合:它将自然语言分析与外部工具执行完美结合,在复杂的混合题型中也能保持严密的逻辑闭环,不再中途出错。
- 自动化高可信输出:借助工具交互能力,ToRA 在 GSM8k 和 MATH 基准测试上表现卓越,大幅降低了对人工复核的依赖,实现真正的自动化批改。
- 提供可验证代码:生成的解答包含完整的中间代码步骤,学生不仅能看答案,还能运行代码复现过程,深度学习解题思路。
ToRA 通过将大模型的推理能力与外部计算工具深度整合,彻底解决了 AI 在复杂数学领域中“会想不会算”的核心痛点。
运行环境要求
- Linux
需要 NVIDIA GPU (用于加速推理),需安装 CUDA 11.8 (示例中指定 cu118),显存需求取决于模型大小 (7B-70B)
未说明

快速开始
ToRA:一款工具集成型推理代理
[🌐 官网] •
[📜 论文] •
[🤗 HF 模型] •
[🐱 GitHub]
[🐦 Twitter] •
[💬 Reddit] •
[🍀 非官方博客]
“ToRA:用于数学问题求解的工具集成型推理代理”项目仓库 [ICLR'2024]
图1:在7B至70B参数规模的LLaMA-2基础模型上,ToRA与基线方法的对比。
🔥 最新消息
- [2023/10/08] 🔥🔥🔥 所有ToRA模型已在🤗 HuggingFace上发布!
- [2023/09/29] ToRA论文、代码库和官网正式发布。
💡 简介
ToRA是一系列工具集成型推理代理,旨在通过与计算库、符号求解器等外部工具交互来解决具有挑战性的数学推理问题。ToRA系列将自然语言推理与外部工具的高效利用无缝结合,从而融合了语言的分析能力与外部工具的计算效率。
| 模型 | 参数量 | GSM8k | MATH | 10个数学任务的平均准确率† |
|---|---|---|---|---|
| GPT-4 | - | 92.0 | 42.5 | 78.3 |
| GPT-4 (PAL) | - | 94.2 | 51.8 | 86.4 |
| 7B | 68.8 | 40.1 | 62.4 | |
| 7B | 72.6 | 44.6 | 66.5 | |
| ToRA-Code-7B + 自洽机制(k=50) | 7B | 76.8 | 52.5 | - |
| 13B | 72.7 | 43.0 | 65.9 | |
| 13B | 75.8 | 48.1 | 71.3 | |
| ToRA-Code-13B + 自洽机制(k=50) | 13B | 80.4 | 55.1 | - |
| 34B | 80.7 | 51.0 | 74.8 | |
| ToRA-Code-34B + 自洽机制(k=50) | 34B | 85.1 | 60.0 | - |
| 70B | 84.3 | 49.7 | 76.9 | |
| ToRA-70B + 自洽机制(k=50) | 70B | 88.3 | 56.9 | - |
*ToRA-Code-34B是目前首个也是唯一一个在MATH数据集上达到超过50%准确率(pass@1)的开源模型,显著优于GPT-4的CoT结果(51.0 vs. 42.5),并且与使用程序解决问题的GPT-4表现相当。我们希望通过开源代码和模型,能够推动更多突破性进展!
†10个数学任务包括GSM8k、MATH、GSM-Hard、SVAMP、TabMWP、ASDiv、SingleEQ、SingleOP、AddSub和MultiArith。
工具集成式推理
图2:单轮工具交互的基本示例,其中推理过程与基于程序的工具使用交替进行。
ToRA训练流程
图3:ToRA的训练包含①模仿学习,以及②输出空间的优化。
🚀 快速入门
⚙️ 环境搭建
我们建议使用Conda来管理您的环境。我们采用vLLM(0.1.4)来加速推理。请运行以下命令以设置您的环境:
git clone https://github.com/microsoft/ToRA.git && cd ToRA/src
conda create -n tora python=3.10
conda activate tora
pip install packaging==22.0
pip install torch==2.0.1 --index-url https://download.pytorch.org/whl/cu118 # 以CUDA 11.8为例
pip install -r requirements.txt
🪁 推理
我们提供了一个推理脚本,只需在src/scripts/infer.sh中配置MODEL_NAME_OR_PATH和DATA,然后运行以下命令:
bash scritps/infer.sh
我们还在src/outputs/文件夹中开源了来自最佳模型(ToRA-Code-34B和ToRA-70B)的模型输出。
⚖️ 评估
src/eval/grader.py文件包含了评分逻辑,用于通过将预测答案与真实答案进行比较来评估其准确性。该逻辑基于Hendrycks的MATH评分系统,并且我们在MATH数据集上进行了手动验证,以尽量减少假阳性和假阴性。
要评估预测答案,请运行以下命令:
python -m eval.evaluate \
--data_name "math" \
--prompt_type "tora" \
--file_path "outputs/llm-agents/tora-code-34b-v1.0/math/test_tora_-1_seed0_t0.0_s0_e5000.jsonl" \
--execute
随后您将得到:
样本数量:5000
得分数量:5000
超时样本:0
空样本:2
平均得分:[51.0]
各子类得分:{'代数': 67.3, '计数与概率': 42.2, '几何': 26.1, '中级代数': 40.0, '数论': 59.3, '初等代数': 63.8, '微积分预备知识': 34.2}
⚡️ 训练
我们目前正在进行内部评审,以将 ToRA-Corpus-16k 开源,敬请期待! 我们还向社区开源了完整的训练脚本,您可以构建自己的数据集进行训练。我们在 data/tora/ 中提供了一些示例数据。
要训练模型,请运行以下命令:
bash scripts/train.sh codellama 7b
☕️ 引用
如果您觉得本仓库对您有帮助,请考虑引用我们的论文:
@inproceedings{
gou2024tora,
title={To{RA}: A Tool-Integrated Reasoning Agent for Mathematical Problem Solving},
author={Zhibin Gou and Zhihong Shao and Yeyun Gong and yelong shen and Yujiu Yang and Minlie Huang and Nan Duan and Weizhu Chen},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=Ep0TtjVoap}
}
🍀 贡献
本项目欢迎各种贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权且确实授予我们使用您贡献的权利。详情请访问 https://cla.opensource.microsoft.com。
本项目已采用 微软开源行为准则。更多信息请参阅 行为准则常见问题解答,或如有任何其他疑问或意见,请联系 opencode@microsoft.com。
🌟 星标历史
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
