概要
- DeepSeek-R1 の完全再現を目指すオープンソースプロジェクトの紹介
- インストール手順 や 学習方法、 評価方法 を詳細に解説
- 最新のデータセットや学習レシピのリリース情報
- SFT や GRPO などの主要タスクへの対応
- コード実行型の報酬関数や分散学習のサポート
DeepSeek-R1完全再現プロジェクト概要
- DeepSeek-R1 パイプラインの再現と拡張を目指すオープンソースリポジトリ
- 誰でも R1モデルの再現・拡張 ができる環境の構築
- 主な構成要素
- src/open_r1: モデル学習・合成データ生成用スクリプト群
- grpo.py: GRPOによるモデル学習
- sft.py: SFTによる単純なファインチューニング
- generate.py: Distilabelを用いた合成データ生成
- Makefile: 各工程のコマンド集約
- src/open_r1: モデル学習・合成データ生成用スクリプト群
開発ロードマップ
- DeepSeek-R1技術レポート を指針とした3ステップ構成
- Step 1: 高品質コーパスの蒸留によるR1-Distillモデルの再現
- Step 2: 大規模データセットを用いた純粋なRLパイプライン(R1-Zero)の再現
- Step 3: ベースモデルからRLチューニングまでの多段階学習の実証
最新ニュース・リリース情報
- 2025/05/26: Mixture-of-Thoughtsリリース(350k検証済み推論トレース)
- 数学・コーディング・科学領域をカバー
- OpenR1-Distill-7B学習レシピ公開
- 2025/03/11: CodeForces-CoTsデータセットリリース(10k問題/100k解答)
- IOI24ベンチマーク追加
- 7B/32Bモデルの高精度実証
- 2025/02/10: OpenR1-Math-220kリリース(220kトレース)
- DeepSeek蒸留モデルと同等性能
- 2025/02/02: トレーニング・推論・評価パイプライン初実装
インストール手順
- CUDA 12.4 必須
- Python仮想環境構築(uv推奨)
uv venv openr1 --python 3.11 && source openr1/bin/activateuv pip install --upgrade pip
- make install で開発用ライブラリ一括導入
- vLLM ・ FlashAttention インストール
uv pip install vllm==0.8.5.post1uv pip install setuptools && uv pip install flash-attn --no-build-isolation
- PyTorch v2.6.0 利用必須(vLLMバイナリ対応)
- 追加依存のインストール例
GIT_LFS_SKIP_SMUDGE=1 uv pip install -e ".[dev]"
- Hugging Face ・ Weights and Biases アカウント連携
huggingface-cli loginwandb login
- Git LFS の導入確認
git-lfs --version- 未インストール時は
sudo apt-get install git-lfs
モデル学習方法
- 8 x H100 (80GB) ノード用設定例
- DDP または DeepSpeed(ZeRO-2/3) に対応
- SFT学習例(Mixture-of-Thoughtsデータセット利用)
- コマンドライン・YAML設定両対応
- 対応タスク
- Supervised Fine-Tuning(sft)
- Group Relative Policy Optimization(grpo)
- バッチサイズ・勾配蓄積 はGPU数に応じて調整推奨
- デフォルトでHugging Face Hubへモデル自動プッシュ
- YAML設定のパラメータ上書きも可能
EOSトークン・チャットテンプレート注意点
- meta-llama/Llama-3.2-1B 等はチャットテンプレート未定義
- デフォルトでChatMLを使用
- Qwen 系はトークナイザー定義済み
- EOSトークン明示設定(例:
--eos_token '<|im_end|>')
- EOSトークン明示設定(例:
- カスタムテンプレート利用時はテンプレート&EOSトークン指定必須
SFT蒸留レシピ
- deepseek-ai/DeepSeek-R1-Distill-Qwen-7B 再現レシピ提供
- 下流タスクでの性能
- OpenR1-Distill-7B: AIME 2024=52.7, MATH-500=89.0, GPQA=52.8, LiveCodeBench v5=39.4
- DeepSeek-R1-Distill-Qwen-7B: AIME 2024=51.3, MATH-500=93.5, GPQA=52.4, LiveCodeBench v5=37.4
GRPO(Group Relative Policy Optimization)
- TRLのvLLMバックエンド で大規模分散学習対応
- シングルノード・マルチノード両対応
- チャットテンプレートのカスタマイズ推奨(推論ブロックの扱いに注意)
- Slurm用スクリプト例も提供
コード実行型報酬関数・サンドボックス
- E2B (Python特化)・ Morph (多言語対応)サンドボックス対応
- APIトークンを.envファイルに記載
- データセット要件
- verification_infoカラムにテストケース情報を含むJSON
- コード報酬関数用追加依存
uv pip install -e '.[code]'
- サンドボックスサービスの Routerスクリプト も提供(CPUノード用)
データ生成・評価・貢献方法
- smol distilled R1モデル や DeepSeek-R1 からのデータ生成スクリプト
- DeepSeek評価結果の再現手順
- コントリビューションガイドも順次整備中
この内容は、DeepSeek-R1オープン再現プロジェクトのドキュメントを日本語で簡潔にまとめたものです。各セクションの詳細やコマンド例は、公式リポジトリやREADMEを参照してください。