diff --git a/docs/mindformers/docs/source_zh_cn/advanced_development/accuracy_comparison.md b/docs/mindformers/docs/source_zh_cn/advanced_development/accuracy_comparison.md index 88a9a879ed462cd9060ce74136eed8d7aaa5703d..e133a3b7b27b0ac5b32c0cc059d4b05d1a29dac7 100644 --- a/docs/mindformers/docs/source_zh_cn/advanced_development/accuracy_comparison.md +++ b/docs/mindformers/docs/source_zh_cn/advanced_development/accuracy_comparison.md @@ -264,7 +264,7 @@ Megatron-LM 是一个面向大规模训练任务的成熟框架,具备高度 | `checkpoint-activations` | 是否启用激活值检查点机制以减少显存 | 不支持配置 | | | `moe-layer-recompute` | MoE 层启用重计算 | 不支持配置 | | -**注意**:两个框架还有其他训练相关性较小的配置,MindSpore Transformer 详情参考[配置说明],Megatron-LM 可通过执行命令`torchrun --nproc_per_node=1 pretrain_gpt.py --help`查看。 +**注意**:两个框架还有其他训练相关性较小的配置,MindSpore Transformer 详情参考[配置说明](https://www.mindspore.cn/mindformers/docs/zh-CN/dev/feature/configuration.html),Megatron-LM 可通过执行命令`torchrun --nproc_per_node=1 pretrain_gpt.py --help`查看。 ### 3.2 数据集对齐 @@ -385,7 +385,63 @@ Megatron-LM 是一个面向大规模训练任务的成熟框架,具备高度 2. MindSpore Transformers to Megatron-LM - 为了将 MindSpore Transformers 的权重精确映射为 Megatron-LM 可加载的等价权重,我们将会提供转换权重脚本,执行权重转换脚本即可获得等价权重。 + 为了将 MindSpore Transformers 的权重精确映射为 Megatron-LM 可加载的等价权重,我们提供了转换权重脚本,执行[权重转换脚本]即可获得等价权重,[执行步骤]如下:。 + + ```shell + cd /path/to/Megatron-LM + + TARGET_TP_SIZE=2 # 目标张量并行数 + TARGET_PP_SIZE=2 # 目标流水线并行数 + + python ./tools/checkpoint/convert.py \ + --megatron-path 'path_to_megatron' \ + --model-type GPT \ + --loader core_mf \ + --saver core \ + --target-tensor-parallel-size ${TARGET_TP_SIZE} \ + --target-pipeline-parallel-size ${TARGET_PP_SIZE} \ + --load-dir "path_to_ms_ckpt" \ + --save-dir "path_to_megatron_ckpt" \ + --loader-transformer-impl local \ + --saver-transformer-impl local \ + --position-embedding-type "rope" \ + --true-vocab-size 128000 \ + --padded-vocab-size 128000 \ + --num-layers 32 \ + --seq-length 2048 \ + --hidden-size 4096 \ + --ffn-hidden-size 16384 \ + --num-attention-heads 32 \ + --num-query-groups 16 \ + --normalization "RMSNorm" \ + --add-bias-linear \ + --swiglu + ``` + + > **参数说明:** + > - `--megatron-path`:Megatron-LM仓库的根目录路径。 + > - `--model-type`:模型类型(如GPT)。 + > - `--loader`:加载器类型(此处为core_mf)。 + > - `--saver`:保存器类型(如core)。 + > - `--target-tensor-parallel-size`:目标张量并行数(TP)。 + > - `--target-pipeline-parallel-size`:目标流水线并行数(PP)。 + > - `--load-dir`:MindSpore导出的safetensors权重文件路径(单文件)。 + > - `--save-dir`:Megatron权重输出目录。 + > - `--loader-transformer-impl`:加载器Transformer实现,local或transformer_engine。 + > - `--saver-transformer-impl`:保存器Transformer实现,local或transformer_engine。 + > - `--true-vocab-size`:模型实际词表大小(int,可选),指定时会去除embedding表padding。 + > - `--padded-vocab-size`:pad后的词表大小(int),MindFormers中一般与实际词表相同。 + > - `--num-layers`:Transformer层数(int)。 + > - `--seq-length`:最大序列长度(int)。 + > - `--hidden-size`:隐藏层维度(int)。 + > - `--ffn-hidden-size`:前馈网络隐藏层维度(int)。 + > - `--num-attention-heads`:注意力头数(int)。 + > - `--num-query-groups`:Query分组数(int,可选)。 + > - `--normalization`:归一化类型(如"RMSNorm")。 + > - `--add-bias-linear`:为线性层添加bias(布尔开关,添加该参数则为True,不添加为False)。 + > - `--swiglu`:使用swiglu激活(布尔开关,添加该参数则为True,不添加为False)。 + > - `--position-embedding-type`:位置编码类型(learned_absolute或rope)。 + > - `--ms2torch-ckpt-path`:中间转换权重的输出路径(str,可选,默认"./ms2pt_checkpoint")。 ### 3.4 查看结果 @@ -419,4 +475,4 @@ Megatron-LM 是一个面向大规模训练任务的成熟框架,具备高度 | `iteration` | `epoch` 与 `step` 的组合 | 表示训练过程中的全局迭代次数。MindSpore Transformers 通常以 `(epoch, step)` 表示当前训练位置,而 Megatron-LM 使用单一的 `iteration` 表示。两者关系为:`iteration = (epoch - 1) * steps_per_epoch + step` | | `lm loss` | `loss` | 训练损失,精度对比核心指标。MindSpore Transformers 的`loss`是指`lm loss`和`aux loss`的和,未来将会分别打印输出 | | `learning rate` | `lr` | 学习率,精度对比参考指标 | - | `grand norm` | `global norm` | 全局梯度范数,精度对比参考指标 | \ No newline at end of file + | `grad norm` | `global norm` | 全局梯度范数,精度对比参考指标 | \ No newline at end of file