基于昇腾MindSpeed RL复现R1-Zero优秀实践

DeepSeek开启全新的后训练范式,带来AI模型技术平权时代,行业纷纷构建自己的高质量高性能的行业RL模型。然而,训练高性能的大尺寸模型通常需要庞大的计算资源和海量数据,这对研究社区的可复现性和进一步探索提出了挑战。为了降低研究门槛并促进开源生态的发展,昇腾MindSpeed RL强化学习开源套件支持大尺寸模型的强化学习高效训练,提供用户方便易用的复现指导,目前已完成在Qwen25-7B/32B基座模型为例复现R1-Zero的实践,模型数学能力大大提升。

基于昇腾MindSpeed RL复现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分。

01MindSpeed RL以Qwen2.5-7B为基座模型为例复现R1-Zero的效果

训练输入:使用Qwen2.5-7B base模型在orz数据集上训练,使用标准的格式奖励和准确性奖励,训练超参如下

基于昇腾MindSpeed RL复现R1-Zero优秀实践

训练过程监控:训练过程用Tensorboard可视化工具监控,可以看到模型的回复长度Response length呈现典型的先下降后上升趋势,准确性奖励Accuracy持续上升并逐渐稳定在0.4~0.5之间。

基于昇腾MindSpeed RL复现R1-Zero优秀实践

模型效果评估:使用开源榜单评测系统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复现R1-Zero优秀实践

MindSpeed RL以Qwen25-7B为例

复现R1-Zero的模型在数学能力效果超越开源社区

02MindSpeed RL以Qwen2.5-32B为基座模型为例复现R1-Zero的效果

训练输入:使用Qwen2.5-32B模型在deepscaler数据集上使用标准的格式奖励和准确性奖励训练,训练超参如下:

基于昇腾MindSpeed RL复现R1-Zero优秀实践

训练过程监控:训练过程用Tensorboard可视化工具监控,可以看到模型的回复长度Response length呈现典型的先下降后上升的趋势,准确性奖励Accuracy保持持续上升;格式奖励Format很快上升到较高的水平。

基于昇腾MindSpeed RL复现R1-Zero优秀实践

模型效果评估:使用开源榜单评测系统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复现R1-Zero优秀实践

MindSpeed RL以Qwen25-32B为例

复现R1-Zero的模型在数学能力效果超越开源社区

03训练后模型出现Aha-moment的自我反思现象

训练前,通过prompt可以引导模型部分遵从的格式,但回答的思考过程较短没有自我反思,样例如下:

基于昇腾MindSpeed RL复现R1-Zero优秀实践

训练后,我们观察到经过几十个iterations后模型就有一定概率出现Aha-Moment,从“But wait”上看模型在进行自我反思,出现了R1范式中的模型产生CoT思维链现象,样例如下:

基于昇腾MindSpeed RL复现R1-Zero优秀实践

R1-Zero

(以Qwen2.5-32B为例)

复现指南

环境配置

配置MindSpeed RL基础环境以及准备代码,参考安装指南

https://www.fromgeek.com/uploadfile/pic2020/2025/0331/20250331200003345G>

模型选择

Qwen2.5-32B下载:

https://www.fromgeek.com/uploadfile/pic2020/2025/0331/20250331200003346G>

权重转换

在进行RL训练之前,模型需要从HuggingFace权重转换为megatron权重,可参考权重转换部分:https://www.fromgeek.com/uploadfile/pic2020/2025/0331/20250331200004347G>

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模板激发......$\boxed{}

<|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 withinandtags, respectively, i.e.,reasoning process hereanswer herePut your final answer within \\boxed{}.\n{你真正的问题}<|im_end|>\n<|im_start|>assistant\n{模型真正的回答}

数据集

对于32B模型应使用更高难度的数据集,所以我们使用DeepScale 40K来训练。

数据集地址:https://www.fromgeek.com/uploadfile/pic2020/2025/0331/20250331200004348G>

数据预处理

需要先配置数据处理的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://www.fromgeek.com/uploadfile/pic2020/2025/0331/20250331200005349G>

Qwen25-32B R1-Zero复现

https://www.fromgeek.com/uploadfile/pic2020/2025/0331/20250331200006350G>

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )