已合并
master readme文档修改 #710
NIE SHIYU创建于 2025年10月20日
master readme文档修改 #710
已合并
NIE SHIYU创建于 2025年10月20日
19 个文件变更+31-31
Mdocs/algorithms/dapo.md+3-3
@@ -32,7 +32,7 @@ bash examples/data/preprocess_data.sh math_17k
32* `tokenizer_name_or_path`:指定分词器的名称或路径;32* `tokenizer_name_or_path`:指定分词器的名称或路径;
33* `output_prefix`:输出结果的前缀路径,例如 /datasets/data;33* `output_prefix`:输出结果的前缀路径,例如 /datasets/data;
34* `workers`:设置处理数据时使用的 worker 数;34* `workers`:设置处理数据时使用的 worker 数;
35-* `prompt_type`: 用于指定对话模板,能够让 base 模型微调后能具备更好的对话能力,`prompt-type` 的可选项可以在 `configs/model/templates.json` 文件内查看;35+* `prompt_type`: 用于指定对话模板,能够让 base 模型微调后能具备更好的对话能力,`prompt_type` 的可选项可以在 [configs/model/templates.json](../../configs/model/templates.json) 文件内查看关键词"name";
36* `log_interval`:设置日志记录的间隔,每处理多少条数据时记录一次日志,用于监控数据处理的进度和状态;36* `log_interval`:设置日志记录的间隔,每处理多少条数据时记录一次日志,用于监控数据处理的进度和状态;
37* `handler_name`:指定处理数据的处理器名称;37* `handler_name`:指定处理数据的处理器名称;
38* `seq_length`:设置数据预处理最大序列长度,超过了会过滤掉;38* `seq_length`:设置数据预处理最大序列长度,超过了会过滤掉;
@@ -46,7 +46,7 @@ bash examples/data/preprocess_data.sh math_17k
46 46 
47根据 DAPO 算法要求,Actor 模型应该使用 SFT 微调后的模型进行初始化,Reward 模型应该使用规则奖励。DAPO 算法模型权重均使用 Megatron-mcore 格式,其他格式的权重需要进行模型权重转换。47根据 DAPO 算法要求,Actor 模型应该使用 SFT 微调后的模型进行初始化,Reward 模型应该使用规则奖励。DAPO 算法模型权重均使用 Megatron-mcore 格式,其他格式的权重需要进行模型权重转换。
48 48 
49-接下来,以 Qwen25-32B 模型的权重转换脚本为参考,相应的权重转换步骤如下:49+接下来,以 Qwen2.5-32B 模型的权重转换脚本为参考,相应的权重转换步骤如下:
50 50 
51### 获取权重文件51### 获取权重文件
52权重文件可以从 Huggingface 网站上获取,可以根据模型的使用场景灵活选择,在这里以52权重文件可以从 Huggingface 网站上获取,可以根据模型的使用场景灵活选择,在这里以
@@ -72,7 +72,7 @@ bash examples/data/preprocess_data.sh math_17k
72 72 
73 #过长response惩罚措施73 #过长response惩罚措施
74 overlong_buffer_enable: true <------- 默认关闭74 overlong_buffer_enable: true <------- 默认关闭
75- rollout_max_tokens : 2048 <------- response最大长度75+ rollout_max_tokens: 2048 <------- response最大长度
76 overlong_buffer: 512 <------- 超长惩罚缓冲区大小76 overlong_buffer: 512 <------- 超长惩罚缓冲区大小
77 overlong_buffer_penalty_factor: 1.0 <------- 超长惩罚系数77 overlong_buffer_penalty_factor: 1.0 <------- 超长惩罚系数
78 78 
Mdocs/algorithms/dpo.md+1-1
@@ -32,7 +32,7 @@ bash examples/data/preprocess_data.sh orca_rlhf
32* `tokenizer_name_or_path`:指定分词器的名称或路径;32* `tokenizer_name_or_path`:指定分词器的名称或路径;
33* `output_prefix`:输出结果的前缀路径,例如 ./datasets/data;33* `output_prefix`:输出结果的前缀路径,例如 ./datasets/data;
34* `workers`:设置处理数据时使用的 worker 数;34* `workers`:设置处理数据时使用的 worker 数;
35-* `prompt_type`: 用于指定对话模板,能够让 base 模型微调后能具备更好的对话能力,`prompt-type` 的可选项可以在 `configs/model/templates.json` 文件内查看;35+* `prompt_type`: 用于指定对话模板,能够让 base 模型微调后能具备更好的对话能力,`prompt_type` 的可选项可以在 [configs/model/templates.json](../../configs/model/templates.json) 文件内查看关键词"name";
36* `log_interval`:设置日志记录的间隔,每处理多少条数据时记录一次日志,用于监控数据处理的进度和状态;36* `log_interval`:设置日志记录的间隔,每处理多少条数据时记录一次日志,用于监控数据处理的进度和状态;
37* `handler_name`:指定处理数据的处理器名称;37* `handler_name`:指定处理数据的处理器名称;
38* `seq_length`:设置数据预处理最大序列长度,超过了会过滤掉;38* `seq_length`:设置数据预处理最大序列长度,超过了会过滤掉;
Mdocs/algorithms/grpo.md+2-2
@@ -50,7 +50,7 @@ bash examples/data/preprocess_data.sh deepscaler
50* `tokenizer_name_or_path`:指定分词器的名称或路径,路径具体到分词器所在目录即可;50* `tokenizer_name_or_path`:指定分词器的名称或路径,路径具体到分词器所在目录即可;
51* `output_prefix`:输出结果的前缀路径,例如 /datasets/data;51* `output_prefix`:输出结果的前缀路径,例如 /datasets/data;
52* `workers`:设置处理数据时使用的 worker 数;52* `workers`:设置处理数据时使用的 worker 数;
53-* `prompt_type`: 用于指定对话模板,能够让 base 模型微调后能具备更好的对话能力,`prompt-type` 的可选项可以在 `configs/model/templates.json` 文件内查看;53+* `prompt_type`: 用于指定对话模板,能够让 base 模型微调后能具备更好的对话能力,`prompt_type` 的可选项可以在 [configs/model/templates.json](../../configs/model/templates.json) 文件内查看关键词"name";
54* `log_interval`:设置日志记录的间隔,每处理多少条数据时记录一次日志,用于监控数据处理的进度和状态;54* `log_interval`:设置日志记录的间隔,每处理多少条数据时记录一次日志,用于监控数据处理的进度和状态;
55* `handler_name`:指定处理数据的处理器名称;55* `handler_name`:指定处理数据的处理器名称;
56* `seq_length`:设置数据预处理最大序列长度,超过了会过滤掉;56* `seq_length`:设置数据预处理最大序列长度,超过了会过滤掉;
@@ -67,7 +67,7 @@ bash examples/data/preprocess_data.sh deepscaler
67 67 
68权重转换需要安装MindSpeed-LLM,具体安装方法参考[安装指南](https://gitee.com/ascend/MindSpeed-LLM/blob/master/docs/pytorch/install_guide.md),建议在新建虚拟环境中安装,避免和MindSpeed-RL 出现依赖冲突。68权重转换需要安装MindSpeed-LLM,具体安装方法参考[安装指南](https://gitee.com/ascend/MindSpeed-LLM/blob/master/docs/pytorch/install_guide.md),建议在新建虚拟环境中安装,避免和MindSpeed-RL 出现依赖冲突。
69 69 
70-接下来,以 Qwen25-7B 模型的权重转换脚本为参考,相应的权重转换步骤如下:70+接下来,以 Qwen2.5-7B 模型的权重转换脚本为参考,相应的权重转换步骤如下:
71 71 
72### 获取权重文件72### 获取权重文件
73权重文件可以从 Huggingface 网站上获取,可以根据模型的使用场景灵活选择,在这里以73权重文件可以从 Huggingface 网站上获取,可以根据模型的使用场景灵活选择,在这里以
Mdocs/algorithms/ppo.md+2-2
@@ -38,7 +38,7 @@ bash examples/data/preprocess_data.sh deepscaler
38* `tokenizer_name_or_path`:指定分词器的名称或路径;38* `tokenizer_name_or_path`:指定分词器的名称或路径;
39* `output_prefix`:输出结果的前缀路径,例如 /datasets/data;39* `output_prefix`:输出结果的前缀路径,例如 /datasets/data;
40* `workers`:设置处理数据时使用的 worker 数;40* `workers`:设置处理数据时使用的 worker 数;
41-* `prompt_type`: 用于指定对话模板,能够让 base 模型微调后能具备更好的对话能力,`prompt-type` 的可选项可以在 `configs/model/templates.json` 文件内查看;41+* `prompt_type`: 用于指定对话模板,能够让 base 模型微调后能具备更好的对话能力,`prompt_type` 的可选项可以在 [configs/model/templates.json](../../configs/model/templates.json) 文件内查看关键词"name";
42* `log_interval`:设置日志记录的间隔,每处理多少条数据时记录一次日志,用于监控数据处理的进度和状态;42* `log_interval`:设置日志记录的间隔,每处理多少条数据时记录一次日志,用于监控数据处理的进度和状态;
43* `handler_name`:指定处理数据的处理器名称;43* `handler_name`:指定处理数据的处理器名称;
44* `seq_length`:设置数据预处理最大序列长度,超过了会过滤掉;44* `seq_length`:设置数据预处理最大序列长度,超过了会过滤掉;
@@ -53,7 +53,7 @@ bash examples/data/preprocess_data.sh deepscaler
53 53 
54根据 PPO 算法要求,Actor 和 Reference 模型应该使用 SFT 微调后的模型进行初始化,Reward 模型应该使用规则奖励。PPO 算法模型权重均使用 Megatron-mcore 格式,其他格式的权重需要进行模型权重转换。54根据 PPO 算法要求,Actor 和 Reference 模型应该使用 SFT 微调后的模型进行初始化,Reward 模型应该使用规则奖励。PPO 算法模型权重均使用 Megatron-mcore 格式,其他格式的权重需要进行模型权重转换。
55 55 
56-接下来,以 Qwen25-32B 模型的权重转换脚本为参考,相应的权重转换步骤如下:56+接下来,以 Qwen2.5-32B 模型的权重转换脚本为参考,相应的权重转换步骤如下:
57 57 
58### 获取权重文件58### 获取权重文件
59#### actor model权重文件59#### actor model权重文件
Mdocs/features/EPLB.md+3-3
@@ -129,7 +129,7 @@ SERVERS = (
129 129 
130## Eplb_map Generate 使用说明130## Eplb_map Generate 使用说明
131 131 
132-本功能基于每一层的 **token 到 expert 的分配情况**,通过Deepseek开源的**EPLB策略**,生成 **冗余专家映射表**,实现更合理的专家分布。132+本功能基于每一层的 **token 到 expert 的分配情况**,通过DeepSeek开源的**EPLB策略**,生成 **冗余专家映射表**,实现更合理的专家分布。
133 133 
134---134---
135 135 
@@ -215,7 +215,7 @@ python mindspeed_rl/workers/eplb/eplb_generate_map_ds.py \
215 215 
2161. 运行方式2161. 运行方式
217 ```217 ```
218- bash examples\eplb\eplb.sh218+ bash examples/eplb/eplb.sh
219 ```219 ```
2202. 生成JSON文件: `output_path` 2202. 生成JSON文件: `output_path`
2213. 文件中保存了 **每个层上** expert在**每个rank上**的映射情况。2213. 文件中保存了 **每个层上** expert在**每个rank上**的映射情况。
@@ -267,7 +267,7 @@ expert_map_path: /file/to/save
267 267 
268运行脚本:268运行脚本:
269```bash269```bash
270-bash examples\eplb\grpo_trainer_deepseek_r1_671b_eplb.sh270+bash examples/eplb/grpo_trainer_deepseek_r1_671b_eplb.sh
271```271```
272---272---
273 273 
Mdocs/features/context_parallel.md+1-1
@@ -7,7 +7,7 @@
7### Ulysses7### Ulysses
8[Ulysses](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-ulysses)是一种用于长序列训练的分布式并行技术,由微软 DeepSpeed 提出。其核心思想是将输入序列在序列维度上切分给不同的计算设备,并通过 All-to-All 通信方式确保每个计算设备能够计算不同注意力头的子集。这种方式可以降低激活显存,解决长序列场景下显存OOM的问题。8[Ulysses](https://github.com/deepspeedai/DeepSpeed/tree/master/blogs/deepspeed-ulysses)是一种用于长序列训练的分布式并行技术,由微软 DeepSpeed 提出。其核心思想是将输入序列在序列维度上切分给不同的计算设备,并通过 All-to-All 通信方式确保每个计算设备能够计算不同注意力头的子集。这种方式可以降低激活显存,解决长序列场景下显存OOM的问题。
9 9 
10-具体来说,Ulysses 将各个样本在序列维度上分割给参与的计算设备;然后,在 attention 计算之前,它对已分割的查询(Q)、键(K)和值(V)执行 all-to-all 通信操作,以使每个计算设备接收完整的序列,但仅用于注意力头的非重叠子集,这使得参与的计算设备可以并行计算不同的注意力头;最后,Ulysses 使用另一个 all-to-all 来在注意力头上收集结果,同时重新在序列维度上进行分区。10+具体来说,Ulysses 将各个样本在序列维度上分割给参与的计算设备;然后,在 attention 计算之前,它对已分割的查询(Q)、键(K)和值(V)执行 All-to-All 通信操作,以使每个计算设备接收完整的序列,但仅用于注意力头的非重叠子集,这使得参与的计算设备可以并行计算不同的注意力头;最后,Ulysses 使用另一个 All-to-All 来在注意力头上收集结果,同时重新在序列维度上进行分区。
11 11 
12### Ring Attention12### Ring Attention
13[Ring Attention](https://arxiv.org/pdf/2310.01889)借鉴了分块Softmax原理,在不需要获取整个序列的完整矩阵情况下进行分块attention计算,提出以分块方式执行自注意力和前馈网络计算,跨多个设备分布序列维度。具体地,该方法在进程之间构建注意力计算块的环状通信结构(Ring),每个进程具有一个切分后的本地QKV块;在计算完本地的attention后,通过向后发送和向前获取KV块,遍历进程设备环,以逐块的方式进行注意力和前馈网络计算;同时,本地的attention计算和KV块的通信理想情况下可以互相掩盖,从而消除了额外引入的通信开销。13[Ring Attention](https://arxiv.org/pdf/2310.01889)借鉴了分块Softmax原理,在不需要获取整个序列的完整矩阵情况下进行分块attention计算,提出以分块方式执行自注意力和前馈网络计算,跨多个设备分布序列维度。具体地,该方法在进程之间构建注意力计算块的环状通信结构(Ring),每个进程具有一个切分后的本地QKV块;在计算完本地的attention后,通过向后发送和向前获取KV块,遍历进程设备环,以逐块的方式进行注意力和前馈网络计算;同时,本地的attention计算和KV块的通信理想情况下可以互相掩盖,从而消除了额外引入的通信开销。
Mdocs/features/data_module_design.md+6-6
@@ -69,12 +69,12 @@
69 69 
70|参数名| 参数位置 | 说明 |70|参数名| 参数位置 | 说明 |
71|:----|:------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|71|:----|:------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
72-|actor_rollout_dispatch_size| config_cls/rl_config.py | 【可选参数】actor rollout的每路DP每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_sample_per_prompt / actor_rollout_dp_size |72+|actor_rollout_dispatch_size| config_cls/rl_config.py | 【可选参数】actor rollout的每路DP每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_samples_per_prompt / actor_rollout_dp_size |
73-|actor_logprob_dispatch_size| config_cls/rl_config.py | 【可选参数】actor logprob的每路DP每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_sample_per_prompt / actor_logprob_dp_size |73+|actor_logprob_dispatch_size| config_cls/rl_config.py | 【可选参数】actor logprob的每路DP每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_samples_per_prompt / actor_logprob_dp_size |
74-|actor_update_dispatch_size| config_cls/rl_config.py | 【可选参数】actor update的每路DP每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_sample_per_prompt / actor_update_dp_size |74+|actor_update_dispatch_size| config_cls/rl_config.py | 【可选参数】actor update的每路DP每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_samples_per_prompt / actor_update_dp_size |
75-|ref_dispatch_size| config_cls/rl_config.py | 【可选参数】ref logprob的每路DP每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_sample_per_prompt / ref_logprob_dp_size |75+|ref_dispatch_size| config_cls/rl_config.py | 【可选参数】ref logprob的每路DP每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_samples_per_prompt / ref_logprob_dp_size |
76-|reward_dispatch_size| config_cls/rl_config.py | 【可选参数】reward每路DP(若有)每次从TD中读出的(Prompt, Response)对的数据量;对于Reward Model,默认设置为global_batch_size * n_sample_per_prompt / reward_dp_size;对于规则奖励默认设置为global_batch_size * n_sample_per_prompt;手动设置时对于GRPO算法需保证为n_samples_per_prompt的整数倍 |76+|reward_dispatch_size| config_cls/rl_config.py | 【可选参数】reward每路DP(若有)每次从TD中读出的(Prompt, Response)对的数据量;对于Reward Model,默认设置为global_batch_size * n_samples_per_prompt / reward_dp_size;对于规则奖励默认设置为global_batch_size * n_samples_per_prompt;手动设置时对于GRPO算法需保证为n_samples_per_prompt的整数倍 |
77-|adv_dispatch_size| config_cls/rl_config.py | 【可选参数】advantage每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_sample_per_prompt |77+|adv_dispatch_size| config_cls/rl_config.py | 【可选参数】advantage每次从TD中读出的(Prompt, Response)对的数据量;默认设置为global_batch_size * n_samples_per_prompt |
78 78 
79 79 
80 80 
Mdocs/features/deterministic_computation.md+1-1
@@ -35,7 +35,7 @@
35 ```35 ```
36 - 1.2 使能TransferDock (TD) 保序特性36 - 1.2 使能TransferDock (TD) 保序特性
37 37
38- TransferDock在Mindspeed RL仓中用于存取数据,控制数据流,数据取出默认是乱序的,vllm推理等对于数据的输入顺序是敏感的,两次训练需要保持一致的顺序才能有相同输出。开启此特性之后,将按实际数据顺序进行存取。38+ TransferDock在MindSpeed RL仓中用于存取数据,控制数据流,数据取出默认是乱序的,vllm推理等对于数据的输入顺序是敏感的,两次训练需要保持一致的顺序才能有相同输出。开启此特性之后,将按实际数据顺序进行存取。
39 39 
40 使能方法,在rl_config参数中加入40 使能方法,在rl_config参数中加入
41 ```41 ```
Mdocs/features/grpo_yaml.md+1-1
@@ -62,7 +62,7 @@ MindSpeed RL 通过将模型参数和训练配置解耦的层级化参数配置
62* `max_prompt_length`:GRPO 训练中最大 prompt 长度,默认为512;62* `max_prompt_length`:GRPO 训练中最大 prompt 长度,默认为512;
63* `clip_ratio`:Actor 模型训练计算损失函数时的 clip 比例,默认为0.2 一般取值范围 [0.1,0.3] 最大取值范围[0,1] 该数值越大允许策略更新的幅度越大,反之不然;63* `clip_ratio`:Actor 模型训练计算损失函数时的 clip 比例,默认为0.2 一般取值范围 [0.1,0.3] 最大取值范围[0,1] 该数值越大允许策略更新的幅度越大,反之不然;
64* `entropy_coeff`: entropy loss 所占权重;64* `entropy_coeff`: entropy loss 所占权重;
65-* `n_samples_per_prompt`:每条prompt的重用次数,一条 prompt 输入能输出 n 条 responese;65+* `n_samples_per_prompt`:每条prompt的重用次数,一条 prompt 输入能输出 n 条 response;
66* `guarantee_order`: 是否开启TransferDock保序,默认 False;66* `guarantee_order`: 是否开启TransferDock保序,默认 False;
67* `shuffle_mini_batch`:Actor 训练时是否对 minibatch 进行 shuffle,默认为 False;67* `shuffle_mini_batch`:Actor 训练时是否对 minibatch 进行 shuffle,默认为 False;
68* `log_max_throughput`: 配置tps计算时是否使用max值,默认为 true;68* `log_max_throughput`: 配置tps计算时是否使用max值,默认为 true;
Mdocs/features/integrated_worker.md+1-1
@@ -75,7 +75,7 @@ actor_config:
75generate_config:75generate_config:
76 infer_tensor_parallel_size: 4 # 推理态 TP 切分76 infer_tensor_parallel_size: 4 # 推理态 TP 切分
77 infer_pipeline_parallel_size: 1 # 推理态 PP 切分77 infer_pipeline_parallel_size: 1 # 推理态 PP 切分
78- infer_expert_parallel_size: 1 # 推理态 PP 切分78+ infer_expert_parallel_size: 1 # 推理态 EP 切分
79 79 
80 offload_train_optimizer: true # 设置为 true 可以使能在推理时卸载训练态优化器80 offload_train_optimizer: true # 设置为 true 可以使能在推理时卸载训练态优化器
81 offload_train_grad: true # 设置为 true 可以使能在推理时卸载训练态梯度81 offload_train_grad: true # 设置为 true 可以使能在推理时卸载训练态梯度
Mdocs/features/partial_rollout.md+1-1
@@ -15,7 +15,7 @@ rl_config:
15同步引擎:数据按批处理,同时进入推理引擎、批次内所有数据完成推理后同时返回结果15同步引擎:数据按批处理,同时进入推理引擎、批次内所有数据完成推理后同时返回结果
16关键技术点:16关键技术点:
171. 长序列推理截断机制:根据最大推理长度和次数设置推理截断点,将截断样本放入TransferDock,当满足≥GBS个prompt已完成全部推理,则进入后续计算任务,否则则从TransferDock中取数据再次推理,达成高资源利用率。171. 长序列推理截断机制:根据最大推理长度和次数设置推理截断点,将截断样本放入TransferDock,当满足≥GBS个prompt已完成全部推理,则进入后续计算任务,否则则从TransferDock中取数据再次推理,达成高资源利用率。
18-2. 基于优先级的混合A数据重排和采样技术:在下一轮推理时,优先取出被截断样本进行推理,避免影响效果和收敛性。18+2. 基于优先级的混合数据重排和采样技术:在下一轮推理时,优先取出被截断样本进行推理,避免影响效果和收敛性。
19 19 
20![img.png](../../sources/images/partial_rollout/sync.png)20![img.png](../../sources/images/partial_rollout/sync.png)
21 21
Mdocs/features/ppo_yaml.md+1-1
@@ -77,7 +77,7 @@ MindSpeed RL 通过将模型参数和训练配置解耦的层级化参数配置
77* `clip_ratio`:Actor 模型训练计算损失函数时的 clip 比例,默认为0.2 一般取值范围 [0.1,0.3] 最大取值范围[0,1] 该数值越大允许策略更新的幅度越大,反之不然;77* `clip_ratio`:Actor 模型训练计算损失函数时的 clip 比例,默认为0.2 一般取值范围 [0.1,0.3] 最大取值范围[0,1] 该数值越大允许策略更新的幅度越大,反之不然;
78* `cliprange_value`:Critic 模型训练计算损失函数时的 clip 比例,默认为0.2 一般取值范围 [0.1,0.3] 最大取值范围[0,1] 该数值越大允许策略更新的幅度越大,反之不然;78* `cliprange_value`:Critic 模型训练计算损失函数时的 clip 比例,默认为0.2 一般取值范围 [0.1,0.3] 最大取值范围[0,1] 该数值越大允许策略更新的幅度越大,反之不然;
79* `entropy_coeff`: entropy loss 所占权重;79* `entropy_coeff`: entropy loss 所占权重;
80-* `n_samples_per_prompt`:每条prompt的重用次数,一条 prompt 输入能输出 n 条 responese;80+* `n_samples_per_prompt`:每条prompt的重用次数,一条 prompt 输入能输出 n 条 response;
81* `guarantee_order`: 是否开启TransferDock保序,默认 False;81* `guarantee_order`: 是否开启TransferDock保序,默认 False;
82* `shuffle_mini_batch`:Actor 训练时是否对 minibatch 进行 shuffle,默认为 False;82* `shuffle_mini_batch`:Actor 训练时是否对 minibatch 进行 shuffle,默认为 False;
83* `actor_resource` :分配给 Actor 、Reference模型的显卡数量;83* `actor_resource` :分配给 Actor 、Reference模型的显卡数量;
Mdocs/features/profiler.md+1-1
@@ -31,7 +31,7 @@ profiler_config:
31```31```
32 32 
33针对MindSpeed-RL仓库支持的直接偏好对齐(DPO)算法,可以通过如下方式进行配置:33针对MindSpeed-RL仓库支持的直接偏好对齐(DPO)算法,可以通过如下方式进行配置:
34-> **注意**:其他未罗列的参数目前对应功能都未支持,且该场景下采集profiliing 数据会warmup 1步,即实际采集步数为 profile_step_end - profile_step_start + 1。34+> **注意**:其他未罗列的参数目前对应功能都未支持,且该场景下采集profiling 数据会warmup 1步,即实际采集步数为 profile_step_end - profile_step_start + 1。
35```yaml35```yaml
36profiler_config:36profiler_config:
37 integrated:37 integrated:
Mdocs/features/remove_padding.md+1-1
@@ -1,6 +1,6 @@
1# 特性说明1# 特性说明
2 2 
3-本文档介绍了项在大语言模型训练中用于加速、节省显存的关键特性:3+本文档介绍了项在大语言模型训练中用于加速、节省显存的关键特性:
4 4 
51. **填充移除(Remove padding)** 51. **填充移除(Remove padding)**
62. **动态批量大小(Dynamic Batch Size)**62. **动态批量大小(Dynamic Batch Size)**
Mdocs/features/resharding.md+1-1
@@ -30,7 +30,7 @@
30 30
31为解决这一问题,提出基于参数分桶的训推内存0冗余切换技术,如下图所示。31为解决这一问题,提出基于参数分桶的训推内存0冗余切换技术,如下图所示。
32 32 
33-(1)ShardingMananger初始化阶段,根据推理并行策略切分或推理引擎提供的权重元信息(MetaInfo)分配每个PP Stage所需的MemoryBuffer(推理参数桶);33+(1)ShardingManager初始化阶段,根据推理并行策略切分或推理引擎提供的权重元信息(MetaInfo)分配每个PP Stage所需的MemoryBuffer(推理参数桶);
34 34
35(2)进行推理态计算时,为每个PP申请推理参数桶内存,将训练态权重参数经过并行策略转换为推理态权重参数,并拷贝至推理参数桶中,同时,将训练态模型权重、优化器、梯度等全部卸载至CPU侧;35(2)进行推理态计算时,为每个PP申请推理参数桶内存,将训练态权重参数经过并行策略转换为推理态权重参数,并拷贝至推理参数桶中,同时,将训练态模型权重、优化器、梯度等全部卸载至CPU侧;
36 36
Mdocs/install_guide.md+1-1
@@ -146,7 +146,7 @@ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
146yum install jemalloc146yum install jemalloc
147```147```
148如果上述方法无法正常安装,可以通过源码编译安装148如果上述方法无法正常安装,可以通过源码编译安装
149-前往jamalloc官网下载最新稳定版本,官网地址:https://github.com/jemalloc/jemalloc/releases/149+前往jemalloc官网下载最新稳定版本,官网地址:https://github.com/jemalloc/jemalloc/releases/
150```shell150```shell
151tar -xvf jemalloc-{version}.tar.bz2151tar -xvf jemalloc-{version}.tar.bz2
152cd jemalloc-{version}152cd jemalloc-{version}
Mdocs/solutions/r1_zero_deepseek_671b.md+1-1
@@ -1,5 +1,5 @@
1# DeepSeek-R1-Zero-671B1# DeepSeek-R1-Zero-671B
2-R1-Zero模型是使用base模型,基于GPRO+规则奖励打分进行训练,本篇工作使用DeepSeek-671B Base模型复现DeepSeek-R1-Zero在Math领域的工作。2+R1-Zero模型是使用base模型,基于GRPO+规则奖励打分进行训练,本篇工作使用DeepSeek-671B Base模型复现DeepSeek-R1-Zero在Math领域的工作。
3 3 
4 4 
5## 复现效果5## 复现效果
Mdocs/solutions/r1_zero_qwen25_32b.md+2-2
@@ -1,5 +1,5 @@
1# DeepSeek-R1-Zero-Qwen25-32B1# DeepSeek-R1-Zero-Qwen25-32B
2-R1-Zero模型是使用base模型,基于GPRO+规则奖励打分进行训练,本篇工作使用Qwen25-32B模型复现DeepSeek-R1-Zero在Math领域的工作。2+R1-Zero模型是使用base模型,基于GRPO+规则奖励打分进行训练,本篇工作使用Qwen25-32B模型复现DeepSeek-R1-Zero在Math领域的工作。
3 3 
4## 整体流程示意图4## 整体流程示意图
5 5 
@@ -9,7 +9,7 @@ R1-Zero模型是使用base模型,基于GPRO+规则奖励打分进行训练,
9## 复现效果9## 复现效果
10### 训练细节10### 训练细节
11 11 
12-我们使用Qwen-2.5-32B模型在deepscaler数据集上使用准的格式奖励和准确性奖励训练。12+我们使用Qwen-2.5-32B模型在deepscaler数据集上使用准的格式奖励和准确性奖励训练。
13 13 
14**训练过程记录如下:**14**训练过程记录如下:**
15 15 
Mdocs/solutions/r1_zero_qwen25_7b.md+1-1
@@ -1,5 +1,5 @@
1# DeepSeek-R1-Zero-Qwen25-7B1# DeepSeek-R1-Zero-Qwen25-7B
2-R1-Zero模型是使用base模型,基于GPRO+规则奖励打分进行训练,本篇工作使用Qwen25-7B模型复现DeepSeek-R1-Zero在Math领域的工作。2+R1-Zero模型是使用base模型,基于GRPO+规则奖励打分进行训练,本篇工作使用Qwen25-7B模型复现DeepSeek-R1-Zero在Math领域的工作。
3 3 
4## 整体流程示意图4## 整体流程示意图
5 5