openr
OpenR 是一个专为提升大语言模型高级推理能力而设计的开源框架。面对复杂数学问题或逻辑推导任务时,普通大模型往往难以生成准确且连贯的解题步骤,OpenR 正是为了解决这一痛点而生。它提供了一套完整的工具链,支持从数据构建、模型训练到推理验证的全流程,帮助开发者高效地探索和实现更强大的推理算法。
该框架特别适合人工智能研究人员和算法工程师使用,尤其是那些致力于优化模型在数学、科学等领域推理表现的专业人士。OpenR 不仅开源了核心的训练与推理代码,还分享了高质量的专用数据集(如 MATH-APS)以及经过微调的预训练模型,极大地降低了复现前沿研究成果的门槛。其技术亮点在于模块化设计,允许用户灵活集成不同的推理策略,并提供了详细的教程和文档,方便快速上手。无论是希望深入理解大模型推理机制的研究者,还是想要在实际应用中部署高精度推理模型的开发者,OpenR 都是一个值得尝试的强大助手。
使用场景
某教育科技公司的算法团队正在开发一款针对高中生的自适应数学辅导系统,需要模型不仅能给出答案,还能生成逻辑严密、步骤清晰的解题过程。
没有 openr 时
- 模型面对复杂几何或代数题时,常出现“跳跃式”推理,直接给出结论而缺失关键推导步骤,导致学生无法理解。
- 缺乏有效的验证机制,模型生成的解题路径中隐含逻辑错误(如公式误用),但输出结果看似合理,难以被自动检测发现。
- 训练数据仅依赖标准答案,模型无法学习多样化的解题策略,遇到变体题目时泛化能力差,容易陷入死胡同。
- 调试推理过程如同“黑盒”,开发人员难以定位模型是在哪一步逻辑链条上发生了断裂,优化效率极低。
使用 openr 后
- 利用 openr 的高级推理框架,模型被迫采用思维链(Chain-of-Thought)逐步拆解问题,输出的每一步推导都清晰可见且逻辑连贯。
- 内置的自我反思与验证模块能实时检查中间步骤的合理性,自动修正公式滥用或计算偏差,显著降低“幻觉”错误率。
- 通过 openr 提供的强化学习流程,模型在 MATH-APS 等数据集上学会了多种解题策略,面对新颖题型也能灵活迁移思路。
- 框架开放的可视化分析工具让团队能精准追踪推理轨迹,快速识别薄弱节点并针对性微调模型,研发周期缩短了一半。
openr 将大模型从单纯的“答案生成器”升级为具备严谨逻辑闭环的“数学导师”,从根本上解决了复杂推理任务中的可靠性难题。
运行环境要求
- 未说明
未说明 (项目涉及大语言模型推理与训练,隐含需要 NVIDIA GPU,但 README 未指定具体型号、显存或 CUDA 版本)
未说明

