rStar-Math 项目使用与启动教程
rStar 项目地址: https://gitcode.com/gh_mirrors/rsta/rStar
1. 项目介绍
rStar-Math 是一个开源项目,旨在展示小型语言模型(SLM)在不依赖高级模型蒸馏的情况下,能够匹敌甚至超越 OpenAI o1-mini 的数学推理能力。该项目通过实施“深度思考”策略,即使用蒙特卡洛树搜索(MCTS),其中数学策略 SLM 在测试时通过基于 SLM 的过程奖励模型进行搜索指导。
2. 项目快速启动
环境准备
- 推荐使用 conda 管理环境,并在配备了 CUDA 12.4 的 A100 80G GPU 上执行代码。
- 创建一个 Python 环境(python 3.11):
conda create -y --name rstar python=3.11
conda init && source deactivate # 初始化
conda activate rstar
- 安装依赖:
pip install --upgrade pip
pip install -r requirements.txt
# 可选:安装 flash-attn 2
# pip install flash-attn --no-build-isolation
安装评估工具包
git clone https://github.com/MARIO-Math-Reasoning/MARIO_EVAL.git
cd MARIO_EVAL
cd latex2sympy && pip install . && cd ..
pip install -e .
cd ..
如果 CUDA 版本低于 12.4,执行以下命令以防止出现链接错误:
export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/nvidia/nvjitlink/lib')"):$LD_LIBRARY_PATH
使用指南
根据官方文档,以下是生成训练数据和使用 MCTS 进行推理的基本步骤。
生成训练数据
大多数数学问题来源于 NuminaMath 和 MetaMath。要生成自己的数据,请将问题和答案格式化为 eval_data 格式。
推理与评估
使用策略模型和奖励模型进行 MCTS 推理,以下命令将生成一个 mcts 结果文件:
MODEL="政策模型目录"
RM="奖励模型目录"
QAF="测试集路径"
CFG="config/sft_eval_mcts.yaml"
CUDA_VISIBLE_DEVICES="0"
python main.py --qaf $QAF --custom_cfg $CFG --model_dir $MODEL --reward_model_dir $RM
3. 应用案例和最佳实践
- 案例:rStar-Math 被用于在数学推理任务中,如 GSM-8K、Math、Math500 等,实现了令人瞩目的效果。
- 最佳实践:项目提供了多个配置文件示例,用于不同的训练和推理阶段,用户应根据具体情况选择合适的配置文件。
4. 典型生态项目
rStar-Math 是 Microsoft 在数学推理领域的一个研究项目,它是更大生态系统的一部分,该生态系统还包括:
- Mututal Reasoning Makes Smaller LLMs Stronger Problem-Solvers
- DeepSeek-Coder-V2-Instruct 等相关模型和研究项目
通过这些项目,研究社区正在不断推动自然语言处理和小型语言模型在数学推理和其他复杂问题解决领域的边界。