

DeepSeek開啟全新的後訓練正規化,帶來AI模型技術平權時代,行業紛紛構建自己的高質量高效能的行業RL模型。然而,訓練高效能的大尺寸模型通常需要龐大的計算資源和海量資料,這對研究社群的可復現性和進一步探索提出了挑戰。為了降低研究門檻並促進開源生態的發展,昇騰MindSpeed RL強化學習開源套件支援大尺寸模型的強化學習高效訓練,提供使用者方便易用的復現指導,目前已完成在Qwen25-7B/32B基座模型為例復現R1-Zero的實踐,模型數學能力大大提升。

R1-Zero復現面臨的挑戰
目前,針對大規模叢集強化學習RL復現R1-Zero,在效率、易用性和訓練效果上存在諸多挑戰。業界開源RL框架在大尺寸模型RL訓練中有權重更新時延高、硬體利用率低、並行策略轉換OOM等問題,業界開源RL倉的readme太簡單無法支撐使用者快速上手,同時,RL訓練過程依賴人工經驗,較好的規則獎勵定義、訓練超參調整尤為重要。
基於MindSpeed RL套件
復現R1-Zero
數學能力大幅提升
MindSpeed RL提供了從環境安裝、程式執行、訓練效果的詳細指導,並提供典型配置檔案和指令碼供使用者一鍵啟動,同時採用訓推共卡、非同步流水、分散式打分器等核心技術進行訓練加速。
基於以上能力,分別使用Qwen25-7B和Qwen25-32B作為base模型為例,使用昇騰MindSpeed RL套件復現DeepSeek-R1-Zero正規化在Math領域的工作效果,在數學等邏輯推理評測集上,MATH500的分數提升幅度15分左右,達到70.6和83.2,32B模型下的AIME24的提升幅度高達26分。
01
MindSpeed RL以Qwen2.5-7B為基座模型為例復現R1-Zero的效果
訓練輸入:使用Qwen2.5-7B base模型在orz資料集上訓練,使用標準的格式獎勵和準確性獎勵,訓練超參如下

訓練過程監控:訓練過程用Tensorboard視覺化工具監控,可以看到模型的回覆長度Response length呈現典型的先下降後上升趨勢,準確性獎勵Accuracy持續上升並逐漸穩定在0.4~0.5之間。

模型效果評估:使用開源榜單評測系統OpenCompass進行模型評估,分數如下:
對於MATH500,Qwen-2.5-7B原模型的得分是54.4,開源社群Open-R1獲得69分,而Qwen-2.5-7B+MindSpeed RL得分高達70.6,超越了開源社群;對於AIME24和GPQA,Qwen-2.5-7B+MindSpeed RL的效果也提升了近10分,分別達到16.2和37.3分。

MindSpeed RL以Qwen25-7B為例
復現R1-Zero的模型在數學能力效果超越開源社群
02
MindSpeed RL以Qwen2.5-32B為基座模型為例復現R1-Zero的效果
訓練輸入:使用Qwen2.5-32B模型在deepscaler資料集上使用標準的格式獎勵和準確性獎勵訓練,訓練超參如下:

訓練過程監控:訓練過程用Tensorboard視覺化工具監控,可以看到模型的回覆長度Response length呈現典型的先下降後上升的趨勢,準確性獎勵Accuracy保持持續上升;格式獎勵Format很快上升到較高的水平。

模型效果評估:使用開源榜單評測系統OpenCompass進行模型評估,分數如下:
對於MATH500,Qwen-2.5-7B原模型的得分是68.6,開源社群SimpleRL-Zoo復現R1-Zero效果獲得82.4分,而MindSpeed RL復現R1-Zero得分83.2,超越開源社群;對於AIME24,開源社群SimpleRL-Zoo復現R1-Zero效果獲得27.2分,MindSpeed RL復現R1得分30.4,超越開源社群;而對於GPQA,MindSpeed RL復現R1得分41.1,相比基座模型也有9分提升。

MindSpeed RL以Qwen25-32B為例
復現R1-Zero的模型在數學能力效果超越開源社群
03
訓練後模型出現Aha-moment的自我反思現象
訓練前,透過prompt可以引導模型部分遵從<think>的格式,但回答的思考過程較短沒有自我反思,樣例如下:

訓練後,我們觀察到經過幾十個iterations後模型就有一定機率出現Aha-Moment,從“But wait”上看模型在進行自我反思,出現了R1正規化中的模型產生CoT思維鏈現象,樣例如下:

R1-Zero
(以Qwen2.5-32B為例)
復現指南

環境配置
配置MindSpeed RL基礎環境以及準備程式碼,參考安裝指南
https://gitee.com/ascend/MindSpeed-RL/blob/master/docs/install_guide.md

模型選擇
Qwen2.5-32B下載:
https://gitee.com/link?target=https%3A%2F%2Fhuggingface.co%2FQwen%2FQwen2.5-32B%2Ftree%2Fmain

權重轉換
在進行RL訓練之前,模型需要從HuggingFace權重轉換為megatron權重,可參考權重轉換部分:https://gitee.com/ascend/MindSpeed-RL/blob/master/docs/algorithms/grpo.md
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# 設定需要的權重轉換引數
# actor使用TP8PP2,將腳本里改成TP8PP2配置
# reference使用TP8PP1,將腳本里改成TP8PP2配置
bash examples/ckpt/ckpt_convert_qwen25_hf2mcore.sh
# 訓練完後如需要轉回HF格式
bash examples/ckpt/ckpt_convert_qwen25_mcore2hf.sh

