0.5B小模型逆襲!不到50元,「X-R1」讓每個人都能復現AhaMoment

X-R1開源倉庫:https://github.com/dhcode-cpp/X-R1

1. 介紹

X-R1目標是建設一個易入門和低成本的基於強化學習的訓練框架。以加快Scaling Post-Training的發展程序。
受到 DeepSeek-R1 和 open-r1 的啟發,為了降低 R1 的復現門檻,我們用最低的成本<50元 在 0.5B 的預訓練模型上覆現了 R1-Zero 的“Aha Moment”(頓悟時刻)💡

2. X-R1 特點

專案的程式碼基礎為 open-r1 ,由於官方例子需要 8x80G顯示卡,我們探索了一條更易訓練的方案。X-R1聚焦於純Reasoning-RL的端到端訓練問題,不考慮做任何的繼續預訓練、指令微調和資料蒸餾操作。
  • 效果:4×3090/4090 GPUs 訓練總時間2小時以內,在第10分鐘的 37步最佳化中輸出了“aha Moment“ 💡
  • 模型大小:0.5B尺寸的模型即可做R1-Zero
  • 支援更大模型的配置:0.5B/1.5B/7B/32B…
  • 為了更快訓練,我們減少資料規模到750條資料,仍然能夠提升數學推理能力
  • 我們增加過程checkpoint取樣列印,方便觀察RL訓練的模型行為。

3. X-R1 0.5B 訓練結果

3.1 執行

在4×3090/4090(24G)的訓練環境中,3張顯示卡用Zero-Stage 3做最佳化,1張顯示卡vLLM部署推理服務,訓推分離使得GRPO最佳化更加高效。
實際實驗 4×4090, 3epochs, 訓練時間為:~1h20min
ACCELERATE_LOG_LEVEL=info \accelerate launch \--config_file recipes/zero3.yaml \--num_processes=3 \src/x_r1/grpo.py \--config recipes/X_R1_zero_0dot5B_config.yaml \> ./output/x_r1_0dot5_sampling.log 2>&1

3.2 準確性獎勵

我們測試了0.5B和1.5B的實驗,得到了符合預期曲線,並且在不到5步的最佳化中,模型就能快速到達飽和狀態。

3.3 Aha Moment:

訓練約10min左右觀測到Aha Moment 現象:
Wait, that doesn't match either of our options. It seems like I made a mistake in my assumptionsLet's go back to the original equations

4. X-R1 發現

在實驗過程我們測試X-R1的模型行為:
  • 0.5B:能夠偶現Aha Moment
  • 1.5B:能夠頻繁觸發Aha Moment,效能分數優於0.5B約20%
  • 7.0B:在100條資料訓練,Aha Moment自然,並且能夠遵循提示詞格式。
  • 70.0B: 正在路上…
X-R1認為:
  • 極小模型依然能夠觸發Aha Moment
  • 越大的模型,受益於規則獎勵的訊號,RL越容易觸發Aha Moment的思考模式
  • 對於預訓練模型是否本身有自反思行為,是否干擾試驗, X-R1並不關心,我們更關注實質的解答準確率是否得到了提高.

5. X-R1 安裝

基礎的顯示卡驅動要求僅為Cuda>12.4, 另外我們簡化了open-r1 使用的uv 工具安裝。實驗環境不需要8xA100(80G)顯示卡
git clone [email protected]:dhcode-cpp/X-R1.gitcd X-R1mkdir outputconda create -n xr1 python=3.11conda activate xr1pip install -e .

6. X-R1 下一步計劃

  • 支援LoRA/QLoRA的訓推分離訓練
  • 釋放7B訓練配置和結果
  • 增加更多的規則獎勵
  • 支援更多的base模型
  • 增加基準測評結果

關於X-R1

如果有任何的建議,請在X-R1的倉庫描述Issue或聯絡[email protected]

感謝

  • 🤗 Huggingface團隊提供了非常有實踐性的框架  Open-R1TRL

Reference

  • DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
  • Qwen2.5 Technical Report
X-R1開源倉庫:https://github.com/dhcode-cpp/X-R1

相關文章