快速开始
新闻与更新
- [29/11/2024] 我们现在在 ModelScope 上新增了 演示 页面。非常感谢 @wangxingjun778!
- [24/10/2024] OpenR 现在支持 MCTS 推理 (#24)!🌲
- [15/10/2024] 我们的报告已发表在 Arxiv 上!
- [12/10/2024] OpenR 正式发布!🚀
功能特性
| 功能 | 内容 |
|---|---|
| ✅ 过程监督数据生成 | - OmegaPRM: 通过自动化过程监督提升语言模型的数学推理能力 |
| ✅ 在线策略训练 | - RL 训练: APPO、GRPO、TPPO; |
| ✅ 生成式与判别式 PRM 训练 | - PRM 训练: PRM 的监督训练 - 生成式 RM 训练: Direct GenRM |
| ✅ 多种搜索策略 | - 贪心搜索 - Best-of-N - 束搜索 - MCTS - rStar: 相互推理使小型 LLM 更强大 - Critic-MCTS: 正在审查 |
| ✅ 测试时计算与规模定律 | 待定,详见 基准测试 |
待办事项
| 功能 | TODO (高优先级, 我们非常重视您的贡献!) |
|---|---|
| 👨💻数据 | - 重新实现 旅程学习 |
| 👨💻强化学习训练 | - 分布式训练 - 强化微调 (RFT) #80 |
| 👨💻PRM | - 更大规模的训练 - GenRM-CoT 实现 - 软标签训练 #57 |
| 👨💻推理 | - 优化代码结构 #53 - 更多推理任务(AIME 等)#53 - 多模态推理 #82 - 代码生成中的推理 #68 - Dots #75 - 一致性检查 - 基准测试 |
基准测试
请参阅 基准测试 !
图表
提供的数据集和模型
MATH-APS (我们的数据集)
MATH-psa (我们的过程奖励模型)
开始使用
安装
conda create -n open_reasoner python=3.10
conda activate open_reasoner
pip install -r requirements.txt
pip3 install "fschat[model_worker,webui]"
pip install -U pydantic
cd envs/MATH/latex2sympy
pip install -e .
cd -
下载基础模型
在运行项目之前,请确保所有所需的基础模型均已下载。本项目中使用的模型包括:
Qwen2.5-Math-1.5B-Instruct,Qwen2.5-Math-7B-Instructpeiyi9979/mistral-7b-sftpeiyi9979/math-shepherd-mistral-7b-prm
要下载这些模型,请参考 Hugging Face 模型下载教程,其中提供了从 Hugging Face Hub 下载模型的分步指南。
请务必在继续操作之前,将所有模型按照项目设置保存到相应的目录中。
快速入门
在运行推理之前,请修改 reason/llm_service/ 目录下脚本中的以下变量,以设置适合您使用的相应基础模型:
$MODEL_BASE: 设置为您存储模型的目录。$POLICY_MODEL_NAME: 设置为您希望使用的策略模型名称。$VALUE_MODEL_NAME: 设置为您希望使用的价值模型名称。$NUM_LM_WORKER: 设置为要启动的语言模型 (LM) 工作进程数量。$NUM_RM_WORKER: 设置为要启动的奖励模型 (RM) 工作进程数量。
然后即可准备并使用不同的技术进行推理。
启动 LM 和 RM 服务
例如,要为 Math Shepherd 模型启动 LM 和 RM 服务,请运行以下命令:
sh reason/llm_service/create_service_math_shepherd.sh
若需停止服务器进程,建议使用以下命令:
tmux kill-session -t {您的会话名称} # 默认为 `FastChat`
使用方法
运行推理
⚠️ 请确保脚本中的输入 (--LM, --RM) 与待处理工作进程中的变量 ($POLICY_MODEL_NAME, $VALUE_MODEL_NAME) 保持一致!
export PYTHONPATH=$(pwd)
sh scripts/eval/cot_greedy.sh
# 方法:cot。平均结果:({'majority_vote': 0.734, 'total_completion_tokens': 559.13},)
sh scripts/eval/cot_rerank.sh
# 方法:best_of_n。平均结果:({'majority_vote': 0.782,
# 'prm_min_max': 0.772,
# 'prm_min_vote': 0.792,
# 'prm_last_max': 0.776,
# 'prm_last_vote': 0.792,
# 'total_completion_tokens': 4431.268},)
sh scripts/eval/beam_search.sh
# 方法:束搜索。平均结果:({'majority_vote': 0.74, 'total_completion_tokens': 2350.492},)
sh scripts/eval/vanila_mcts.sh
运行训练
⚠️ 在训练之前,请修改 train/mat/scripts/train_llm.sh 中的 $dataset_path、$model_name_or_path 和 $prm_name_or_path。
cd train/mat/scripts
bash train_llm.sh
运行 PRM 学习
cd prm/code
\\ 单 GPU
python finetune_qwen_single_gpu.py --model_path $YOUR_MODEL_PATH \
--train_data_path $TRAIN_DATA_PATH \
--test_data_path $TEST_DATA_PATH
\\ 多 GPU
torchrun --nproc_per_node=2 finetune_qwen.py --model_path $YOUR_MODEL_PATH \
--data_path $YOUR_DATA_FOLDER_PATH \
--datasets both
加入我们
每一份贡献对社区都至关重要。
感谢您对 OpenR 的关注!🥰 我们深深致力于开源社区,并欢迎所有人的贡献。无论您的努力是大是小,都能帮助我们成长和进步。贡献不仅限于代码——回答问题、帮助他人、完善文档以及分享项目同样具有重要意义。
请随时查看 贡献指南!
未来计划
- 对强化学习训练和搜索策略进行更全面的评估
- 扩展证明-验证器模型的规模
- 支持自我改进型训练
联系方式
OpenR 社区由以下团队维护:
- Openreasoner 团队 (openreasoner@gmail.com)
许可证
OpenR 根据 MIT 许可证发布。
引用
如果您觉得我们的资源有所帮助,请引用我们的论文:
@misc{wang2024tutorial,
author = {Jun Wang},
title = {LLM 推理教程:ChatGPT o1 背后的相关方法},
year = {2024},
url = {https://github.com/openreasoner/openr/blob/main/reports/tutorial.pdf},
note = {可在 GitHub 上获取}
}
@article{wang2024openr,
title={OpenR:用于大型语言模型高级推理的开源框架},
author={Wang, Jun 和 Fang, Meng 和 Wan, Ziyu 和 Wen, Muning 和 Zhu, Jiachen 和 Liu, Anjie 和 Gong, Ziqin 和 Song, Yan 和 Chen, Lei 和 Ni, Lionel M 等},
journal={arXiv 预印本 arXiv:2410.09671},
year={2024}
}
回答示例
比较 PRM、Math-psa(我们)与 Math-Shepherd
解释强化学习训练
探索测试时计算
社区
微信:
参考文献
推理时计算
[1] 类似 AlphaZero 的树搜索可以指导大型语言模型的解码和训练。
[3] 优化 LLM 测试时的计算能力可能比增加模型参数更为有效
从结果监督到过程监督
[1] 训练验证者解决数学应用题
[2] 通过过程和结果反馈解决数学应用题
[3] 让我们逐步验证
数据获取
[1] Star:通过推理来引导推理
常见问题
相似工具推荐
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 真正成长为懂上
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 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器