模板構造
R1-Zero復現需要在資料處理時加上prompt模板激發<think>…</think><answer>…$\boxed{}</answer>
<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n<|im_start|>user\nA conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think><answer> answer here </answer>Put your final answer within \\boxed{}.\n{你真正的問題}<|im_end|>\n<|im_start|>assistant\n{模型真正的回答}

資料集
對於32B模型應使用更高難度的資料集,所以我們使用DeepScale 40K來訓練。
資料集地址:https://gitee.com/link?target=https%3A%2F%2Fhuggingface.co%2Fdatasets%2Fagentica-org%2FDeepScaleR-Preview-Dataset%2Ftree%2Fmain

資料預處理
需要先配置資料處理的yaml檔案(examples\datasets\r1_zero_qwen25_32b.yaml) 自定義資料集需要設定–map-keys對映,或重寫自定義handler;具體參考資料集處理部分
Qwen2.5-32B
處理的時候預設使用qwen_r1的模板
# 啟動轉換
bash examples/data/preprocess_data.sh r1_zero_qwen25_32b

訓練配置準備
模型結構的配置檔案位於configs/model下,訓練配置檔案位於configs/目錄下,我們以qwen2.5-32b為例[r1_zero_qwen25_32b.yaml],該配置用到了32卡,為了進一步加速可以不斷增加推理DP的數量。以下為引數配置:
defaults:
– model:
– qwen25-32b<–網路結構需要定義在model目錄的yaml檔案下
megatron_training:
global_batch_size: 128<–每個迭代的總樣本數
…
dataset_additional_keys: ['labels',]<–使用打分器時需要的額外欄位
actor_config:
model: qwen25-32b
micro_batch_size: 1<–訓練的mbs
…
lr: 1e-6
lr_decay_style: constant<–學習率衰減方式
weight_decay: 0.0<–正則化強度係數
lr_warmup_fraction: 0.0<–控制學習率預熱
…
no_load_optim: false <–續訓載入最佳化器狀態
no_load_rng: false <–續訓載入資料隨機數生成器
no_save_optim: false <–儲存權重時同時儲存最佳化器狀態
no_save_rng: false <–儲存權重時同時儲存資料隨機數生成器
ref_config:
model: qwen25-32b
…
rl_config:
blocking: false <–開啟非同步流水
…
adv_estimator: group_norm<–優勢計算方法
mini_batch_size: 2048<–訓練更新梯度的bs,一般為gbs*n_samples_per_prompt
…
max_prompt_length: 1024<–最大的prompt長度
clip_ratio: 0.2<–策略裁剪比例
shuffle_minibatch: false <–minibatch裡的資料是否打亂
n_samples_per_prompt: 16<–GRPO中一個group內生成的response條數
colocate_actor_ref: false
colocate_all_models: false
rule_reward: true <–開啟規則獎勵
verifier_function: ["acc","strict_format"]<–規則獎勵模型方法
verifier_weight: [1.0,1.0]<–規則獎勵模型權重
use_tensorboard: true <–開啟tensorboard日誌功能
actor_resource: <–actorworker資源分配
num_npus: 16
reference_resource: <–refworker資源分配
num_npus: 16
generate_config:
trust_remote_code: true <–tokenizer相關配置
infer_tensor_parallel_size: 4<–推理時的並行配置
infer_pipeline_parallel_size: 1
infer_expert_parallel_size: 1
max_num_seqs: 128<–vllm推理併發最大樣本限制
max_num_batched_tokens: 128000<–vllm推理併發最大token限制
max_model_len: 4096
dtype: "bfloat16"
gpu_memory_utilization: 0.9
offload_train_optimizer: true <–解除安裝訓練節點最佳化器
offload_train_grad: true <–解除安裝訓練節點梯度
offload_train_param: true <–解除安裝模型權重
sampling_config: <–vllm取樣配置
max_tokens: 3072<–單條response最大生成token數量
logprobs: 1<–是否生成logprobs
max_tokens: 3072
top_p: 0.9
top_k: 50
min_p: 0.01
temperature: 0.9
detokenize: false
…

手動啟動訓練
與基於ray的其他強化訓練一樣,我們多機需要先在主節點初始化ray:
# 建立一個叢集,埠6344,dashboard埠8260
ray start –head –port 6344 –dashboard-host=0.0.0.0 –dashboard-port=8260
隨後,在其他節點加入主節點的叢集:
# IP_ADDRESS 處填寫主節點 IP 地址
ray start –address="IP_ADDRESS:6344"
最後,在主節點上啟動訓練:
export HCCL_CONNECT_TIMEOUT=1800
export CUDA_DEVICE_MAX_CONNECTIONS=1
python cli/train_grpo.py –config-name r1_zero_qwen25_32b | tee logs/r1_zero_qwen25_32b_full.log

指令碼啟動訓練
注意:所有節點的程式碼、權重、資料等路徑的層級要保持一致,且啟動ray的時候都位於MindSpeed RL目錄下

更多詳細復現指導見MindSpeed RL開源readme檔案
Qwen25-7B R1-Zero復現
https://gitee.com/ascend/MindSpeed-RL/blob/master/docs/solutions/r1_zero_qwen25_7b.md
Qwen25-32B R1-Zero復現
https://gitee.com/ascend/MindSpeed-RL/blob/master/docs/solutions/r1_zero_qwen25_32b.md
