已合并
update readme #2173
wangyuansheng8创建于 2025年4月9日
update readme #2173
已合并
从refs/pull/2173/head合入到core_r0.8.0
共 7 个文件变更+42-21
| @@ -346,7 +346,7 @@ MindSpeed 特性由七大模块组成,分别为:megetron特性支持、并 | |||
| 346 | <td rowspan="5"> Ascend Norm重计算</td> | 346 | <td rowspan="5"> Ascend Norm重计算</td> |
| 347 | <td><a href="docs/features/norm-recompute.md">link</a></td> | 347 | <td><a href="docs/features/norm-recompute.md">link</a></td> |
| 348 | <td style="text-align: center; vertical-align: middle">✅</td> | 348 | <td style="text-align: center; vertical-align: middle">✅</td> |
| 349 | - <td style="text-align: center; vertical-align: middle">✅</td> | 349 | + <td style="text-align: center; vertical-align: middle">❌</td> |
| 350 | <td style="text-align: center; vertical-align: middle">✅</td> | 350 | <td style="text-align: center; vertical-align: middle">✅</td> |
| 351 | </tr> | 351 | </tr> |
| 352 | <tbody> | 352 | <tbody> |
| @@ -355,7 +355,7 @@ MindSpeed 特性由七大模块组成,分别为:megetron特性支持、并 | |||
| 355 | <td><a href="docs/features/hccl-group-buffer-set.md">link</a></td> | 355 | <td><a href="docs/features/hccl-group-buffer-set.md">link</a></td> |
| 356 | <td style="text-align: center; vertical-align: middle">✅</td> | 356 | <td style="text-align: center; vertical-align: middle">✅</td> |
| 357 | <td style="text-align: center; vertical-align: middle">✅</td> | 357 | <td style="text-align: center; vertical-align: middle">✅</td> |
| 358 | - <td style="text-align: center; vertical-align: middle">❌</td> | 358 | + <td style="text-align: center; vertical-align: middle">✅</td> |
| 359 | </tr> | 359 | </tr> |
| 360 | </table> | 360 | </table> |
| 361 | 361 | ||
| @@ -688,6 +688,22 @@ MindSpeed 特性由七大模块组成,分别为:megetron特性支持、并 | |||
| 688 | <td style="text-align: center; vertical-align: middle">✅</td> | 688 | <td style="text-align: center; vertical-align: middle">✅</td> |
| 689 | <td style="text-align: center; vertical-align: middle">❌</td> | 689 | <td style="text-align: center; vertical-align: middle">❌</td> |
| 690 | </tr> | 690 | </tr> |
| 691 | +<tbody> | ||
| 692 | + <tr> | ||
| 693 | + <td rowspan="5"> Ascend 非对齐线性层</td> | ||
| 694 | + <td><a href="docs/features/unaligned_linear.md">link</a></td> | ||
| 695 | + <td style="text-align: center; vertical-align: middle">✅</td> | ||
| 696 | + <td style="text-align: center; vertical-align: middle">❌</td> | ||
| 697 | + <td style="text-align: center; vertical-align: middle">✅</td> | ||
| 698 | + </tr> | ||
| 699 | +<tbody> | ||
| 700 | + <tr> | ||
| 701 | + <td rowspan="5"> Ascend 非对齐Ulysses长序列并行</td> | ||
| 702 | + <td><a href="docs/features/unaligned-ulysses-context-parallel.md">link</a></td> | ||
| 703 | + <td style="text-align: center; vertical-align: middle">✅</td> | ||
| 704 | + <td style="text-align: center; vertical-align: middle">❌</td> | ||
| 705 | + <td style="text-align: center; vertical-align: middle">✅</td> | ||
| 706 | + </tr> | ||
| 691 | </table> | 707 | </table> |
| 692 | 708 | ||
| 693 | ## 其它特性 | 709 | ## 其它特性 |
| @@ -30,7 +30,7 @@ | |||
| 30 | return batch.values() | 30 | return batch.values() |
| 31 | ``` | 31 | ``` |
| 32 | 32 | ||
| 33 | -2. 在 Megatron-LM 目录下修改`pretrain_gpt.py`文件中的`get_batch`函数。 | 33 | +2. 在 Megatron-LM 目录下修改`pretrain_gpt.py`文件中的`is_dataset_built_on_rank`函数。 |
| 34 | 34 | ||
| 35 | ```diff | 35 | ```diff |
| 36 | def is_dataset_built_on_rank(): | 36 | def is_dataset_built_on_rank(): |
| @@ -36,4 +36,4 @@ net.core.netdev_max_backlog = 65536 | |||
| 36 | - 当切片大小为 $100 * 1024 * 1024$ 时,模型保存和加载效率有所提升。--> | 36 | - 当切片大小为 $100 * 1024 * 1024$ 时,模型保存和加载效率有所提升。--> |
| 37 | 37 | ||
| 38 | ### 显存增量分析 | 38 | ### 显存增量分析 |
| 39 | -开启该特性后,显存的增加量为 `hccl-slice-size * (dp + 1) * 4B`。 | 39 | +开启该特性后,显存的增加量为 `hccl-slice-size * (2 * dp + 1) * 4B`。 |
| @@ -12,12 +12,11 @@ Token路由:确定每个token应该由哪个专家处理。这可以通过专 | |||
| 12 | 12 | ||
| 13 | ## 使用方法 | 13 | ## 使用方法 |
| 14 | ### 前提条件 | 14 | ### 前提条件 |
| 15 | -开启专家并行,并且`moe-token-dispatcher-type`设置为`alltoall` | 15 | +开启专家并行,并且`moe-token-dispatcher-type`设置为`alltoall`,即脚本中需包含以下参数:</br> |
| 16 | -`--expert-model-parallel-size M \ | 16 | +`--moe-token-dispatcher-type alltoall`</br> |
| 17 | ---num-experts N \ | 17 | +`--expert-model-parallel-size M \`</br> |
| 18 | ---moe-token-dispatcher-type alltoall` | 18 | +`--num-experts N \`</br> |
| 19 | - | 19 | +满足以上前提时,设置`--use-fused-moe-token-permute-and-unpermute`即可调用Moe Token Permute和Unpermute融合算子。 |
| 20 | -设置`--use-fused-moe-token-permute-and-unpermute`即可调用Moe Token Permute和Unpermute融合算子。 | ||
| 21 | 20 | ||
| 22 | ## 使用效果 | 21 | ## 使用效果 |
| 23 | 启用融合算子后,不仅能够有效节省内存资源,还能提升模型训练性能。 | 22 | 启用融合算子后,不仅能够有效节省内存资源,还能提升模型训练性能。 |
| @@ -23,11 +23,10 @@ | |||
| 23 | 23 | ||
| 24 | 添加:`--recompute-norm-num-layers ${num}` 可指定Norm重计算的层数。 | 24 | 添加:`--recompute-norm-num-layers ${num}` 可指定Norm重计算的层数。 |
| 25 | 25 | ||
| 26 | -Norm重计算兼容激活函数重计算、全重计算同时开启: | 26 | +## 注意事项 |
| 27 | - | 27 | +1. Norm重计算特性仅支持mcore分支,不支持legacy分支,即仅支持在开启`--use-mcore-models`时,通过`--recompute-norm`使能。 |
| 28 | -1.同时开启时,仅支持 `--recompute-method` 为 `block`。 | 28 | +2. Norm重计算兼容激活函数重计算、全重计算同时开启: |
| 29 | - | 29 | + - 同时开启时,仅支持 `--recompute-method` 为 `block`。 |
| 30 | -2.同时开启时,会按照指定的全重计算和Norm重计算的层数做各自类型的重计算,即不会有一层既做全重计算又做Norm重计算。 | 30 | + - 同时开启时,会按照指定的全重计算和Norm重计算的层数做各自类型的重计算,即不会有一层既做全重计算又做Norm重计算。 |
| 31 | - | 31 | + - 同时开启时,执行优先级是先计算全重计算层,后计算Norm重计算层。 |
| 32 | -(注意:执行优先级是先计算全重计算层,后Norm重计算层。) | ||
| 33 | 32 | ||
| @@ -49,9 +49,12 @@ ulysses_attention = UlyssesContextAttention(core_attention, ps.get_context_paral | |||
| 49 | gather_size_calculator=calculator) | 49 | gather_size_calculator=calculator) |
| 50 | 50 | ||
| 51 | ``` | 51 | ``` |
| 52 | -*说明*: | ||
| 53 | -“非对齐 Ulysses”长序列并行暂不兼容Ulysses长序列并行KV缓存优化,即启动脚本设置了--context-parallel-kv-cache-policy为full或者half,系统将自动切换回使用对齐的Ulysses长序列并行机制。 | ||
| 54 | 52 | ||
| 55 | ## 使用效果 | 53 | ## 使用效果 |
| 56 | 54 | ||
| 57 | -通过引入“非对齐 Ulysses”,系统提升了对不同输入长度的适应能力。这不仅解决了传统 Ulysses 在处理动态或不规则输入序列时遇到的问题,而且保持了良好的扩展能力。 | 55 | +通过引入“非对齐 Ulysses”,系统提升了对不同输入长度的适应能力。这不仅解决了传统 Ulysses 在处理动态或不规则输入序列时遇到的问题,而且保持了良好的扩展能力。 |
| 56 | + | ||
| 57 | +## 注意事项 | ||
| 58 | + | ||
| 59 | +1. 非对齐Ulysses长序列并行不支持在legacy分支使用,即不支持和`--use-legacy-models`同时开启。 | ||
| 60 | +2. 非对齐Ulysses长序列并行暂不兼容Ulysses长序列并行KV缓存优化,即启动脚本设置了--context-parallel-kv-cache-policy为full或者half,系统将自动切换回使用对齐的Ulysses长序列并行机制。 | ||
| @@ -32,4 +32,8 @@ | |||
| 32 | - **补充功能场景**:补充注意力头数、序列长度不能被TP整除的场景。 | 32 | - **补充功能场景**:补充注意力头数、序列长度不能被TP整除的场景。 |
| 33 | - **潜在性能影响**:各TP处理的注意力头数、序列长度不一致,负载不均衡,建议模型结构设计时考虑该情况。 | 33 | - **潜在性能影响**:各TP处理的注意力头数、序列长度不一致,负载不均衡,建议模型结构设计时考虑该情况。 |
| 34 | 34 | ||
| 35 | -综上所述,该特性是为了完善TP(张量并行)场景下的限制约束,特性本身会带来负载不均衡的性能影响,所以在模型设计和超参优化时注意这一影响。 | 35 | +综上所述,该特性是为了完善TP(张量并行)场景下的限制约束,特性本身会带来负载不均衡的性能影响,所以在模型设计和超参优化时注意这一影响。 |
| 36 | + | ||
| 37 | +## 注意事项 | ||
| 38 | + | ||
| 39 | +1. 非对齐线性层不支持在legacy分支使用,即不支持和`--use-legacy-models`同时开启。 | ||