综合介绍
Hugging Face的Open R1项目是一个完全开源的DeepSeek-R1复现项目,旨在构建R1管道的缺失部分,使每个人都能复现并在其基础上进行构建。该项目设计简单,主要包括训练和评估模型以及生成合成数据的脚本。Open R1项目的目标是通过多阶段训练,从基础模型到强化学习调优模型,展示完整的R1管道复现过程。项目包含详细的安装和使用指南,支持社区贡献和协作。
我们将以 DeepSeek-R1 技术报告为指导,该报告大致可以分解为三个主要步骤:
第一步:通过从 DeepSeek-R1 中提炼高质量语料库来复现 R1-Distill 模型。
第二步:复现 DeepSeek 用于创建 R1-Zero 的纯强化学习(RL)流程。这可能需要为数学、推理和代码整理新的大规模数据集。
第三步:展示我们可以通过多阶段训练从基础模型过渡到 RL 调优模型。
功能列表
- 模型训练:提供训练模型的脚本,包括GRPO和SFT训练方法。
- 模型评估:提供评估模型性能的脚本,支持R1基准测试。
- 数据生成:使用Distilabel生成合成数据的脚本。
- 多阶段训练:展示从基础模型到强化学习调优的多阶段训练过程。
- 社区贡献:支持社区成员贡献数据集和模型改进。
使用帮助
安装流程
- 创建Python虚拟环境:
conda create -n openr1 python=3.11
conda activate openr1
- 安装vLLM:
pip install vllm==0.6.6.post1
这将同时安装PyTorch v2.5.1,确保使用此版本以兼容vLLM二进制文件。
- 安装项目依赖:
pip install -e ".[dev]"
- 登录Hugging Face和Weights and Biases账户:
huggingface-cli login
wandb login
- 安装Git LFS:
sudo apt-get install git-lfs
使用指南
- 训练模型:
- 使用GRPO训练模型:
python src/open_r1/grpo.py --dataset <dataset_path>
- 使用SFT训练模型:
python src/open_r1/sft.py --dataset <dataset_path>
- 评估模型:
python src/open_r1/evaluate.py --model <model_path> --benchmark <benchmark_name>
- 生成合成数据:
python src/open_r1/generate.py --model <model_path> --output <output_path>
- 多阶段训练:
- 第一步:复现R1-Distill模型:
bash
python src/open_r1/distill.py --corpus <corpus_path>
- 第二步:复现纯RL管道:
bash
python src/open_r1/rl_pipeline.py --dataset <dataset_path>
- 第三步:从基础模型到RL调优:
bash
python src/open_r1/multi_stage_training.py --model <model_path>
- 第一步:复现R1-Distill模型:
贡献指南
- Fork项目:在GitHub上fork该项目到自己的账户。
- 克隆项目:
git clone https://github.com/<your_username>/open-r1.git
- 创建新分支:
git checkout -b new-feature
- 提交更改:
git add .
git commit -m "Add new feature"
git push origin new-feature
- 创建Pull Request:在GitHub上提交Pull Request,描述所做的更改。