已合并
docs: 按新目录结构重组 docs/zh #3175
犀牛创建于 18 天前
docs: 按新目录结构重组 docs/zh #3175
已合并
共 102 个文件变更+347-345
| @@ -21,7 +21,7 @@ training.plugin | |||
| 21 | -> model(**batch_data, use_cache=False).loss | 21 | -> model(**batch_data, use_cache=False).loss |
| 22 | ``` | 22 | ``` |
| 23 | 23 | ||
| 24 | -迁移前先阅读 `docs/zh/features/fsdp2_developer_migration_guide.md`,理解插件式 FSDP2 的路线、入口、注册、YAML、权重加载和启动方式。 | 24 | +迁移前先阅读 `docs/zh/guides/development/fsdp2_model_migration_guide.md`,理解插件式 FSDP2 的路线、入口、注册、YAML、权重加载和启动方式。 |
| 25 | 25 | ||
| 26 | ## 开始前:创建 Todo | 26 | ## 开始前:创建 Todo |
| 27 | 27 | ||
| @@ -57,7 +57,7 @@ MindSpeed MM:面向大规模分布式训练的昇腾多模态大模型套件 | |||
| 57 | 57 | ||
| 58 | # 目录结构 | 58 | # 目录结构 |
| 59 | 59 | ||
| 60 | -关键目录如下,详细目录介绍参见[目录介绍](docs/zh/dir_structure.md) | 60 | +关键目录如下,详细目录介绍参见[目录介绍](docs/zh/introduction/dir_structure.md) |
| 61 | 61 | ||
| 62 | ```bash | 62 | ```bash |
| 63 | ├─bridge # mbridge在线权重转换 | 63 | ├─bridge # mbridge在线权重转换 |
| @@ -222,14 +222,14 @@ MindSpeed MM支持Atlas 800T A2等昇腾训练硬件形态,软件版本配套 | |||
| 222 | 222 | ||
| 223 | --- | 223 | --- |
| 224 | 224 | ||
| 225 | -MindSpeed MM具体的安装请参考[安装指南](docs/zh/pytorch/install_guide.md)。 | 225 | +MindSpeed MM具体的安装请参考[安装指南](docs/zh/guides/installation/install_guide.md)。 |
| 226 | -当前qwen3vl、wan2.2模型已支持一键安装,一键安装使用说明详见[一键安装使用说明](docs/zh/pytorch/install_guide.md)。 | 226 | +当前qwen3vl、wan2.2模型已支持一键安装,一键安装使用说明详见[一键安装使用说明](docs/zh/guides/installation/install_guide.md)。 |
| 227 | 227 | ||
| 228 | # 快速上手 | 228 | # 快速上手 |
| 229 | 229 | ||
| 230 | --- | 230 | --- |
| 231 | 231 | ||
| 232 | -MindSpeed MM将以Qwen2.5-VL-3B和Wan2.1-T2V-1.3B模型为例,引导开发者快速上手预置模型在昇腾NPU上的高效运行。具体的操作请参考[快速上手](./docs/zh/pytorch/quickstart.md)。 | 232 | +MindSpeed MM将以Qwen2.5-VL-3B和Wan2.1-T2V-1.3B模型为例,引导开发者快速上手预置模型在昇腾NPU上的高效运行。具体的操作请参考[快速上手](./docs/zh/guides/practices/quickstart.md)。 |
| 233 | 233 | ||
| 234 | # 特性/模型介绍 | 234 | # 特性/模型介绍 |
| 235 | 235 | ||
| @@ -237,7 +237,7 @@ MindSpeed MM将以Qwen2.5-VL-3B和Wan2.1-T2V-1.3B模型为例,引导开发者 | |||
| 237 | 237 | ||
| 238 | ## 已支持特性概览 | 238 | ## 已支持特性概览 |
| 239 | 239 | ||
| 240 | -| 模型 \ 特性 | [TP](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/tensor-parallel.md) | [TP-SP](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/sequence-parallel.md) | [VPP](docs/zh/features/virtual_pipeline_parallel.md) | [PP](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/pipeline-parallel.md) | CP | [Distributed Optimizer](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/distributed-optimizer.md) | [Recomputation](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/recomputation.md) | [LoRA](./docs/zh/features/lora_finetune.md) | RL | [FSDP2](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/fsdp2.md) | | 240 | +| 模型 \ 特性 | [TP](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/tensor-parallel.md) | [TP-SP](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/sequence-parallel.md) | [VPP](docs/zh/features/parallel/virtual_pipeline_parallel.md) | [PP](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/pipeline-parallel.md) | CP | [Distributed Optimizer](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/distributed-optimizer.md) | [Recomputation](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/recomputation.md) | [LoRA](./docs/zh/features/training_mode/lora_finetune.md) | RL | [FSDP2](https://gitcode.com/Ascend/MindSpeed/blob/master/docs/zh/features/fsdp2.md) | |
| 241 | |:--------------------:|:------:|:------:|:------:|:---------------------------------------------------------------------------------------:|:------:|:------:|:------:|:------:|:------:|:------:| | 241 | |:--------------------:|:------:|:------:|:------:|:---------------------------------------------------------------------------------------:|:------:|:------:|:------:|:------:|:------:|:------:| |
| 242 | | Magistral-Small-2509 | | | | | | | ✔ | ✔ | | ✔ | | 242 | | Magistral-Small-2509 | | | | | | | ✔ | ✔ | | ✔ | |
| 243 | | InternVL3.5-30B | | | | | | | ✔ | | | ✔ | | 243 | | InternVL3.5-30B | | | | | | | ✔ | | | ✔ | |
| @@ -284,7 +284,7 @@ MindSpeed MM将以Qwen2.5-VL-3B和Wan2.1-T2V-1.3B模型为例,引导开发者 | |||
| 284 | 284 | ||
| 285 | ## 配套版本与支持模型 | 285 | ## 配套版本与支持模型 |
| 286 | 286 | ||
| 287 | -MindSpeed MM 预置了覆盖多模态生成、多模态理解等任务的丰富模型;各模型的参数规模、训练任务、推荐集群与认证状态,详见 **[MindSpeed MM 支持模型列表](docs/zh/pytorch/supported_models.md)**。 | 287 | +MindSpeed MM 预置了覆盖多模态生成、多模态理解等任务的丰富模型;各模型的参数规模、训练任务、推荐集群与认证状态,详见 **[MindSpeed MM 支持模型列表](docs/zh/introduction/supported_models.md)**。 |
| 288 | 288 | ||
| 289 | 大语言模型(稠密模型、稀疏模型和状态空间模型)由 MindSpeed-LLM 专项维护,如需进行大语言模型训练,请访问 [MindSpeed-LLM](https://gitcode.com/Ascend/MindSpeed-LLM/blob/master/docs/zh/pytorch/models/supported_models.md) 获取详细使用说明。 | 289 | 大语言模型(稠密模型、稀疏模型和状态空间模型)由 MindSpeed-LLM 专项维护,如需进行大语言模型训练,请访问 [MindSpeed-LLM](https://gitcode.com/Ascend/MindSpeed-LLM/blob/master/docs/zh/pytorch/models/supported_models.md) 获取详细使用说明。 |
| 290 | 290 | ||
| @@ -314,7 +314,7 @@ MindSpeed MM 预置了覆盖多模态生成、多模态理解等任务的丰富 | |||
| 314 | 314 | ||
| 315 | MindSpeed MM集成了昇腾profiling采集工具,以提供对模型运行情况的分析。该工具能够依照配置采集模型的算子、显存等关键信息,同时支持动静态两种采集方式,协助开发者分析模型瓶颈,并可根据实际场景需求选择使用。 | 315 | MindSpeed MM集成了昇腾profiling采集工具,以提供对模型运行情况的分析。该工具能够依照配置采集模型的算子、显存等关键信息,同时支持动静态两种采集方式,协助开发者分析模型瓶颈,并可根据实际场景需求选择使用。 |
| 316 | 316 | ||
| 317 | - 具体方法见 [README](./docs/zh/tools.md) 的profiling章节 | 317 | + 具体方法见 [README](./docs/zh/tools/tools.md) 的profiling章节 |
| 318 | 318 | ||
| 319 | ## MindStudio Insight性能分析工具 | 319 | ## MindStudio Insight性能分析工具 |
| 320 | 320 | ||
| @@ -327,19 +327,19 @@ MindStudio Insight提供了包括Timeline视图、通信分析、计算耗时等 | |||
| 327 | 327 | ||
| 328 | MindSpeed MM支持提取视频和文本特征并保存 | 328 | MindSpeed MM支持提取视频和文本特征并保存 |
| 329 | 329 | ||
| 330 | - 具体方法见 [README](./docs/zh/tools.md) 的Sora类模型特征提取章节 | 330 | + 具体方法见 [README](./docs/zh/tools/tools.md) 的Sora类模型特征提取章节 |
| 331 | 331 | ||
| 332 | ## 内存快照提取 | 332 | ## 内存快照提取 |
| 333 | 333 | ||
| 334 | MindSpeed MM集成了昇腾内存快照采集工具,以提供对模型运行情况的分析。 | 334 | MindSpeed MM集成了昇腾内存快照采集工具,以提供对模型运行情况的分析。 |
| 335 | 335 | ||
| 336 | - 具体方法见 [README](./docs/zh/tools.md) 的内存快照提取章节 | 336 | + 具体方法见 [README](./docs/zh/tools/tools.md) 的内存快照提取章节 |
| 337 | 337 | ||
| 338 | ## Tensorboard使用 | 338 | ## Tensorboard使用 |
| 339 | 339 | ||
| 340 | MindSpeed MM支持Tensorboard的使用 | 340 | MindSpeed MM支持Tensorboard的使用 |
| 341 | 341 | ||
| 342 | - 具体方法见 [README](./docs/zh/tools.md) 的Tensorboard使用章节 | 342 | + 具体方法见 [README](./docs/zh/tools/tools.md) 的Tensorboard使用章节 |
| 343 | 343 | ||
| 344 | # 版本维护 | 344 | # 版本维护 |
| 345 | 345 | ||
| @@ -371,7 +371,7 @@ MindSpeed MM已发布版本维护策略: | |||
| 371 | 371 | ||
| 372 | --- | 372 | --- |
| 373 | 373 | ||
| 374 | -相关FAQ请参考链接:[FAQ](./docs/zh/FAQ.md) | 374 | +相关FAQ请参考链接:[FAQ](./docs/zh/guides/troubleshooting/FAQ.md) |
| 375 | 375 | ||
| 376 | # 相关资源 | 376 | # 相关资源 |
| 377 | 377 | ||
| @@ -59,13 +59,13 @@ class VppParallelConfig(BaseModel): | |||
| 59 | """权模型切分配置,包括tp的size,以及pp切分时vit和llm在pp域每张卡上切分的层数""" | 59 | """权模型切分配置,包括tp的size,以及pp切分时vit和llm在pp域每张卡上切分的层数""" |
| 60 | 60 | ||
| 61 | llm_pp_layers: List[List[NonNegativeInt]] | 61 | llm_pp_layers: List[List[NonNegativeInt]] |
| 62 | - """llm模块pipeline parallel切分每张卡上切分几层, vpp切分配置参考docs/zh/features/virtual_pipeline_parallel.md""" | 62 | + """llm模块pipeline parallel切分每张卡上切分几层, vpp切分配置参考docs/zh/features/parallel/virtual_pipeline_parallel.md""" |
| 63 | 63 | ||
| 64 | vit_pp_layers: List[List[NonNegativeInt]] | 64 | vit_pp_layers: List[List[NonNegativeInt]] |
| 65 | - """vit模块pipeline parallel切分每张卡上切分几层, vpp切分配置参考docs/zh/features/virtual_pipeline_parallel.md""" | 65 | + """vit模块pipeline parallel切分每张卡上切分几层, vpp切分配置参考docs/zh/features/parallel/virtual_pipeline_parallel.md""" |
| 66 | 66 | ||
| 67 | audio_pp_layers: Optional[List[List[NonNegativeInt]]] = None | 67 | audio_pp_layers: Optional[List[List[NonNegativeInt]]] = None |
| 68 | - """audio模块pipeline parallel切分每张卡上切分几层, vpp切分配置参考docs/zh/features/virtual_pipeline_parallel.md""" | 68 | + """audio模块pipeline parallel切分每张卡上切分几层, vpp切分配置参考docs/zh/features/parallel/virtual_pipeline_parallel.md""" |
| 69 | 69 | ||
| 70 | tp_size: PositiveInt = 1 | 70 | tp_size: PositiveInt = 1 |
| 71 | """默认tensor parallel张量并行组,模型转换时不同的tp组要切分到不同的目录下""" | 71 | """默认tensor parallel张量并行组,模型转换时不同的tp组要切分到不同的目录下""" |
| @@ -22,7 +22,7 @@ This guide provides the complete steps for batch path replacement using the `rep | |||
| 22 | | File Type | Description | Typical Path Example | | 22 | | File Type | Description | Typical Path Example | |
| 23 | |---------|------|-------------| | 23 | |---------|------|-------------| |
| 24 | | Shell scripts (`.sh`) | Training/testing startup scripts | `examples/*/pretrain_*.sh`, `scripts/install.sh` | | 24 | | Shell scripts (`.sh`) | Training/testing startup scripts | `examples/*/pretrain_*.sh`, `scripts/install.sh` | |
| 25 | -| Markdown documents (`.md`) | Installation guides, model usage instructions | `docs/zh/pytorch/install_guide.md`, `docker/OVERVIEW.md` | | 25 | +| Markdown documents (`.md`) | Installation guides, model usage instructions | `docs/zh/guides/installation/install_guide.md`, `docker/OVERVIEW.md` | |
| 26 | | RST documents (`.rst`) | User guides | `UserGuide/quick_start/environment_setup.rst` | | 26 | | RST documents (`.rst`) | User guides | `UserGuide/quick_start/environment_setup.rst` | |
| 27 | | Python files (`.py`) | Source code (if path references exist) | Source files of each module | | 27 | | Python files (`.py`) | Source code (if path references exist) | Source files of each module | |
| 28 | | Dockerfile | Docker image build scripts | `docker/Dockerfile` | | 28 | | Dockerfile | Docker image build scripts | `docker/Dockerfile` | |
Rdocs/zh/features/async_preprocess_iterable_dataset.md→docs/zh/features/data/async_preprocess_iterable_dataset.md+0-0
文件重命名但无更改。
Rdocs/zh/features/building_data_for_VLModel.md→docs/zh/features/data/building_data_for_VLModel.md+1-1
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ## 1. 适用范围 | 5 | ## 1. 适用范围 |
| 6 | 6 | ||
| 7 | -本文所述数据构造方式通用于仓库内大多数 VL 模型(如 [Qwen3.6](../../../examples/qwen3_6)、[Qwen3.5](../../../examples/qwen3_5)、[Qwen3VL](../../../examples/qwen3vl)、[GLM4.5V](../../../examples/glm4.5v)、[Kimi-K2.5](../../../examples/kimik2_5)、[Step3-VL](../../../examples/step3_vl) 等)。各模型若有特殊数据要求(如视频、音频等),以其 README 为准。 | 7 | +本文所述数据构造方式通用于仓库内大多数 VL 模型(如 [Qwen3.6](../../../../examples/qwen3_6)、[Qwen3.5](../../../../examples/qwen3_5)、[Qwen3VL](../../../../examples/qwen3vl)、[GLM4.5V](../../../../examples/glm4.5v)、[Kimi-K2.5](../../../../examples/kimik2_5)、[Step3-VL](../../../../examples/step3_vl) 等)。各模型若有特殊数据要求(如视频、音频等),以其 README 为准。 |
| 8 | 8 | ||
| 9 | <a id="real-data"></a> | 9 | <a id="real-data"></a> |
| 10 | 10 | ||
| @@ -38,40 +38,40 @@ | |||
| 38 | </tr></thead> | 38 | </tr></thead> |
| 39 | <tbody> | 39 | <tbody> |
| 40 | <tr> | 40 | <tr> |
| 41 | - <td class="tg-t1fb" rowspan="10">并行特性</td> | 41 | + <td class="tg-t1fb" rowspan="9">并行特性</td> |
| 42 | <td class="tg-citn">FSDP2</td> | 42 | <td class="tg-citn">FSDP2</td> |
| 43 | - <td class="tg-i1fi"><a href="fsdp2.md">FSDP2</a></td> | 43 | + <td class="tg-i1fi"><a href="parallel/fsdp2.md">FSDP2</a></td> |
| 44 | 44 | ||
| 45 | </tr> | 45 | </tr> |
| 46 | <tr> | 46 | <tr> |
| 47 | <td class="tg-citn" rowspan="2">PP并行</td> | 47 | <td class="tg-citn" rowspan="2">PP并行</td> |
| 48 | - <td class="tg-i1fi"><a href="dynamic_dpcp.md">动态PP / Dynamic DPCP</a></td> | 48 | + <td class="tg-i1fi"><a href="parallel/dynamic_dpcp.md">动态PP / Dynamic DPCP</a></td> |
| 49 | 49 | ||
| 50 | </tr> | 50 | </tr> |
| 51 | <tr> | 51 | <tr> |
| 52 | - <td class="tg-i1fi"><a href="virtual_pipeline_parallel.md">Virtual Pipeline Parallel</a></td> | 52 | + <td class="tg-i1fi"><a href="parallel/virtual_pipeline_parallel.md">Virtual Pipeline Parallel</a></td> |
| 53 | 53 | ||
| 54 | </tr> | 54 | </tr> |
| 55 | <tr> | 55 | <tr> |
| 56 | <td class="tg-citn" rowspan="4">序列并行</td> | 56 | <td class="tg-citn" rowspan="4">序列并行</td> |
| 57 | - <td class="tg-i1fi"><a href="unaligned_ulysses_cp.md">Unaligned Ulysses CP</a></td> | 57 | + <td class="tg-i1fi"><a href="parallel/unaligned_ulysses_cp.md">Unaligned Ulysses CP</a></td> |
| 58 | 58 | ||
| 59 | </tr> | 59 | </tr> |
| 60 | <tr> | 60 | <tr> |
| 61 | - <td class="tg-i1fi"><a href="dit_ring_attention.md">DiT Ring Attention</a></td> | 61 | + <td class="tg-i1fi"><a href="parallel/dit_ring_attention.md">DiT Ring Attention</a></td> |
| 62 | 62 | ||
| 63 | </tr> | 63 | </tr> |
| 64 | <tr> | 64 | <tr> |
| 65 | - <td class="tg-i1fi"><a href="dit_usp.md">DiT USP</a></td> | 65 | + <td class="tg-i1fi"><a href="parallel/dit_usp.md">DiT USP</a></td> |
| 66 | 66 | ||
| 67 | </tr> | 67 | </tr> |
| 68 | <tr> | 68 | <tr> |
| 69 | - <td class="tg-i1fi"><a href="unaligned_sequence_parallel.md">Unaligned Sequence Parallel</a></td> | 69 | + <td class="tg-i1fi"><a href="parallel/unaligned_sequence_parallel.md">Unaligned Sequence Parallel</a></td> |
| 70 | 70 | ||
| 71 | </tr> | 71 | </tr> |
| 72 | <tr> | 72 | <tr> |
| 73 | <td class="tg-citn">异构并行</td> | 73 | <td class="tg-citn">异构并行</td> |
| 74 | - <td class="tg-i1fi"><a href="hetero_parallel.md">Hetero Parallel</a></td> | 74 | + <td class="tg-i1fi"><a href="parallel/hetero_parallel.md">Hetero Parallel</a></td> |
| 75 | 75 | ||
| 76 | </tr> | 76 | </tr> |
| 77 | <tr> | 77 | <tr> |
| @@ -82,90 +82,90 @@ | |||
| 82 | <tr> | 82 | <tr> |
| 83 | <td class="tg-t1fb" rowspan="7">显存优化</td> | 83 | <td class="tg-t1fb" rowspan="7">显存优化</td> |
| 84 | <td class="tg-citn">Offload</td> | 84 | <td class="tg-citn">Offload</td> |
| 85 | - <td class="tg-i1fi"><a href="async_activation_offload.md">Async Activation Offload</a></td> | 85 | + <td class="tg-i1fi"><a href="memory/async_activation_offload.md">Async Activation Offload</a></td> |
| 86 | 86 | ||
| 87 | </tr> | 87 | </tr> |
| 88 | <tr> | 88 | <tr> |
| 89 | <td class="tg-citn" rowspan="3">张量交换</td> | 89 | <td class="tg-citn" rowspan="3">张量交换</td> |
| 90 | - <td class="tg-i1fi"><a href="swap_core.md">Swap Core(张量交换底座)</a></td> | 90 | + <td class="tg-i1fi"><a href="memory/swap_core.md">Swap Core(张量交换底座)</a></td> |
| 91 | 91 | ||
| 92 | </tr> | 92 | </tr> |
| 93 | <tr> | 93 | <tr> |
| 94 | - <td class="tg-i1fi"><a href="op_replay.md">Op Replay</a></td> | 94 | + <td class="tg-i1fi"><a href="optimization/op_replay.md">Op Replay</a></td> |
| 95 | 95 | ||
| 96 | </tr> | 96 | </tr> |
| 97 | <tr> | 97 | <tr> |
| 98 | - <td class="tg-i1fi"><a href="act_stash.md">Act Stash</a></td> | 98 | + <td class="tg-i1fi"><a href="memory/act_stash.md">Act Stash</a></td> |
| 99 | 99 | ||
| 100 | </tr> | 100 | </tr> |
| 101 | <tr> | 101 | <tr> |
| 102 | <td class="tg-citn" rowspan="2">负载均衡</td> | 102 | <td class="tg-citn" rowspan="2">负载均衡</td> |
| 103 | - <td class="tg-0ijx"><a href="online_data_rearrange.md">Online Data Rearrange</a></td> | 103 | + <td class="tg-0ijx"><a href="memory/online_data_rearrange.md">Online Data Rearrange</a></td> |
| 104 | 104 | ||
| 105 | </tr> | 105 | </tr> |
| 106 | <tr> | 106 | <tr> |
| 107 | - <td class="tg-i1fi"><a href="encoder_dp_balance.md">Encoder DP Balance</a></td> | 107 | + <td class="tg-i1fi"><a href="memory/encoder_dp_balance.md">Encoder DP Balance</a></td> |
| 108 | 108 | ||
| 109 | </tr> | 109 | </tr> |
| 110 | <tr> | 110 | <tr> |
| 111 | <td class="tg-citn">Bucket Reordering</td> | 111 | <td class="tg-citn">Bucket Reordering</td> |
| 112 | - <td class="tg-i1fi"><a href="bucket_reordering.md">Bucket Reordering</a></td> | 112 | + <td class="tg-i1fi"><a href="memory/bucket_reordering.md">Bucket Reordering</a></td> |
| 113 | 113 | ||
| 114 | </tr> | 114 | </tr> |
| 115 | <tr> | 115 | <tr> |
| 116 | <td class="tg-t1fb" rowspan="7">优化特性</td> | 116 | <td class="tg-t1fb" rowspan="7">优化特性</td> |
| 117 | <td class="tg-citn" rowspan="2">损失优化</td> | 117 | <td class="tg-citn" rowspan="2">损失优化</td> |
| 118 | - <td class="tg-i1fi"><a href="chunkloss.md">Chunk Loss</a></td> | 118 | + <td class="tg-i1fi"><a href="optimization/chunkloss.md">Chunk Loss</a></td> |
| 119 | 119 | ||
| 120 | </tr> | 120 | </tr> |
| 121 | <tr> | 121 | <tr> |
| 122 | - <td class="tg-i1fi"><a href="vlm_model_loss_calculate_type.md">VLM Model Loss Calculate Type</a></td> | 122 | + <td class="tg-i1fi"><a href="optimization/vlm_model_loss_calculate_type.md">VLM Model Loss Calculate Type</a></td> |
| 123 | 123 | ||
| 124 | </tr> | 124 | </tr> |
| 125 | <tr> | 125 | <tr> |
| 126 | <td class="tg-citn" rowspan="2">性能优化</td> | 126 | <td class="tg-citn" rowspan="2">性能优化</td> |
| 127 | - <td class="tg-jajh"><a href="fpdt.md">FPDT</a></td> | 127 | + <td class="tg-jajh"><a href="optimization/fpdt.md">FPDT</a></td> |
| 128 | 128 | ||
| 129 | </tr> | 129 | </tr> |
| 130 | <tr> | 130 | <tr> |
| 131 | - <td class="tg-jajh"><a href="grad_norm_overlap.md">Grad Norm Overlap</a></td> | 131 | + <td class="tg-jajh"><a href="optimization/grad_norm_overlap.md">Grad Norm Overlap</a></td> |
| 132 | 132 | ||
| 133 | </tr> | 133 | </tr> |
| 134 | <tr> | 134 | <tr> |
| 135 | <td class="tg-citn" rowspan="3">优化器</td> | 135 | <td class="tg-citn" rowspan="3">优化器</td> |
| 136 | - <td class="tg-jajh"><a href="dummy_optimizer.md">Dummy Optimizer</a></td> | 136 | + <td class="tg-jajh"><a href="optimization/dummy_optimizer.md">Dummy Optimizer</a></td> |
| 137 | 137 | ||
| 138 | </tr> | 138 | </tr> |
| 139 | <tr> | 139 | <tr> |
| 140 | - <td class="tg-jajh"><a href="parameter_lr_wd_tuning.md">Parameter LR/WD Tuning</a></td> | 140 | + <td class="tg-jajh"><a href="optimization/parameter_lr_wd_tuning.md">Parameter LR/WD Tuning</a></td> |
| 141 | 141 | ||
| 142 | </tr> | 142 | </tr> |
| 143 | <tr> | 143 | <tr> |
| 144 | - <td class="tg-jajh"><a href="fsdp2_muon_optimizer.md">FSDP2 Muon Optimizer</a></td> | 144 | + <td class="tg-jajh"><a href="optimization/fsdp2_muon_optimizer.md">FSDP2 Muon Optimizer</a></td> |
| 145 | 145 | ||
| 146 | </tr> | 146 | </tr> |
| 147 | <tr> | 147 | <tr> |
| 148 | <td class="tg-whwg" rowspan="5">训练模式</td> | 148 | <td class="tg-whwg" rowspan="5">训练模式</td> |
| 149 | <td class="tg-citn">预训练</td> | 149 | <td class="tg-citn">预训练</td> |
| 150 | - <td class="tg-jajh"><a href="pretrain.md">Pretrain</a></td> | 150 | + <td class="tg-jajh"><a href="training_mode/pretrain.md">Pretrain</a></td> |
| 151 | 151 | ||
| 152 | </tr> | 152 | </tr> |
| 153 | <tr> | 153 | <tr> |
| 154 | <td class="tg-citn" rowspan="3">高效微调</td> | 154 | <td class="tg-citn" rowspan="3">高效微调</td> |
| 155 | - <td class="tg-jajh"><a href="lora_finetune.md">LoRA Finetune</a></td> | 155 | + <td class="tg-jajh"><a href="training_mode/lora_finetune.md">LoRA Finetune</a></td> |
| 156 | 156 | ||
| 157 | </tr> | 157 | </tr> |
| 158 | <tr> | 158 | <tr> |
| 159 | - <td class="tg-jajh"><a href="lora_finetune_fsdp2.md">LoRA Finetune with FSDP2</a></td> | 159 | + <td class="tg-jajh"><a href="training_mode/lora_finetune_fsdp2.md">LoRA Finetune with FSDP2</a></td> |
| 160 | 160 | ||
| 161 | </tr> | 161 | </tr> |
| 162 | <tr> | 162 | <tr> |
| 163 | - <td class="tg-jajh"><a href="agentic_sft.md">Agentic SFT</a></td> | 163 | + <td class="tg-jajh"><a href="training_mode/agentic_sft.md">Agentic SFT</a></td> |
| 164 | 164 | ||
| 165 | </tr> | 165 | </tr> |
| 166 | <tr> | 166 | <tr> |
| 167 | <td class="tg-citn">Layerwise Training</td> | 167 | <td class="tg-citn">Layerwise Training</td> |
| 168 | - <td class="tg-jajh"><a href="layerwise_disaggregated_training.md">Layerwise Disaggregated Training</a></td> | 168 | + <td class="tg-jajh"><a href="training_mode/layerwise_disaggregated_training.md">Layerwise Disaggregated Training</a></td> |
| 169 | 169 | ||
| 170 | </tr> | 170 | </tr> |
| 171 | <tr> | 171 | <tr> |
| @@ -177,18 +177,18 @@ | |||
| 177 | <tr> | 177 | <tr> |
| 178 | <td class="tg-whwg" rowspan="2">数据处理</td> | 178 | <td class="tg-whwg" rowspan="2">数据处理</td> |
| 179 | <td class="tg-citn">数据集</td> | 179 | <td class="tg-citn">数据集</td> |
| 180 | - <td class="tg-jajh"><a href="multimodal_dataset.md">Multimodal Dataset</a></td> | 180 | + <td class="tg-jajh"><a href="data/multimodal_dataset.md">Multimodal Dataset</a></td> |
| 181 | 181 | ||
| 182 | </tr> | 182 | </tr> |
| 183 | <tr> | 183 | <tr> |
| 184 | <td class="tg-citn">SeqPack</td> | 184 | <td class="tg-citn">SeqPack</td> |
| 185 | - <td class="tg-jajh"><a href="seqpack.md">SeqPack</a></td> | 185 | + <td class="tg-jajh"><a href="data/seqpack.md">SeqPack</a></td> |
| 186 | 186 | ||
| 187 | </tr> | 187 | </tr> |
| 188 | <tr> | 188 | <tr> |
| 189 | <td class="tg-whwg" rowspan="2">模型转换</td> | 189 | <td class="tg-whwg" rowspan="2">模型转换</td> |
| 190 | <td class="tg-citn">模型转换</td> | 190 | <td class="tg-citn">模型转换</td> |
| 191 | - <td class="tg-jajh"><a href="mm_convert.md">MM Convert</a></td> | 191 | + <td class="tg-jajh"><a href="../tools/mm_convert.md">MM Convert</a></td> |
| 192 | 192 | ||
| 193 | </tr> | 193 | </tr> |
| 194 | <tr> | 194 | <tr> |
| @@ -205,7 +205,7 @@ | |||
| 205 | <tr> | 205 | <tr> |
| 206 | <td class="tg-whwg">评估工具</td> | 206 | <td class="tg-whwg">评估工具</td> |
| 207 | <td class="tg-citn">VBench</td> | 207 | <td class="tg-citn">VBench</td> |
| 208 | - <td class="tg-jajh"><a href="vbench-evaluate.md">VBench Evaluate</a></td> | 208 | + <td class="tg-jajh"><a href="../tools/vbench-evaluate.md">VBench Evaluate</a></td> |
| 209 | 209 | ||
| 210 | </tr> | 210 | </tr> |
| 211 | </tbody></table> | 211 | </tbody></table> |
Rdocs/zh/features/async_activation_offload.md→docs/zh/features/memory/async_activation_offload.md+0-0
文件重命名但无更改。
| @@ -41,7 +41,7 @@ flowchart TD | |||
| 41 | 41 | ||
| 42 | 紫色为初始状态,蓝色为目标状态。通过数据映射路径与All2All通信,实现数据的重排布。 | 42 | 紫色为初始状态,蓝色为目标状态。通过数据映射路径与All2All通信,实现数据的重排布。 |
| 43 | 43 | ||
| 44 | - | 44 | + |
| 45 | 45 | ||
| 46 | ## 3. 使用指南 | 46 | ## 3. 使用指南 |
| 47 | 47 | ||
| @@ -14,7 +14,7 @@ | |||
| 14 | 14 | ||
| 15 | 通过 Alltoall 通信实现 encoder 的负载均衡:将多 patch 的 DP rank 上的部分计算任务传递给少 patch 的 DP rank,使各卡的计算量趋于均衡。 | 15 | 通过 Alltoall 通信实现 encoder 的负载均衡:将多 patch 的 DP rank 上的部分计算任务传递给少 patch 的 DP rank,使各卡的计算量趋于均衡。 |
| 16 | 16 | ||
| 17 | - | 17 | + |
| 18 | 18 | ||
| 19 | **核心机制:** | 19 | **核心机制:** |
| 20 | 20 | ||
| @@ -54,4 +54,4 @@ GPT_ARGS=" | |||
| 54 | 54 | ||
| 55 | 1. 该特性当前为 beta 版本,仅支持 InternVL 模型 | 55 | 1. 该特性当前为 beta 版本,仅支持 InternVL 模型 |
| 56 | 2. 启用后会增加少量通信开销,建议在确认存在负载不均衡问题时使用 | 56 | 2. 启用后会增加少量通信开销,建议在确认存在负载不均衡问题时使用 |
| 57 | -3. 后续版本将支持更多模型,敬请关注 [特性列表](feature_list.md) | 57 | +3. 后续版本将支持更多模型,敬请关注 [特性列表](../feature_list.md) |
| @@ -43,7 +43,7 @@ flowchart TD | |||
| 43 | 43 | ||
| 44 | 紫色为初始状态,蓝色为目标状态。通过数据映射路径与All2All通信,实现数据的重排布。 | 44 | 紫色为初始状态,蓝色为目标状态。通过数据映射路径与All2All通信,实现数据的重排布。 |
| 45 | 45 | ||
| 46 | -<img src="../../../sources/images/features/online-data-balance/all2all.png" alt="all2all"> | 46 | +<img src="../../../../sources/images/features/online-data-balance/all2all.png" alt="all2all"> |
| 47 | 47 | ||
| 48 | ## 3. 使用指南 | 48 | ## 3. 使用指南 |
| 49 | 49 | ||
| @@ -124,7 +124,7 @@ flowchart LR | |||
| 124 | 124 | ||
| 125 | 仅配置 `swap_plan` 不会生效:底座本身不产生显存收益,收益来自其上的租户——需至少开启一个(租户配置见各自文档): | 125 | 仅配置 `swap_plan` 不会生效:底座本身不产生显存收益,收益来自其上的租户——需至少开启一个(租户配置见各自文档): |
| 126 | 126 | ||
| 127 | -- **Op Replay(算子重放)**:建立在重计算(checkpoint)机制之上的策略。在前向时把作用域内白名单算子的输出异步换出到DDR,重计算时按路由直接从DDR取回、跳过该算子的重算,从而只缓存少量昂贵算子的输出,用可控的HBM预算 + DDR带宽换取大部分重算开销的消除。详见 [Op Replay](op_replay.md)。 | 127 | +- **Op Replay(算子重放)**:建立在重计算(checkpoint)机制之上的策略。在前向时把作用域内白名单算子的输出异步换出到DDR,重计算时按路由直接从DDR取回、跳过该算子的重算,从而只缓存少量昂贵算子的输出,用可控的HBM预算 + DDR带宽换取大部分重算开销的消除。详见 [Op Replay](../optimization/op_replay.md)。 |
| 128 | - **Act Stash(激活暂存)**:激活offload的 `saved_tensors_hooks` 实现。在前向时把模块内autograd保存的激活张量打包(pack)换出到共享缓存,反向时按需取回(unpack),是仓库已有逐层激活offload(legacy实现)的另一种形态。详见 [Act Stash](act_stash.md)。 | 128 | - **Act Stash(激活暂存)**:激活offload的 `saved_tensors_hooks` 实现。在前向时把模块内autograd保存的激活张量打包(pack)换出到共享缓存,反向时按需取回(unpack),是仓库已有逐层激活offload(legacy实现)的另一种形态。详见 [Act Stash](act_stash.md)。 |
| 129 | 129 | ||
| 130 | 选型要点: | 130 | 选型要点: |
| @@ -137,5 +137,5 @@ flowchart LR | |||
| 137 | ### 已知约束 | 137 | ### 已知约束 |
| 138 | 138 | ||
| 139 | - **已验证范围**:qwen3_5 4B(FSDP2后端,Op Replay与Act Stash租户)e2e训练,截至2026-08。 | 139 | - **已验证范围**:qwen3_5 4B(FSDP2后端,Op Replay与Act Stash租户)e2e训练,截至2026-08。 |
| 140 | -- **精度验证建议**:新配置(新租户、新scope、新白名单)上线前,用确定性模式做逐位对照——`training.use_deter_comp: true` + 固定种子 + 关数据shuffle,同配置开/关特性各跑若干步,逐iter loss与grad norm逐位一致才放行(见 [确定性计算](other/deterministic_computing.md))。先确认基线本身逐位可复现:个别算子kernel非确定时,逐位差异并非本特性引入;`examples/qwen3_5/finetune_qwen3_5_4B.sh` 已验证逐位可复现。 | 140 | +- **精度验证建议**:新配置(新租户、新scope、新白名单)上线前,用确定性模式做逐位对照——`training.use_deter_comp: true` + 固定种子 + 关数据shuffle,同配置开/关特性各跑若干步,逐iter loss与grad norm逐位一致才放行(见 [确定性计算](../other/deterministic_computing.md))。先确认基线本身逐位可复现:个别算子kernel非确定时,逐位差异并非本特性引入;`examples/qwen3_5/finetune_qwen3_5_4B.sh` 已验证逐位可复现。 |
| 141 | - **多流场景**:① 跨流生产的张量须先汇流(事件同步到计算流)再被put——这是多流编程自身的纪律,与底座无关;② D2H拷出的排序锚定在 **put时刻**调用流上录制的事件:驱逐即使后来被无关上下文间接触发,拷出也只与put前的写入保序,驱逐侧无需额外关注;③ pop侧的落点分配与消费排序仍以调用时ambient为准,**反向有多流参与调度的场景不在已验证范围内**。此类问题表现为偶发错值、不报错;排查时用 `capacity_mb: 0` 确定性驱逐档做二分定位——错值消失即指向异步序问题。 | 141 | - **多流场景**:① 跨流生产的张量须先汇流(事件同步到计算流)再被put——这是多流编程自身的纪律,与底座无关;② D2H拷出的排序锚定在 **put时刻**调用流上录制的事件:驱逐即使后来被无关上下文间接触发,拷出也只与put前的写入保序,驱逐侧无需额外关注;③ pop侧的落点分配与消费排序仍以调用时ambient为准,**反向有多流参与调度的场景不在已验证范围内**。此类问题表现为偶发错值、不报错;排查时用 `capacity_mb: 0` 确定性驱逐档做二分定位——错值消失即指向异步序问题。 |
| @@ -25,13 +25,13 @@ FSDP2 | |||
| 25 | 25 | ||
| 26 | 该方案具体的示意图如下 | 26 | 该方案具体的示意图如下 |
| 27 | 27 | ||
| 28 | -<img src="../../../sources/images/chunkmbs.png" alt="chunkmbs" style="zoom:30%;" /> | 28 | +<img src="../../../../sources/images/chunkmbs.png" alt="chunkmbs" style="zoom:30%;" /> |
| 29 | 29 | ||
| 30 | 在GBS相同的情况下,设置`micro_batch_size`为MBS,设置梯度累积步数(`gradient_accumulation_steps`)为`GBS/(DP*MBS)`,在每个梯度累积步都要进行每个block参数的unshard;但是开启该特性后,一种典型用法是设置`micro_batch_size`为`GBS/DP`(DP=1时即GBS),设置梯度累积为1,设置`chunkmbs_plan.chunk_mbs`为原来的MBS(即合并前每个micro_batch的大小),这样每次更新模型参数都只要对每个block进行一次参数unshard,大大节省了通信时间。在Qwen3.5 35B模型上实测整网收益5%左右。 | 30 | 在GBS相同的情况下,设置`micro_batch_size`为MBS,设置梯度累积步数(`gradient_accumulation_steps`)为`GBS/(DP*MBS)`,在每个梯度累积步都要进行每个block参数的unshard;但是开启该特性后,一种典型用法是设置`micro_batch_size`为`GBS/DP`(DP=1时即GBS),设置梯度累积为1,设置`chunkmbs_plan.chunk_mbs`为原来的MBS(即合并前每个micro_batch的大小),这样每次更新模型参数都只要对每个block进行一次参数unshard,大大节省了通信时间。在Qwen3.5 35B模型上实测整网收益5%左右。 |
| 31 | 31 | ||
| 32 | ## 使用方法 | 32 | ## 使用方法 |
| 33 | 33 | ||
| 34 | -该方案需要与[异步激活卸载(Async Activation Offload)](./async_activation_offload.md)和重计算特性结合使用:开启了ChunkMBS的modules必须同时开启activation offload和recompute(约束见「注意事项」)。开启方式如下: | 34 | +该方案需要与[异步激活卸载(Async Activation Offload)](../memory/async_activation_offload.md)和重计算特性结合使用:开启了ChunkMBS的modules必须同时开启activation offload和recompute(约束见「注意事项」)。开启方式如下: |
| 35 | 35 | ||
| 36 | ```yaml | 36 | ```yaml |
| 37 | features: | 37 | features: |
| @@ -1,6 +1,6 @@ | |||
| 1 | # Op Replay(算子重放) | 1 | # Op Replay(算子重放) |
| 2 | 2 | ||
| 3 | -> Op Replay是 [Swap Core](swap_core.md) 底座之上的租户,与底座的交互只有 `put` / `pop` 两个接口;换入换出的物理行为由共享的 `swap_plan` 配置决定。底座的行为与约定见 [Swap Core](swap_core.md),本文只描述Op Replay自身的配置与语义。 | 3 | +> Op Replay是 [Swap Core](../memory/swap_core.md) 底座之上的租户,与底座的交互只有 `put` / `pop` 两个接口;换入换出的物理行为由共享的 `swap_plan` 配置决定。底座的行为与约定见 [Swap Core](../memory/swap_core.md),本文只描述Op Replay自身的配置与语义。 |
| 4 | 4 | ||
| 5 | ## 适用后端 | 5 | ## 适用后端 |
| 6 | 6 | ||
| @@ -108,7 +108,7 @@ def my_op(x: torch.Tensor, ...) -> torch.Tensor: | |||
| 108 | ### 已知约束 | 108 | ### 已知约束 |
| 109 | 109 | ||
| 110 | - **入口判定拦截的算子不进入缓存**:in-place(mutable schema)与view(返回输入别名)语义的算子按schema判定拒绝(应从 `cache_ops` 移除);storage变更、元数据类与调用序不一致的算子(`detach` / `set_` / `resize_` / `prim.device` 等)由内置黑名单 `_OP_REPLAY_IGNORED_OPS` 按op名排除——调用序不一致的自定义算子会使FIFO路由对错op、静默错值,需自行确认两次执行的调用序一致。 | 110 | - **入口判定拦截的算子不进入缓存**:in-place(mutable schema)与view(返回输入别名)语义的算子按schema判定拒绝(应从 `cache_ops` 移除);storage变更、元数据类与调用序不一致的算子(`detach` / `set_` / `resize_` / `prim.device` 等)由内置黑名单 `_OP_REPLAY_IGNORED_OPS` 按op名排除——调用序不一致的自定义算子会使FIFO路由对错op、静默错值,需自行确认两次执行的调用序一致。 |
| 111 | -- **换出的算子输出禁止原地改写**:缓存输出从put到取回之间不得被任何原地写触碰(契约无运行时兜底,违反时静默产生错误梯度),契约详见 [Swap Core](swap_core.md) 使用约定。常见安全形态:残差的in-place落在非缓存张量上(`hidden.add_(attn_out)`);危险形态:直接改写缓存输出(`out = mm(a, b); out.add_(bias)`)、共享workspace跨层复用(自定义算子schema未声明alias时入口判定拦不住)。补救:改函数式写法(`out = mm(a, b) + bias`)、把该算子移出 `cache_ops`、或缩小scope绕开此类模块。 | 111 | +- **换出的算子输出禁止原地改写**:缓存输出从put到取回之间不得被任何原地写触碰(契约无运行时兜底,违反时静默产生错误梯度),契约详见 [Swap Core](../memory/swap_core.md) 使用约定。常见安全形态:残差的in-place落在非缓存张量上(`hidden.add_(attn_out)`);危险形态:直接改写缓存输出(`out = mm(a, b); out.add_(bias)`)、共享workspace跨层复用(自定义算子schema未声明alias时入口判定拦不住)。补救:改函数式写法(`out = mm(a, b) + bias`)、把该算子移出 `cache_ops`、或缩小scope绕开此类模块。 |
| 112 | - **与嵌套重计算互斥**:启用Op Replay时,`recompute_plan.apply_modules` 若同时匹配某模块及其子孙模块(嵌套checkpoint),接线期直接报错;请移除重叠的匹配pattern。不启用Op Replay的普通嵌套重计算不受影响。 | 112 | - **与嵌套重计算互斥**:启用Op Replay时,`recompute_plan.apply_modules` 若同时匹配某模块及其子孙模块(嵌套checkpoint),接线期直接报错;请移除重叠的匹配pattern。不启用Op Replay的普通嵌套重计算不受影响。 |
| 113 | - **scope优先级**:多个scope匹配同一模块时列表在前者生效(列表序 = 优先级);嵌套scope(一个scope的区域落在另一个之内)内层优先。 | 113 | - **scope优先级**:多个scope匹配同一模块时列表在前者生效(列表序 = 优先级);嵌套scope(一个scope的区域落在另一个之内)内层优先。 |
| 114 | - **kwargs无关项**:缓存判定发生在算子分发层、按 `torch.ops` 名门控,与算子的具体传参形态(args/kwargs)无关。 | 114 | - **kwargs无关项**:缓存判定发生在算子分发层、按 `torch.ops` 名门控,与算子的具体传参形态(args/kwargs)无关。 |
Rdocs/zh/features/parameter_lr_wd_tuning.md→docs/zh/features/optimization/parameter_lr_wd_tuning.md+0-0
文件重命名但无更改。
Rdocs/zh/features/vlm_model_loss_calculate_type.md→docs/zh/features/optimization/vlm_model_loss_calculate_type.md+3-3
| @@ -22,7 +22,7 @@ FSDP2 + MCORE | |||
| 22 | - **步骤2**:在梯度累积维度上求均值 | 22 | - **步骤2**:在梯度累积维度上求均值 |
| 23 | - **步骤3**:在数据并行(DP)域上求均值 | 23 | - **步骤3**:在数据并行(DP)域上求均值 |
| 24 | 24 | ||
| 25 | - | 25 | + |
| 26 | 26 | ||
| 27 | ### 按样本粒度计算Loss(Calculate Per Sample Loss) | 27 | ### 按样本粒度计算Loss(Calculate Per Sample Loss) |
| 28 | 28 | ||
| @@ -33,7 +33,7 @@ FSDP2 + MCORE | |||
| 33 | - **步骤3**:在梯度累积维度上求均值 | 33 | - **步骤3**:在梯度累积维度上求均值 |
| 34 | - **步骤4**:在数据并行(DP)域上求均值 | 34 | - **步骤4**:在数据并行(DP)域上求均值 |
| 35 | 35 | ||
| 36 | - | 36 | + |
| 37 | 37 | ||
| 38 | ### 按Token粒度计算Loss(Calculate Per Token Loss) | 38 | ### 按Token粒度计算Loss(Calculate Per Token Loss) |
| 39 | 39 | ||
| @@ -42,7 +42,7 @@ FSDP2 + MCORE | |||
| 42 | - 直接累加全局批次中所有有效token的交叉熵损失 | 42 | - 直接累加全局批次中所有有效token的交叉熵损失 |
| 43 | - 最终结果除以全局批次中的有效token总数 | 43 | - 最终结果除以全局批次中的有效token总数 |
| 44 | 44 | ||
| 45 | - | 45 | + |
| 46 | 46 | ||
| 47 | ## 使用方法 | 47 | ## 使用方法 |
| 48 | 48 | ||
| @@ -17,7 +17,7 @@ | |||
| 17 | - **调度决策层面** :如下图所示,在每个专家并行(EP)Rank上预留少量冗余专家槽位作为弹性缓冲池。系统基于全局实时负载状态,采用贪心策略精准识别高负载Rank上的“热点专家”,并将其动态复制到低负载Rank的冗余槽位中。这一设计突破了传统静态专家映射的束缚,使原本积压在高负载Rank上的Token能够被迁移至低负载Rank处理,仅以极低的冗余开销即可快速实现全局负载均衡。 | 17 | - **调度决策层面** :如下图所示,在每个专家并行(EP)Rank上预留少量冗余专家槽位作为弹性缓冲池。系统基于全局实时负载状态,采用贪心策略精准识别高负载Rank上的“热点专家”,并将其动态复制到低负载Rank的冗余槽位中。这一设计突破了传统静态专家映射的束缚,使原本积压在高负载Rank上的Token能够被迁移至低负载Rank处理,仅以极低的冗余开销即可快速实现全局负载均衡。 |
| 18 | - **执行优化层面** :为消除冗余专家引入的额外开销,在执行层面进行了针对性优化。一方面,利用`permute`和`unpermute`的反向计算过程,分别掩盖冗余专家参数同步与梯度聚合产生的通信延迟;另一方面,在CPU侧采用`Numba`即时编译技术加速负载重规划的求解过程,确保调度决策本身不会成为训练性能瓶颈。 | 18 | - **执行优化层面** :为消除冗余专家引入的额外开销,在执行层面进行了针对性优化。一方面,利用`permute`和`unpermute`的反向计算过程,分别掩盖冗余专家参数同步与梯度聚合产生的通信延迟;另一方面,在CPU侧采用`Numba`即时编译技术加速负载重规划的求解过程,确保调度决策本身不会成为训练性能瓶颈。 |
| 19 | 19 | ||
| 20 | -<img src="../../../sources/images/ep_balance.png" alt="ep_balance" style="zoom:22%;" /> | 20 | +<img src="../../../../sources/images/ep_balance.png" alt="ep_balance" style="zoom:22%;" /> |
| 21 | 21 | ||
| 22 | ## 使用方法 | 22 | ## 使用方法 |
| 23 | 23 | ||
| @@ -39,7 +39,7 @@ torchrun $DISTRIBUTED_ARGS mindspeed_mm/fsdp/train/trainer.py \ | |||
| 39 | | `training` | 优化器、学习率、迭代步数、权重加载/保存等 | | 39 | | `training` | 优化器、学习率、迭代步数、权重加载/保存等 | |
| 40 | | `tools` | profiling、内存分析等工具 | | 40 | | `tools` | profiling、内存分析等工具 | |
| 41 | 41 | ||
| 42 | -各配置段的字段含义,可参考示例配置 `examples/qwen3_5/qwen3_5_4B_config.yaml`,以及 [FSDP2 开发者迁移指南](fsdp2_developer_migration_guide.md)。 | 42 | +各配置段的字段含义,可参考示例配置 `examples/qwen3_5/qwen3_5_4B_config.yaml`,以及 [FSDP2 开发者迁移指南](../../guides/development/fsdp2_model_migration_guide.md)。 |
| 43 | 43 | ||
| 44 | ### 权重转换 | 44 | ### 权重转换 |
| 45 | 45 | ||
| @@ -51,7 +51,7 @@ mm-convert GenericDCPConverter hf_to_dcp \ | |||
| 51 | --dcp_dir ckpt/dcp_path/xxx | 51 | --dcp_dir ckpt/dcp_path/xxx |
| 52 | ``` | 52 | ``` |
| 53 | 53 | ||
| 54 | -训练后导出 HF 权重(`dcp_to_hf`)、完整参数说明,以及个别模型的专用转换器,详见[权重转换](mm_convert.md)。 | 54 | +训练后导出 HF 权重(`dcp_to_hf`)、完整参数说明,以及个别模型的专用转换器,详见[权重转换](../../tools/mm_convert.md)。 |
| 55 | 55 | ||
| 56 | ### 注意事项 | 56 | ### 注意事项 |
| 57 | 57 | ||
| @@ -10,7 +10,7 @@ PyTorch的完全分片数据并行(FSDP)旨在提供一个高性能的即时 | |||
| 10 | 10 | ||
| 11 | 基于上述局限性,FSDP2移除了FlatParameter,采用沿0维分片的DTensor表示分片参数,支持对单个参数的便捷操作、无需通信的分片状态字典,以及更简化的初始化流程;同时FSDP2实现了一种改进的内存管理系统,通过避免使用recordStream来降低并确定Device内存使用,且无需任何Host同步。 | 11 | 基于上述局限性,FSDP2移除了FlatParameter,采用沿0维分片的DTensor表示分片参数,支持对单个参数的便捷操作、无需通信的分片状态字典,以及更简化的初始化流程;同时FSDP2实现了一种改进的内存管理系统,通过避免使用recordStream来降低并确定Device内存使用,且无需任何Host同步。 |
| 12 | 12 | ||
| 13 | -<div align="center"><img src="../../../sources/images/features/fsdp2/compare_fsdp1_fsdp2.png" width="70%"></div> | 13 | +<div align="center"><img src="../../../../sources/images/features/fsdp2/compare_fsdp1_fsdp2.png" width="70%"></div> |
| 14 | 14 | ||
| 15 | ## 核心工作机制 | 15 | ## 核心工作机制 |
| 16 | 16 | ||
| @@ -23,7 +23,7 @@ PyTorch的完全分片数据并行(FSDP)旨在提供一个高性能的即时 | |||
| 23 | 23 | ||
| 24 | 3. **自底向上的分组策略** :在复杂模型中 `fully_shard` 应遵循自底向上的应用顺序,例如:应先对每个TransformerLayer层应用 `fully_shard` ,再应用于root模型 | 24 | 3. **自底向上的分组策略** :在复杂模型中 `fully_shard` 应遵循自底向上的应用顺序,例如:应先对每个TransformerLayer层应用 `fully_shard` ,再应用于root模型 |
| 25 | 25 | ||
| 26 | -<div align="center"><img src="../../../sources/images/features/fsdp2/fsdp_workflow.png" width="70%"></div> | 26 | +<div align="center"><img src="../../../../sources/images/features/fsdp2/fsdp_workflow.png" width="70%"></div> |
| 27 | 27 | ||
| 28 | ## 使用方式 | 28 | ## 使用方式 |
| 29 | 29 | ||
| @@ -57,7 +57,7 @@ export CUDA_DEVICE_MAX_CONNECTIONS=2 | |||
| 57 | - `--use-torch-fsdp2`:启用FSDP2训练模式 | 57 | - `--use-torch-fsdp2`:启用FSDP2训练模式 |
| 58 | - `--fsdp2-config-path`:指定FSDP2配置文件路径 | 58 | - `--fsdp2-config-path`:指定FSDP2配置文件路径 |
| 59 | 59 | ||
| 60 | -其中,FSDP2配置文件中参数说明见:[FSDP2参数介绍](../reference/mcore-fsdp2_configuration.md) | 60 | +其中,FSDP2配置文件中参数说明见:[FSDP2参数介绍](../../reference/mcore-fsdp2_configuration.md) |
| 61 | 61 | ||
| 62 | ### 大模型Meta初始化 | 62 | ### 大模型Meta初始化 |
| 63 | 63 | ||
| @@ -7,7 +7,7 @@ | |||
| 7 | - 模型异构:不同编码器(vision/audio encoder)、骨干(LLM)的计算量、模型大小不同,带来存算不均衡问题,导致计算空泡。具体表现为`LLM bound`和`encoder bound`现象。 | 7 | - 模型异构:不同编码器(vision/audio encoder)、骨干(LLM)的计算量、模型大小不同,带来存算不均衡问题,导致计算空泡。具体表现为`LLM bound`和`encoder bound`现象。 |
| 8 | - 数据异构:训练样本中不同模态数据(文本、语音、视觉)token数量差异大且动态变化(动态分辨率),从而导致不同编码器、骨干网络计算量差异,带来负载不均衡问题。具体有`Intra-microbatch`和`inter-microbatch`不均衡。 | 8 | - 数据异构:训练样本中不同模态数据(文本、语音、视觉)token数量差异大且动态变化(动态分辨率),从而导致不同编码器、骨干网络计算量差异,带来负载不均衡问题。具体有`Intra-microbatch`和`inter-microbatch`不均衡。 |
| 9 | 9 | ||
| 10 | -针对模型异构和数据异构,MindSpeed MM分别设计了hetero-parallel和[在线数据重排方案](./online_data_rearrange.md)。 | 10 | +针对模型异构和数据异构,MindSpeed MM分别设计了hetero-parallel和[在线数据重排方案](../memory/online_data_rearrange.md)。 |
| 11 | 11 | ||
| 12 | ## hetero-parallel | 12 | ## hetero-parallel |
| 13 | 13 | ||
Rdocs/zh/features/unaligned_sequence_parallel.md→docs/zh/features/parallel/unaligned_sequence_parallel.md+1-1
| @@ -7,7 +7,7 @@ SP(Sequence Parallel)并行算法是一种针对长序列数据处理的并 | |||
| 7 | ## 解决方案 | 7 | ## 解决方案 |
| 8 | 8 | ||
| 9 | Sequence Parallel主要作用于TransformerLayer中的Dropout和LayerNorm模块,在序列维度对数据进行非均匀切分。 | 9 | Sequence Parallel主要作用于TransformerLayer中的Dropout和LayerNorm模块,在序列维度对数据进行非均匀切分。 |
| 10 | - | 10 | + |
| 11 | 11 | ||
| 12 | ## 使用方法 | 12 | ## 使用方法 |
| 13 | 13 | ||
| @@ -7,7 +7,7 @@ CP(Context Parallel)并行算法是一种针对长序列数据处理的并 | |||
| 7 | ## 解决方案 | 7 | ## 解决方案 |
| 8 | 8 | ||
| 9 | Ulysses CP算法基于All2All算子,对All2All算子的Input List与Output List根据序列长度进行非均匀切分,使能Ulysses算法。 | 9 | Ulysses CP算法基于All2All算子,对All2All算子的Input List与Output List根据序列长度进行非均匀切分,使能Ulysses算法。 |
| 10 | - | 10 | + |
| 11 | 11 | ||
| 12 | ## 使用方法 | 12 | ## 使用方法 |
| 13 | 13 | ||
Rdocs/zh/features/virtual_pipeline_parallel.md→docs/zh/features/parallel/virtual_pipeline_parallel.md+1-1
| @@ -12,7 +12,7 @@ Pipedream流水线并行切分粒度过大,运行过程中仍然有许多空 | |||
| 12 | 12 | ||
| 13 | 在设备数量不变的情况下,分出更多的流水线阶段,以更多的通信量,换取空泡比率降低。 | 13 | 在设备数量不变的情况下,分出更多的流水线阶段,以更多的通信量,换取空泡比率降低。 |
| 14 | 14 | ||
| 15 | - | 15 | + |
| 16 | 16 | ||
| 17 | [原文链接](https://people.eecs.berkeley.edu/~matei/papers/2021/sc_megatron_lm.pdf) | 17 | [原文链接](https://people.eecs.berkeley.edu/~matei/papers/2021/sc_megatron_lm.pdf) |
| 18 | 18 | ||
| @@ -42,29 +42,29 @@ | |||
| 42 | <tr> | 42 | <tr> |
| 43 | <td class="tg-t1fb" rowspan="6">并行特性</td> | 43 | <td class="tg-t1fb" rowspan="6">并行特性</td> |
| 44 | <td class="tg-citn">FSDP2</td> | 44 | <td class="tg-citn">FSDP2</td> |
| 45 | - <td class="tg-i1fi"><a href="fsdp2.md">FSDP2</a></td> | 45 | + <td class="tg-i1fi"><a href="parallel/fsdp2.md">FSDP2</a></td> |
| 46 | <td class="tg-fr9f">✓</td> | 46 | <td class="tg-fr9f">✓</td> |
| 47 | <td class="tg-fr9f">×</td> | 47 | <td class="tg-fr9f">×</td> |
| 48 | </tr> | 48 | </tr> |
| 49 | <tr> | 49 | <tr> |
| 50 | <td class="tg-citn" rowspan="3">序列并行</td> | 50 | <td class="tg-citn" rowspan="3">序列并行</td> |
| 51 | - <td class="tg-i1fi"><a href="unaligned_ulysses_cp.md">Unaligned Ulysses CP</a></td> | 51 | + <td class="tg-i1fi"><a href="parallel/unaligned_ulysses_cp.md">Unaligned Ulysses CP</a></td> |
| 52 | <td class="tg-fr9f">✓</td> | 52 | <td class="tg-fr9f">✓</td> |
| 53 | <td class="tg-fr9f">✓</td> | 53 | <td class="tg-fr9f">✓</td> |
| 54 | </tr> | 54 | </tr> |
| 55 | <tr> | 55 | <tr> |
| 56 | - <td class="tg-i1fi"><a href="dit_ring_attention.md">DiT Ring Attention</a></td> | 56 | + <td class="tg-i1fi"><a href="parallel/dit_ring_attention.md">DiT Ring Attention</a></td> |
| 57 | <td class="tg-fr9f">×</td> | 57 | <td class="tg-fr9f">×</td> |
| 58 | <td class="tg-fr9f">✓</td> | 58 | <td class="tg-fr9f">✓</td> |
| 59 | </tr> | 59 | </tr> |
| 60 | <tr> | 60 | <tr> |
| 61 | - <td class="tg-i1fi"><a href="dit_usp.md">DiT USP</a></td> | 61 | + <td class="tg-i1fi"><a href="parallel/dit_usp.md">DiT USP</a></td> |
| 62 | <td class="tg-fr9f">×</td> | 62 | <td class="tg-fr9f">×</td> |
| 63 | <td class="tg-fr9f">✓</td> | 63 | <td class="tg-fr9f">✓</td> |
| 64 | </tr> | 64 | </tr> |
| 65 | <tr> | 65 | <tr> |
| 66 | <td class="tg-citn">异构并行</td> | 66 | <td class="tg-citn">异构并行</td> |
| 67 | - <td class="tg-i1fi"><a href="hetero_parallel.md">Hetero Parallel</a></td> | 67 | + <td class="tg-i1fi"><a href="parallel/hetero_parallel.md">Hetero Parallel</a></td> |
| 68 | <td class="tg-fr9f">×</td> | 68 | <td class="tg-fr9f">×</td> |
| 69 | <td class="tg-fr9f">✓</td> | 69 | <td class="tg-fr9f">✓</td> |
| 70 | </tr> | 70 | </tr> |
| @@ -77,43 +77,43 @@ | |||
| 77 | <tr> | 77 | <tr> |
| 78 | <td class="tg-t1fb" rowspan="2">显存优化</td> | 78 | <td class="tg-t1fb" rowspan="2">显存优化</td> |
| 79 | <td class="tg-citn">Offload</td> | 79 | <td class="tg-citn">Offload</td> |
| 80 | - <td class="tg-i1fi"><a href="async_activation_offload.md">Async Activation Offload</a></td> | 80 | + <td class="tg-i1fi"><a href="memory/async_activation_offload.md">Async Activation Offload</a></td> |
| 81 | <td class="tg-fr9f">✓</td> | 81 | <td class="tg-fr9f">✓</td> |
| 82 | <td class="tg-fr9f">✓</td> | 82 | <td class="tg-fr9f">✓</td> |
| 83 | </tr> | 83 | </tr> |
| 84 | <tr> | 84 | <tr> |
| 85 | <td class="tg-citn">负载均衡</td> | 85 | <td class="tg-citn">负载均衡</td> |
| 86 | - <td class="tg-i1fi"><a href="online_data_rearrange.md">Online Data Rearrange</a></td> | 86 | + <td class="tg-i1fi"><a href="memory/online_data_rearrange.md">Online Data Rearrange</a></td> |
| 87 | <td class="tg-fr9f">×</td> | 87 | <td class="tg-fr9f">×</td> |
| 88 | <td class="tg-fr9f">✓</td> | 88 | <td class="tg-fr9f">✓</td> |
| 89 | </tr> | 89 | </tr> |
| 90 | <tr> | 90 | <tr> |
| 91 | <td class="tg-t1fb" rowspan="2">优化特性</td> | 91 | <td class="tg-t1fb" rowspan="2">优化特性</td> |
| 92 | <td class="tg-citn" rowspan="2">loss优化</td> | 92 | <td class="tg-citn" rowspan="2">loss优化</td> |
| 93 | - <td class="tg-i1fi"><a href="chunkloss.md">Chunk Loss</a></td> | 93 | + <td class="tg-i1fi"><a href="optimization/chunkloss.md">Chunk Loss</a></td> |
| 94 | <td class="tg-fr9f">✓</td> | 94 | <td class="tg-fr9f">✓</td> |
| 95 | <td class="tg-fr9f">×</td> | 95 | <td class="tg-fr9f">×</td> |
| 96 | </tr> | 96 | </tr> |
| 97 | <tr> | 97 | <tr> |
| 98 | - <td class="tg-i1fi"><a href="vlm_model_loss_calculate_type.md">VLM Model Loss Calculate Type</a></td> | 98 | + <td class="tg-i1fi"><a href="optimization/vlm_model_loss_calculate_type.md">VLM Model Loss Calculate Type</a></td> |
| 99 | <td class="tg-fr9f">✓</td> | 99 | <td class="tg-fr9f">✓</td> |
| 100 | <td class="tg-fr9f">✓</td> | 100 | <td class="tg-fr9f">✓</td> |
| 101 | </tr> | 101 | </tr> |
| 102 | <tr> | 102 | <tr> |
| 103 | <td class="tg-whwg" rowspan="4">训练模式</td> | 103 | <td class="tg-whwg" rowspan="4">训练模式</td> |
| 104 | <td class="tg-citn" rowspan="2">高效微调</td> | 104 | <td class="tg-citn" rowspan="2">高效微调</td> |
| 105 | - <td class="tg-jajh"><a href="lora_finetune.md">LoRA微调(基于Mcore训练后端)</a></td> | 105 | + <td class="tg-jajh"><a href="training_mode/lora_finetune.md">LoRA微调(基于Mcore训练后端)</a></td> |
| 106 | <td class="tg-fr9f">×</td> | 106 | <td class="tg-fr9f">×</td> |
| 107 | <td class="tg-fr9f">✓</td> | 107 | <td class="tg-fr9f">✓</td> |
| 108 | </tr> | 108 | </tr> |
| 109 | <tr> | 109 | <tr> |
| 110 | - <td class="tg-jajh"><a href="lora_finetune_fsdp2.md">LoRA微调(基于FSDP后端)</a></td> | 110 | + <td class="tg-jajh"><a href="training_mode/lora_finetune_fsdp2.md">LoRA微调(基于FSDP后端)</a></td> |
| 111 | <td class="tg-fr9f">✓</td> | 111 | <td class="tg-fr9f">✓</td> |
| 112 | <td class="tg-fr9f">×</td> | 112 | <td class="tg-fr9f">×</td> |
| 113 | </tr> | 113 | </tr> |
| 114 | <tr> | 114 | <tr> |
| 115 | <td class="tg-citn">数据处理</td> | 115 | <td class="tg-citn">数据处理</td> |
| 116 | - <td class="tg-jajh"><a href="seqpack.md">SeqPack</a></td> | 116 | + <td class="tg-jajh"><a href="data/seqpack.md">SeqPack</a></td> |
| 117 | <td class="tg-fr9f">✓</td> | 117 | <td class="tg-fr9f">✓</td> |
| 118 | <td class="tg-fr9f">×</td> | 118 | <td class="tg-fr9f">×</td> |
| 119 | </tr> | 119 | </tr> |
Rdocs/zh/features/layerwise_disaggregated_training.md→docs/zh/features/training_mode/layerwise_disaggregated_training.md+8-8
| @@ -13,7 +13,7 @@ | |||
| 13 | 13 | ||
| 14 | 边云协同分布式训练是一种同时满足“本地微算力”和“数据不出园”的训练方案。该方案在常规PP并行的基础上,采用了新的模型切分方案:少量直接处理原始样本的模型块部署在企业本地(边侧)、大量仅需处理中间结果的模型块部署在运营商侧(云侧)。在此部署方案下,边侧仅需少量算力处理模型首尾层,且原始样本无需上传云端。 | 14 | 边云协同分布式训练是一种同时满足“本地微算力”和“数据不出园”的训练方案。该方案在常规PP并行的基础上,采用了新的模型切分方案:少量直接处理原始样本的模型块部署在企业本地(边侧)、大量仅需处理中间结果的模型块部署在运营商侧(云侧)。在此部署方案下,边侧仅需少量算力处理模型首尾层,且原始样本无需上传云端。 |
| 15 | 15 | ||
| 16 | - | 16 | + |
| 17 | 17 | ||
| 18 | 边云协同分布式训练特性支持以下功能: | 18 | 边云协同分布式训练特性支持以下功能: |
| 19 | 19 | ||
| @@ -47,7 +47,7 @@ | |||
| 47 | - 步骤2:将两级逻辑流水合并,若两级流水的任务队列出现冲突,则优化任务执行顺序。 | 47 | - 步骤2:将两级逻辑流水合并,若两级流水的任务队列出现冲突,则优化任务执行顺序。 |
| 48 | 48 | ||
| 49 | 案例:PP=3,mbn = 4 | 49 | 案例:PP=3,mbn = 4 |
| 50 | - | 50 | + |
| 51 | 51 | ||
| 52 | 其中上图为步骤1生成的两级逻辑流水、下图为步骤2合并后的最终流水方案。步骤2合并边侧两级流水时出现了任务冲突,优化阶段时按FS-FE-BS-BE的执行顺序重排。优化的依据是此执行顺序可以增大可容忍边云通信时延:以样本3的前向传播通信为例,其通信时间可以由样本5的前向计算时间掩盖,提升了可容忍通信时延,从而在拉远收敛场景下减小算效损失。 | 52 | 其中上图为步骤1生成的两级逻辑流水、下图为步骤2合并后的最终流水方案。步骤2合并边侧两级流水时出现了任务冲突,优化阶段时按FS-FE-BS-BE的执行顺序重排。优化的依据是此执行顺序可以增大可容忍边云通信时延:以样本3的前向传播通信为例,其通信时间可以由样本5的前向计算时间掩盖,提升了可容忍通信时延,从而在拉远收敛场景下减小算效损失。 |
| 53 | 53 | ||
| @@ -73,11 +73,11 @@ | |||
| 73 | 73 | ||
| 74 | 案例:PP=2,TP=8,对称TP | 74 | 案例:PP=2,TP=8,对称TP |
| 75 | 75 | ||
| 76 | - | 76 | + |
| 77 | 77 | ||
| 78 | 案例:PP=2,TP=4/TP=8,非对称TP | 78 | 案例:PP=2,TP=4/TP=8,非对称TP |
| 79 | 79 | ||
| 80 | - | 80 | + |
| 81 | 81 | ||
| 82 | 效果:由于在进行P2P通信之前,megatron现有逻辑会提前在TP组内完成AR通信,因此仅通过单卡进行通信即可将完整的数据传递给下一级PP,以上P2P通信方式可保证非对称TP下跨流水线层级通信的正确性。 | 82 | 效果:由于在进行P2P通信之前,megatron现有逻辑会提前在TP组内完成AR通信,因此仅通过单卡进行通信即可将完整的数据传递给下一级PP,以上P2P通信方式可保证非对称TP下跨流水线层级通信的正确性。 |
| 83 | 83 | ||
| @@ -88,15 +88,15 @@ | |||
| 88 | 88 | ||
| 89 | 案例:PP=3, TP=8, DP=2,对称DP | 89 | 案例:PP=3, TP=8, DP=2,对称DP |
| 90 | 90 | ||
| 91 | - | 91 | + |
| 92 | 92 | ||
| 93 | 案例:PP=3, TP=8, DP=1/DP=2,非对称DP | 93 | 案例:PP=3, TP=8, DP=1/DP=2,非对称DP |
| 94 | 94 | ||
| 95 | - | 95 | + |
| 96 | 96 | ||
| 97 | 针对通讯组初始化的处理,复用现有Megatron生成rank组的逻辑,首先基于对称DP场景将边云分开进行rank组生成;再将边侧的rank组进行重计算合并;云侧的rank组整体偏移边侧卡数。 | 97 | 针对通讯组初始化的处理,复用现有Megatron生成rank组的逻辑,首先基于对称DP场景将边云分开进行rank组生成;再将边侧的rank组进行重计算合并;云侧的rank组整体偏移边侧卡数。 |
| 98 | 98 | ||
| 99 | - | 99 | + |
| 100 | 100 | ||
| 101 | 针对边侧梯度的处理,megatron现有逻辑在时分复用处理多个DP域的数据计算梯度时,默认会累加梯度,相当于边侧默认对梯度已经做了AR操作,只需要在最后对累加的总梯度求平均即可。 | 101 | 针对边侧梯度的处理,megatron现有逻辑在时分复用处理多个DP域的数据计算梯度时,默认会累加梯度,相当于边侧默认对梯度已经做了AR操作,只需要在最后对累加的总梯度求平均即可。 |
| 102 | 102 | ||
| @@ -106,7 +106,7 @@ | |||
| 106 | 106 | ||
| 107 | 本文档以Qwen2.5VL-32B-Instruct模型为例(VIT隐藏层数32层,LLM隐藏层数64层)介绍边云特性使能方法,具体步骤如下: | 107 | 本文档以Qwen2.5VL-32B-Instruct模型为例(VIT隐藏层数32层,LLM隐藏层数64层)介绍边云特性使能方法,具体步骤如下: |
| 108 | 108 | ||
| 109 | -1. 参考[MindSpeed MM安装指导](../pytorch/install_guide.md),完成环境安装。 | 109 | +1. 参考[MindSpeed MM安装指导](../../guides/installation/install_guide.md),完成环境安装。 |
| 110 | 110 | ||
| 111 | 2. 从Hugging Face库下载对应的模型权重[Qwen2.5-VL-32B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-32B-Instruct),放至./ckpt/hf_path路径下。 | 111 | 2. 从Hugging Face库下载对应的模型权重[Qwen2.5-VL-32B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-32B-Instruct),放至./ckpt/hf_path路径下。 |
| 112 | 112 | ||
| @@ -11,7 +11,7 @@ $ | |||
| 11 | W' = W + A \cdot B | 11 | W' = W + A \cdot B |
| 12 | $ | 12 | $ |
| 13 | 13 | ||
| 14 | - | 14 | + |
| 15 | 15 | ||
| 16 | 其中,$W'$ 是更新后的权重,$W$ 是原始权重,$A$ 和 $B$ 是需要学习的低秩矩阵。 | 16 | 其中,$W'$ 是更新后的权重,$W$ 是原始权重,$A$ 和 $B$ 是需要学习的低秩矩阵。 |
| 17 | 17 | ||
Rdocs/zh/features/fsdp2_developer_migration_guide.md→docs/zh/guides/development/fsdp2_model_migration_guide.md+1-1
| @@ -8,7 +8,7 @@ MindSpeed MM FSDP2 基于 PyTorch FSDP2 构建。MindSpeed MM 在此基础上补 | |||
| 8 | 8 | ||
| 9 | ## 1. 先识别 FSDP2 路线 | 9 | ## 1. 先识别 FSDP2 路线 |
| 10 | 10 | ||
| 11 | -MindSpeed MM 仓内同时存在两套容易混淆的 FSDP2 使用方式。它们的训练入口、配置文件和模型/数据接入方式不同,迁移前必须先确定目标路线。本文档聚焦新版插件式 FSDP2;新增模型和新增数据集推荐优先接入这一路线。Megatron 桥接式 FSDP2 属于过渡形态,主要用于存量入口兼容,后续不再作为新特性迭代方向;旧路线请继续参考 `docs/zh/features/fsdp2.md` 和对应 `examples/*/fsdp2_config.yaml`。 | 11 | +MindSpeed MM 仓内同时存在两套容易混淆的 FSDP2 使用方式。它们的训练入口、配置文件和模型/数据接入方式不同,迁移前必须先确定目标路线。本文档聚焦新版插件式 FSDP2;新增模型和新增数据集推荐优先接入这一路线。Megatron 桥接式 FSDP2 属于过渡形态,主要用于存量入口兼容,后续不再作为新特性迭代方向;旧路线请继续参考 `docs/zh/features/parallel/fsdp2.md` 和对应 `examples/*/fsdp2_config.yaml`。 |
| 12 | 12 | ||
| 13 | | 项目 | 新版插件式 FSDP2(本文主线) | Megatron 桥接式 FSDP2(旧路线) | | 13 | | 项目 | 新版插件式 FSDP2(本文主线) | Megatron 桥接式 FSDP2(旧路线) | |
| 14 | |---|---|---| | 14 | |---|---|---| |
Rdocs/zh/pytorch/model_migration_dev_guide.md→docs/zh/guides/development/fsdp2_model_migration_guide_old.md+4-4
| @@ -16,7 +16,7 @@ Last updated: 12/08/2025. Author: zs-derrick | |||
| 16 | 16 | ||
| 17 | 下图是模型迁移的总体流程图介绍: | 17 | 下图是模型迁移的总体流程图介绍: |
| 18 | 18 | ||
| 19 | - | 19 | + |
| 20 | 20 | ||
| 21 | 为系统性地完成上述适配工作,我们将模型迁移过程分解为四个关键流程: | 21 | 为系统性地完成上述适配工作,我们将模型迁移过程分解为四个关键流程: |
| 22 | 22 | ||
| @@ -63,7 +63,7 @@ MindSpeed-MM 训练逻辑整体沿用 Megatron 风格,各类模型统一使用 | |||
| 63 | 63 | ||
| 64 | ### 🔄 核心接口调用流程 | 64 | ### 🔄 核心接口调用流程 |
| 65 | 65 | ||
| 66 | - | 66 | + |
| 67 | 67 | ||
| 68 | ## 模型迁移 | 68 | ## 模型迁移 |
| 69 | 69 | ||
| @@ -179,7 +179,7 @@ MindSpeed-MM 同时提供了一套优化的多模态数据集处理模块,包 | |||
| 179 | 179 | ||
| 180 | ### 🧩 模型结构迁移 | 180 | ### 🧩 模型结构迁移 |
| 181 | 181 | ||
| 182 | - | 182 | + |
| 183 | 183 | ||
| 184 | 在 MindSpeed-MM 框架中,所有训练模型都通过标准化的入口函数进行构建和执行:`model_provider` 构造模型,`forward_step` 执行前向结果,`loss_func` 计算训练损失。 | 184 | 在 MindSpeed-MM 框架中,所有训练模型都通过标准化的入口函数进行构建和执行:`model_provider` 构造模型,`forward_step` 执行前向结果,`loss_func` 计算训练损失。 |
| 185 | 185 | ||
| @@ -415,7 +415,7 @@ offload_to_cpu: False | |||
| 415 | 415 | ||
| 416 | 针对模型结构复杂或特殊场景的定制化需求,我们提供了灵活的自定义切分方案。用户可以通过调用 `FSDP2Mixin` 提供的 `fully_shard` 接口,实现完全按需设计的切分和优化策略,获得对模型分布式训练的精细化控制能力,从而有效应对各类复杂架构与高性能训练场景。下图显示了 FSDP2Mixin 类的核心组成,用户可以根据各自需求对其方法进行重写: | 416 | 针对模型结构复杂或特殊场景的定制化需求,我们提供了灵活的自定义切分方案。用户可以通过调用 `FSDP2Mixin` 提供的 `fully_shard` 接口,实现完全按需设计的切分和优化策略,获得对模型分布式训练的精细化控制能力,从而有效应对各类复杂架构与高性能训练场景。下图显示了 FSDP2Mixin 类的核心组成,用户可以根据各自需求对其方法进行重写: |
| 417 | 417 | ||
| 418 | - | 418 | + |
| 419 | 419 | ||
| 420 | **自定义 fully_shard 实现示例** | 420 | **自定义 fully_shard 实现示例** |
| 421 | 421 | ||
Rdocs/zh/pytorch/model-migration-guide.md→docs/zh/guides/development/mcore_model_migration_guide.md+1-1
| @@ -70,7 +70,7 @@ sequenceDiagram | |||
| 70 | 70 | ||
| 71 | 【模型开发时推荐使用配套的环境版本】 | 71 | 【模型开发时推荐使用配套的环境版本】 |
| 72 | 72 | ||
| 73 | -请参考[安装指南](install_guide.md),完成昇腾软件安装。 | 73 | +请参考[安装指南](../installation/install_guide.md),完成昇腾软件安装。 |
| 74 | 74 | ||
| 75 | >[!NOTE] | 75 | >[!NOTE] |
| 76 | > | 76 | > |
| @@ -38,7 +38,7 @@ NVIDIA GPU采用CUDA(Compute Unified Device Architecture)的并行计算架 | |||
| 38 | ## 模型迁移总体流程 | 38 | ## 模型迁移总体流程 |
| 39 | 39 | ||
| 40 | 通用模型迁移适配方法,可以分为四个阶段:迁移分析、模型迁移、精度调试与性能调优,总体流程如下图所示。 | 40 | 通用模型迁移适配方法,可以分为四个阶段:迁移分析、模型迁移、精度调试与性能调优,总体流程如下图所示。 |
| 41 | - | 41 | + |
| 42 | 42 | ||
| 43 | ## 迁移分析 | 43 | ## 迁移分析 |
| 44 | 44 | ||
| @@ -72,7 +72,7 @@ bitsandbytes已支持在昇腾上进行安装,具体可单击[Supported Backen | |||
| 72 | 72 | ||
| 73 | 总体流程如下: | 73 | 总体流程如下: |
| 74 | 74 | ||
| 75 | - | 75 | + |
| 76 | 76 | ||
| 77 | ## 精度调优 | 77 | ## 精度调优 |
| 78 | 78 | ||
| @@ -216,7 +216,7 @@ export CPU_AFFINITY_CONF=<mode>,npu<value1>:<value2>-<value3> | |||
| 216 | 216 | ||
| 217 | 2. 权重转换(hf2mm) | 217 | 2. 权重转换(hf2mm) |
| 218 | 218 | ||
| 219 | - MindSpeed MM修改了部分原始网络的结构名称,使用`mm-convert`工具对原始预训练权重进行转换。该工具实现了Hugging Face权重和MindSpeed MM权重的互相转换以及PP(Pipeline Parallel)权重的重切分。参考[权重转换工具](../features/mm_convert.md) | 219 | + MindSpeed MM修改了部分原始网络的结构名称,使用`mm-convert`工具对原始预训练权重进行转换。该工具实现了Hugging Face权重和MindSpeed MM权重的互相转换以及PP(Pipeline Parallel)权重的重切分。参考[权重转换工具](../../tools/mm_convert.md) |
| 220 | 220 | ||
| 221 | ```bash | 221 | ```bash |
| 222 | # 7b | 222 | # 7b |
| @@ -8,7 +8,7 @@ Last updated: 12/08/2025. Author: cxiaolong | |||
| 8 | 8 | ||
| 9 | 该流程主要包含环境搭建、数据集构建、模型构建、配置文件、训练入口、训练脚本、启动训练。 | 9 | 该流程主要包含环境搭建、数据集构建、模型构建、配置文件、训练入口、训练脚本、启动训练。 |
| 10 | 10 | ||
| 11 | - | 11 | + |
| 12 | 12 | ||
| 13 | ## Step1: 环境搭建 | 13 | ## Step1: 环境搭建 |
| 14 | 14 | ||
| @@ -182,7 +182,7 @@ MindSpeed-MM 提供了丰富的 DataLoader 组件,调用入口为 `mindspeed_m | |||
| 182 | 182 | ||
| 183 | MindSpeed-MM 中提供了一个 SoRAModel 作为所有扩散视频生成模型的组合类,模型继承关系如下。SoRAModel 是一个组合类,可以实例化成 Wan、HunyuanVideo 等具体的模型,由 TextEncoder、PredictModel、DiffusionModel、AEModel 多个部件组成。 | 183 | MindSpeed-MM 中提供了一个 SoRAModel 作为所有扩散视频生成模型的组合类,模型继承关系如下。SoRAModel 是一个组合类,可以实例化成 Wan、HunyuanVideo 等具体的模型,由 TextEncoder、PredictModel、DiffusionModel、AEModel 多个部件组成。 |
| 184 | 184 | ||
| 185 | - | 185 | + |
| 186 | 186 | ||
| 187 | 本教程将新构建一个 `CustomModel` 用于表示自定义的视频生成模型的组合类,它由 `PredictModel(CustomDiT)`、`TextEncoder(UMT5)`、`AEModel(WanVideoVAE)`、`DiffusionModel(WanFlowMatchScheduler)` 四部分组成。 | 187 | 本教程将新构建一个 `CustomModel` 用于表示自定义的视频生成模型的组合类,它由 `PredictModel(CustomDiT)`、`TextEncoder(UMT5)`、`AEModel(WanVideoVAE)`、`DiffusionModel(WanFlowMatchScheduler)` 四部分组成。 |
| 188 | 188 | ||
| @@ -27,11 +27,11 @@ | |||
| 27 | 27 | ||
| 28 | ## 安装前准备 | 28 | ## 安装前准备 |
| 29 | 29 | ||
| 30 | -请参见《版本说明》中的“[相关产品版本配套说明](../release_notes_mm.md#相关产品版本配套说明)”章节,下载安装对应的软件版本。 | 30 | +请参见《版本说明》中的“[相关产品版本配套说明](../../release_notes_mm.md#相关产品版本配套说明)”章节,下载安装对应的软件版本。 |
| 31 | 31 | ||
| 32 | > [!NOTE] | 32 | > [!NOTE] |
| 33 | > | 33 | > |
| 34 | -> 安装运行程序建议使用非root用户,且建议对安装程序的目录文件做好权限管控:文件夹权限设置为750,文件权限设置为640。可以通过设置umask控制安装后文件的权限,如设置umask为0027。更多安全相关内容请参见《[安全声明](../../../SECURITYNOTE.md)》中各组件关于“文件权限控制”的说明。 | 34 | +> 安装运行程序建议使用非root用户,且建议对安装程序的目录文件做好权限管控:文件夹权限设置为750,文件权限设置为640。可以通过设置umask控制安装后文件的权限,如设置umask为0027。更多安全相关内容请参见《[安全声明](../../../../SECURITYNOTE.md)》中各组件关于“文件权限控制”的说明。 |
| 35 | 35 | ||
| 36 | 下载[固件与驱动](https://www.hiascend.com/hardware/firmware-drivers),请根据系统和硬件产品型号选择对应版本的社区版本或商用版本的固件与驱动。 | 36 | 下载[固件与驱动](https://www.hiascend.com/hardware/firmware-drivers),请根据系统和硬件产品型号选择对应版本的社区版本或商用版本的固件与驱动。 |
| 37 | 参考如下命令安装: | 37 | 参考如下命令安装: |
| @@ -52,22 +52,22 @@ chmod +x Ascend-hdk-<chip_type>-npu-firmware_<version>.run | |||
| 52 | > - 使用镜像前,请先确认机器型号。最新镜像仅支持aarch64架构,可通过uname -a命令确认当前环境是否符合要求。 | 52 | > - 使用镜像前,请先确认机器型号。最新镜像仅支持aarch64架构,可通过uname -a命令确认当前环境是否符合要求。 |
| 53 | > - 配套镜像已预装配套的CANN 9.1.0软件及TorchNPU 26.1.0插件,您可根据需要选用。 | 53 | > - 配套镜像已预装配套的CANN 9.1.0软件及TorchNPU 26.1.0插件,您可根据需要选用。 |
| 54 | > - 若您当前环境与提供的镜像不兼容,请选择[方式二:源码安装](#方式二源码安装)。 | 54 | > - 若您当前环境与提供的镜像不兼容,请选择[方式二:源码安装](#方式二源码安装)。 |
| 55 | -> - master分支后续会更新新的镜像,如果需要自定义构建镜像,请参见[镜像概述](../../../docker/OVERVIEW.zh.md)。 | 55 | +> - master分支后续会更新新的镜像,如果需要自定义构建镜像,请参见[镜像概述](../../../../docker/OVERVIEW.zh.md)。 |
| 56 | 56 | ||
| 57 | 1. 拉取镜像 | 57 | 1. 拉取镜像 |
| 58 | 58 | ||
| 59 | 当前可使用MindSpeed MM 26.1.0分支对应镜像,请按需[拉取镜像](https://www.hiascend.com/developer/ascendhub/detail/6857f6fc2cfa4a678710a7075426ee5e)。 | 59 | 当前可使用MindSpeed MM 26.1.0分支对应镜像,请按需[拉取镜像](https://www.hiascend.com/developer/ascendhub/detail/6857f6fc2cfa4a678710a7075426ee5e)。 |
| 60 | 60 | ||
| 61 | <!-- npu="950" id1 --> | 61 | <!-- npu="950" id1 --> |
| 62 | - - <term>Ascend 950PR&950DT系列产品<</term>:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-950-openeuler24.03-py3.11 | 62 | + - <term>Ascend 950PR&950DT系列产品</term>:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-950-openeuler24.03-py3.11 |
| 63 | 63 | ||
| 64 | - - <term>Ascend 950PR&950DT系列产品<</term>:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-950-ubuntu22.04-py3.11 | 64 | + - <term>Ascend 950PR&950DT系列产品</term>:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-950-ubuntu22.04-py3.11 |
| 65 | <!-- end id1 --> | 65 | <!-- end id1 --> |
| 66 | 66 | ||
| 67 | <!-- npu="A3" id2 --> | 67 | <!-- npu="A3" id2 --> |
| 68 | - <term>Atlas A3训练系列产品</term>:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-a3-openeuler24.03-py3.11 | 68 | - <term>Atlas A3训练系列产品</term>:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-a3-openeuler24.03-py3.11 |
| 69 | 69 | ||
| 70 | - - <term>Atlas A3训练系列产品</term>:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-950-ubuntu22.04-py3.11 | 70 | + - <term>Atlas A3训练系列产品</term>:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-a3-ubuntu22.04-py3.11 |
| 71 | <!-- end id2 --> | 71 | <!-- end id2 --> |
| 72 | 72 | ||
| 73 | <!-- npu="910b" id3 --> | 73 | <!-- npu="910b" id3 --> |
| @@ -136,7 +136,7 @@ chmod +x Ascend-hdk-<chip_type>-npu-firmware_<version>.run | |||
| 136 | mindspeed-mm:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-a3-openeuler24.03-py3.11 bash | 136 | mindspeed-mm:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-a3-openeuler24.03-py3.11 bash |
| 137 | ``` | 137 | ``` |
| 138 | 138 | ||
| 139 | - 具体参数配置说明可查看MindSpeed MM Docker镜像概述的[构建脚本参数说明](../../../docker/OVERVIEW.zh.md#构建脚本参数说明) | 139 | + 具体参数配置说明可查看MindSpeed MM Docker镜像概述的[构建脚本参数说明](../../../../docker/OVERVIEW.zh.md#构建脚本参数说明) |
| 140 | 140 | ||
| 141 | 3. 加载容器并确认环境状态 | 141 | 3. 加载容器并确认环境状态 |
| 142 | 142 | ||
| @@ -183,7 +183,7 @@ chmod +x Ascend-hdk-<chip_type>-npu-firmware_<version>.run | |||
| 183 | |参数名称|说明|是否必选|取值范围| | 183 | |参数名称|说明|是否必选|取值范围| |
| 184 | |--|--|--|:-:| | 184 | |--|--|--|:-:| |
| 185 | |-t, --torchversion|表示当前使用的torch版本|否|2.7.1或2.10.0| | 185 | |-t, --torchversion|表示当前使用的torch版本|否|2.7.1或2.10.0| |
| 186 | - |-m, --msid|表示当前基于源码安装的MindSpeed加速库的commit id|是|MindSpeed最新商用分支commit id| | 186 | + |-m, --msid|表示当前基于源码安装的MindSpeed加速库的commit id|是|MindSpeed最新release版本commit id| |
| 187 | |-y, --yes|确认所有软件重新安装|否|-| | 187 | |-y, --yes|确认所有软件重新安装|否|-| |
| 188 | |-n, --no|自动跳过第三方依赖库安装|否|-| | 188 | |-n, --no|自动跳过第三方依赖库安装|否|-| |
| 189 | |-mt, --megatron|安装Megatron-LM|否|默认安装版本Megatron-LM 0.12.0| | 189 | |-mt, --megatron|安装Megatron-LM|否|默认安装版本Megatron-LM 0.12.0| |
| @@ -267,7 +267,7 @@ chmod +x Ascend-hdk-<chip_type>-npu-firmware_<version>.run | |||
| 267 | cd .. | 267 | cd .. |
| 268 | ``` | 268 | ``` |
| 269 | 269 | ||
| 270 | - 6. 安装MindSpeed MM及其相关依赖,可通过[pyproject.toml](../../../pyproject.toml)配置第三方依赖清单。 | 270 | + 6. 安装MindSpeed MM及其相关依赖,可通过[pyproject.toml](../../../../pyproject.toml)配置第三方依赖清单。 |
| 271 | 271 | ||
| 272 | ```shell | 272 | ```shell |
| 273 | pip install -e . | 273 | pip install -e . |
| @@ -22,7 +22,7 @@ MindSpeed MM 仓库中的部分安装文档使用了硬编码的 `/usr/local/Asc | |||
| 22 | | 文件类型 | 说明 | 典型路径示例 | | 22 | | 文件类型 | 说明 | 典型路径示例 | |
| 23 | |---------|------|-------------| | 23 | |---------|------|-------------| |
| 24 | | Shell 脚本(`.sh`)| 训练/测试启动脚本 | `examples/*/pretrain_*.sh`、`scripts/install.sh` | | 24 | | Shell 脚本(`.sh`)| 训练/测试启动脚本 | `examples/*/pretrain_*.sh`、`scripts/install.sh` | |
| 25 | -| Markdown 文档(`.md`)| 安装指南、模型使用说明 | `docs/zh/pytorch/install_guide.md`、`docker/OVERVIEW.md` | | 25 | +| Markdown 文档(`.md`)| 安装指南、模型使用说明 | `docs/zh/guides/installation/install_guide.md`、`docker/OVERVIEW.md` | |
| 26 | | Python 文件(`.py`)| 源码(如有路径引用) | 各模块源文件 | | 26 | | Python 文件(`.py`)| 源码(如有路径引用) | 各模块源文件 | |
| 27 | | Dockerfile | Docker 镜像构建脚本 | `docker/Dockerfile` | | 27 | | Dockerfile | Docker 镜像构建脚本 | `docker/Dockerfile` | |
| 28 | 28 | ||
Rdocs/zh/features/fsdp2_qwen3vl_migration_practice.md→docs/zh/guides/practices/fsdp2_qwen3vl_migration_practice.md+10-10
| @@ -6,12 +6,12 @@ | |||
| 6 | 6 | ||
| 7 | 本文面向需要将新模型接入 FSDP2 后端的研究人员、工程师与开发者,要求读者: | 7 | 本文面向需要将新模型接入 FSDP2 后端的研究人员、工程师与开发者,要求读者: |
| 8 | 8 | ||
| 9 | -- 已按 [安装指导](../pytorch/install_guide.md) 完成昇腾环境与 MindSpeed MM 的安装; | 9 | +- 已按 [安装指导](../installation/install_guide.md) 完成昇腾环境与 MindSpeed MM 的安装; |
| 10 | - 具备 PyTorch 训练与模型开发调试的基础知识; | 10 | - 具备 PyTorch 训练与模型开发调试的基础知识; |
| 11 | - 了解模型迁移、分布式训练及精度对齐的基本概念; | 11 | - 了解模型迁移、分布式训练及精度对齐的基本概念; |
| 12 | - 待迁移的模型已能在源平台(如 GPU)正常训练,并保留了 loss 基线,作为迁移的起点与后续精度对齐的参照。 | 12 | - 待迁移的模型已能在源平台(如 GPU)正常训练,并保留了 loss 基线,作为迁移的起点与后续精度对齐的参照。 |
| 13 | 13 | ||
| 14 | -若仅需使用现成样例跑通 Qwen3-VL 微调、而非接入新模型,请参考 [Qwen3VL README](../../../examples/qwen3vl/README_v1.md)。 | 14 | +若仅需使用现成样例跑通 Qwen3-VL 微调、而非接入新模型,请参考 [Qwen3VL README](../../../../examples/qwen3vl/README_v1.md)。 |
| 15 | 15 | ||
| 16 | ## 源模型与迁移目标 | 16 | ## 源模型与迁移目标 |
| 17 | 17 | ||
| @@ -31,7 +31,7 @@ Qwen3VLMoeForConditionalGeneration | |||
| 31 | └── lm_head # 输出头 | 31 | └── lm_head # 输出头 |
| 32 | ``` | 32 | ``` |
| 33 | 33 | ||
| 34 | -建议先梳理该模块树:后续的 FSDP 分片计划、冻结配置、重计算配置,填写的都是这些模块路径。样例 [`examples/qwen3vl/qwen3vl_30B_config_v1.yaml`](../../../examples/qwen3vl/qwen3vl_30B_config_v1.yaml) 的 `parallel.fsdp_plan.apply_modules` 即按这些路径配置,可对照参考。 | 34 | +建议先梳理该模块树:后续的 FSDP 分片计划、冻结配置、重计算配置,填写的都是这些模块路径。样例 [`examples/qwen3vl/qwen3vl_30B_config_v1.yaml`](../../../../examples/qwen3vl/qwen3vl_30B_config_v1.yaml) 的 `parallel.fsdp_plan.apply_modules` 即按这些路径配置,可对照参考。 |
| 35 | 35 | ||
| 36 | ### 迁移目标:插件式 FSDP2 后端 | 36 | ### 迁移目标:插件式 FSDP2 后端 |
| 37 | 37 | ||
| @@ -256,7 +256,7 @@ mm-convert GenericDCPConverter hf_to_dcp \ | |||
| 256 | --dcp_dir ckpt/Qwen3-VL-30B-A3B-Instruct-dcp | 256 | --dcp_dir ckpt/Qwen3-VL-30B-A3B-Instruct-dcp |
| 257 | ``` | 257 | ``` |
| 258 | 258 | ||
| 259 | -然后把 YAML 里 `training.load` 取消注释,填转换得到的 DCP 目录 `ckpt/Qwen3-VL-30B-A3B-Instruct-dcp`。转换工具的更多用法见 [权重转换](mm_convert.md)。 | 259 | +然后把 YAML 里 `training.load` 取消注释,填转换得到的 DCP 目录 `ckpt/Qwen3-VL-30B-A3B-Instruct-dcp`。转换工具的更多用法见 [权重转换](../../tools/mm_convert.md)。 |
| 260 | 260 | ||
| 261 | `plugin` 列表则把[模型接入](#模型接入)与[数据接入](#数据接入)的成果接进框架:启动时按顺序导入这两个目录,模型与数据集完成注册,`model_id`/`dataset_type` 才找得到对应实现。 | 261 | `plugin` 列表则把[模型接入](#模型接入)与[数据接入](#数据接入)的成果接进框架:启动时按顺序导入这两个目录,模型与数据集完成注册,`model_id`/`dataset_type` 才找得到对应实现。 |
| 262 | 262 | ||
| @@ -301,7 +301,7 @@ torchrun $DISTRIBUTED_ARGS mindspeed_mm/fsdp/train/trainer.py \ | |||
| 301 | bash examples/qwen3vl/finetune_qwen3vl_30B_v1.sh | 301 | bash examples/qwen3vl/finetune_qwen3vl_30B_v1.sh |
| 302 | ``` | 302 | ``` |
| 303 | 303 | ||
| 304 | -日志输出到 `logs/` 目录。权重下载、COCO 数据集准备等通用操作步骤本文不重复,按 [Qwen3VL README](../../../examples/qwen3vl/README_v1.md) 执行即可。 | 304 | +日志输出到 `logs/` 目录。权重下载、COCO 数据集准备等通用操作步骤本文不重复,按 [Qwen3VL README](../../../../examples/qwen3vl/README_v1.md) 执行即可。 |
| 305 | 305 | ||
| 306 | **如何确认训练成功启动**:启动后训练日志会按 `log_interval` 周期打印每个 iteration 的关键指标,形如: | 306 | **如何确认训练成功启动**:启动后训练日志会按 `log_interval` 周期打印每个 iteration 的关键指标,形如: |
| 307 | 307 | ||
| @@ -310,13 +310,13 @@ iteration 1/10000 | consumed samples: 8 | elapsed time per iteration (ms): 6603. | |||
| 310 | iteration 2/10000 | consumed samples: 16 | elapsed time per iteration (ms): 2231.6 | learning rate: 1.000000E-08 | global batch size: 8 | loss: 1.009848E+01 | grad norm: 49.063 | | 310 | iteration 2/10000 | consumed samples: 16 | elapsed time per iteration (ms): 2231.6 | learning rate: 1.000000E-08 | global batch size: 8 | loss: 1.009848E+01 | grad norm: 49.063 | |
| 311 | ``` | 311 | ``` |
| 312 | 312 | ||
| 313 | -只要日志能持续按 iteration 打印、`loss` 在合理范围且随训练总体下降、`grad norm` 未出现 NaN/Inf,即说明已正常跑通(首个 iteration 通常较慢,因包含编译与初始化开销,属正常现象)。若启动报错或卡住,可查阅 [FAQ](../FAQ.md)。 | 313 | +只要日志能持续按 iteration 打印、`loss` 在合理范围且随训练总体下降、`grad norm` 未出现 NaN/Inf,即说明已正常跑通(首个 iteration 通常较慢,因包含编译与初始化开销,属正常现象)。若启动报错或卡住,可查阅 [FAQ](../troubleshooting/FAQ.md)。 |
| 314 | 314 | ||
| 315 | ## 训练成功启动后 | 315 | ## 训练成功启动后 |
| 316 | 316 | ||
| 317 | - **精度对齐**:迁移的模型跑通后,建议与源仓(GPU/参考框架)对齐精度。具体做法是开启确定性计算(`training.use_deter_comp: true`)、固定随机种子、关闭数据 shuffle,消除随机性后对比两边的 loss 曲线是否一致; | 317 | - **精度对齐**:迁移的模型跑通后,建议与源仓(GPU/参考框架)对齐精度。具体做法是开启确定性计算(`training.use_deter_comp: true`)、固定随机种子、关闭数据 shuffle,消除随机性后对比两边的 loss 曲线是否一致; |
| 318 | -- **性能调优**:采集 Profiling、定位瓶颈、按需开启序列并行/预取/ChunkLoss 等,见 [性能调优](../pytorch/performance_tuning.md); | 318 | +- **性能调优**:采集 Profiling、定位瓶颈、按需开启序列并行/预取/ChunkLoss 等,见 [性能调优](../tuning/performance_tuning.md); |
| 319 | -- **低成本微调**:显存预算有限时改用 [LoRA 微调(FSDP2)](./lora_finetune_fsdp2.md); | 319 | +- **低成本微调**:显存预算有限时改用 [LoRA 微调(FSDP2)](../../features/training_mode/lora_finetune_fsdp2.md); |
| 320 | -- **导出权重**:训练产物为 DCP 格式,用 `mm-convert GenericDCPConverter dcp_to_hf` 转回 HF 格式,见 [权重转换](mm_convert.md)。 | 320 | +- **导出权重**:训练产物为 DCP 格式,用 `mm-convert GenericDCPConverter dcp_to_hf` 转回 HF 格式,见 [权重转换](../../tools/mm_convert.md)。 |
| 321 | 321 | ||
| 322 | -本文以 Qwen3-VL 为例走完了完整迁移流程;更完整的接口说明与各配置段字段定义,可查阅 [FSDP2 迁移指南](./fsdp2_developer_migration_guide.md)。 | 322 | +本文以 Qwen3-VL 为例走完了完整迁移流程;更完整的接口说明与各配置段字段定义,可查阅 [FSDP2 迁移指南](../development/fsdp2_model_migration_guide.md)。 |
| @@ -8,7 +8,7 @@ MindSpeed MM同时支持多模态生成和多模态理解模型,下面分别 | |||
| 8 | 8 | ||
| 9 | ### 环境准备 | 9 | ### 环境准备 |
| 10 | 10 | ||
| 11 | -1. 基于PyTorch框架和Python3.12完成模型训练环境的安装,具体请参见[MindSpeed MM安装指导](install_guide.md)。 | 11 | +1. 基于PyTorch框架和Python3.12完成模型训练环境的安装,具体请参见[MindSpeed MM安装指导](../installation/install_guide.md)。 |
| 12 | 2. 在`MindSpeed-MM`下创建以下目录用于存储日志、数据及权重文件。 | 12 | 2. 在`MindSpeed-MM`下创建以下目录用于存储日志、数据及权重文件。 |
| 13 | 13 | ||
| 14 | ```bash | 14 | ```bash |
| @@ -70,7 +70,7 @@ MindSpeed MM同时支持多模态生成和多模态理解模型,下面分别 | |||
| 70 | |tp_size|TP并行数量,注意要和微调启动脚本中的配置一致|否|1| | 70 | |tp_size|TP并行数量,注意要和微调启动脚本中的配置一致|否|1| |
| 71 | 71 | ||
| 72 | > [!NOTE] | 72 | > [!NOTE] |
| 73 | - > 由于Qwen2_5_VL和Qwen2_VL在权重转换逻辑上保持一致,更多工具详情可参见[权重转换命令行工具](../features/mm_convert.md)。 | 73 | + > 由于Qwen2_5_VL和Qwen2_VL在权重转换逻辑上保持一致,更多工具详情可参见[权重转换命令行工具](../../tools/mm_convert.md)。 |
| 74 | 74 | ||
| 75 | ### 数据预处理 | 75 | ### 数据预处理 |
| 76 | 76 | ||
| @@ -261,7 +261,7 @@ LOAD_PATH="ckpt/mm_path/Qwen2.5-VL-3B-Instruct" | |||
| 261 | 261 | ||
| 262 | ### 环境准备 | 262 | ### 环境准备 |
| 263 | 263 | ||
| 264 | -1. 基于PyTorch框架和Python3.12完成模型训练环境的安装,具体请参见[MindSpeed MM安装指导](install_guide.md)。 | 264 | +1. 基于PyTorch框架和Python3.12完成模型训练环境的安装,具体请参见[MindSpeed MM安装指导](../installation/install_guide.md)。 |
| 265 | 265 | ||
| 266 | 2. 安装其它依赖: | 266 | 2. 安装其它依赖: |
| 267 | 267 | ||
| @@ -569,4 +569,4 @@ mm-convert WanConverter mm_to_hf \ | |||
| 569 | 569 | ||
| 570 | 多模态理解模型更多细节请参考《[Qwen2_5_VL 使用指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/examples/qwen2.5vl/README.md)》。 | 570 | 多模态理解模型更多细节请参考《[Qwen2_5_VL 使用指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/examples/qwen2.5vl/README.md)》。 |
| 571 | 571 | ||
| 572 | -多模态生成模型更多细节请参考《[Wan2.2 使用指南](../../../examples/wan2.2/README.md)》。 | 572 | +多模态生成模型更多细节请参考《[Wan2.2 使用指南](../../../../examples/wan2.2/README.md)》。 |
| @@ -11,7 +11,7 @@ Qwen3-VL模型采用Pytorch原生FSDP2(Fully Sharded Data Parallel 2)框架, | |||
| 11 | 11 | ||
| 12 | ## 环境准备 | 12 | ## 环境准备 |
| 13 | 13 | ||
| 14 | -1. 基于PyTorch框架和Python3.12完成模型训练环境的安装,具体请参见[MindSpeed MM安装指导](install_guide.md)。 | 14 | +1. 基于PyTorch框架和Python3.12完成模型训练环境的安装,具体请参见[MindSpeed MM安装指导](../installation/install_guide.md)。 |
| 15 | 2. 在`MindSpeed-MM`下创建以下目录用于存储日志、数据及权重文件。 | 15 | 2. 在`MindSpeed-MM`下创建以下目录用于存储日志、数据及权重文件。 |
| 16 | 16 | ||
| 17 | ```bash | 17 | ```bash |
| @@ -199,4 +199,4 @@ mm-convert GenericDCPConverter dcp_to_hf \ | |||
| 199 | 199 | ||
| 200 | > 完整参数以 `mm-convert GenericDCPConverter dcp_to_hf -h` 为准。 | 200 | > 完整参数以 `mm-convert GenericDCPConverter dcp_to_hf -h` 为准。 |
| 201 | 201 | ||
| 202 | -如只想低成本微调,可改用 LoRA(可参考 [LoRA 微调(FSDP2)](../features/lora_finetune_fsdp2.md))。 | 202 | +如只想低成本微调,可改用 LoRA(可参考 [LoRA 微调(FSDP2)](../../features/training_mode/lora_finetune_fsdp2.md))。 |
| @@ -2,23 +2,23 @@ | |||
| 2 | 2 | ||
| 3 | | 序号 | 问题简述 | 影响 | 当前方案 | 后续计划 | 相关链接 | | 3 | | 序号 | 问题简述 | 影响 | 当前方案 | 后续计划 | 相关链接 | |
| 4 | |:------:|:------:|:------:|:------:|:------:|:------:| | 4 | |:------:|:------:|:------:|:------:|:------:|:------:| |
| 5 | -| 1 | CANN 版本不匹配导致训练报错 | 训练无法启动或出现算子报错 | 确保驱动固件、CANN Toolkit/Kernels/NNAL、PyTorch、TorchNPU 版本严格配套,参考 [版本配套说明](./release_notes_mm.md#相关产品版本配套说明) | 持续更新版本配套表 | [安装说明](./pytorch/install_guide.md) | | 5 | +| 1 | CANN 版本不匹配导致训练报错 | 训练无法启动或出现算子报错 | 确保驱动固件、CANN Toolkit/Kernels/NNAL、PyTorch、TorchNPU 版本严格配套,参考 [版本配套说明](../../release_notes_mm.md#相关产品版本配套说明) | 持续更新版本配套表 | [安装说明](../installation/install_guide.md) | |
| 6 | -| 2 | `ModuleNotFoundError: No module named 'acl'` | 无法导入昇腾相关模块 | 检查是否已执行 `source /usr/local/Ascend/ascend-toolkit/set_env.sh`,建议写入 `~/.bashrc` | - | [安装说明](./pytorch/install_guide.md) | | 6 | +| 2 | `ModuleNotFoundError: No module named 'acl'` | 无法导入昇腾相关模块 | 检查是否已执行 `source /usr/local/Ascend/ascend-toolkit/set_env.sh`,建议写入 `~/.bashrc` | - | [安装说明](../installation/install_guide.md) | |
| 7 | -| 3 | CANN nnal 包安装顺序错误导致 `libatb.so` 找不到 | 推理或训练时报动态库缺失错误 | nnal 包必须在 `source /usr/local/Ascend/ascend-toolkit/set_env.sh` 之后安装,否则找不到依赖路径 | - | [安装说明](./pytorch/install_guide.md) | | 7 | +| 3 | CANN nnal 包安装顺序错误导致 `libatb.so` 找不到 | 推理或训练时报动态库缺失错误 | nnal 包必须在 `source /usr/local/Ascend/ascend-toolkit/set_env.sh` 之后安装,否则找不到依赖路径 | - | [安装说明](../installation/install_guide.md) | |
| 8 | | 4 | 多机多卡启动时脚本卡死无报错 | 无法启动分布式训练 | 确保已安装 `pdsh`,否则多机多卡启动脚本会卡死。可通过 `apt install pdsh` 或 `yum install pdsh` 安装 | - | - | | 8 | | 4 | 多机多卡启动时脚本卡死无报错 | 无法启动分布式训练 | 确保已安装 `pdsh`,否则多机多卡启动脚本会卡死。可通过 `apt install pdsh` 或 `yum install pdsh` 安装 | - | - | |
| 9 | -| 5 | HuggingFace 权重无法直接用于训练 | 训练启动失败 | HuggingFace 权重格式(safetensors/bin)不能直接用于 Megatron 架构训练,需使用 `mm-convert` 工具转换为 MindSpeed-MM 格式 | - | [权重转换](./features/mm_convert.md) | | 9 | +| 5 | HuggingFace 权重无法直接用于训练 | 训练启动失败 | HuggingFace 权重格式(safetensors/bin)不能直接用于 Megatron 架构训练,需使用 `mm-convert` 工具转换为 MindSpeed-MM 格式 | - | [权重转换](../../tools/mm_convert.md) | |
| 10 | -| 6 | 权重转换时 TP/PP 参数与训练不一致 | 训练加载权重失败 | 权重转换时的 `tp_size`、`pp_size` 及 `llm_pp_layers`/`vit_pp_layers` 必须与训练脚本中的并行配置保持一致 | - | [权重转换](./features/mm_convert.md) | | 10 | +| 6 | 权重转换时 TP/PP 参数与训练不一致 | 训练加载权重失败 | 权重转换时的 `tp_size`、`pp_size` 及 `llm_pp_layers`/`vit_pp_layers` 必须与训练脚本中的并行配置保持一致 | - | [权重转换](../../tools/mm_convert.md) | |
| 11 | | 7 | `tp_size` 超过 `num_key_value_heads` 导致报错 | 张量并行切分失败 | TP 并行度(`tp_size`)不能超过模型配置中的 `num_key_value_heads`,否则 KV 头无法均分到各卡 | - | - | | 11 | | 7 | `tp_size` 超过 `num_key_value_heads` 导致报错 | 张量并行切分失败 | TP 并行度(`tp_size`)不能超过模型配置中的 `num_key_value_heads`,否则 KV 头无法均分到各卡 | - | - | |
| 12 | -| 8 | 训练完成后权重文件数量与原始 HF 模型不一致 | 用户疑惑权重是否完整 | 训练生成的是 Megatron-Core (mcore) 格式权重,经 mg2hf 转换后得到标准 HF 格式。文件数量因切分策略不同而变化,但参数完整,需重新生成 `model.safetensors.index.json` | - | [权重转换](./features/mm_convert.md) | | 12 | +| 8 | 训练完成后权重文件数量与原始 HF 模型不一致 | 用户疑惑权重是否完整 | 训练生成的是 Megatron-Core (mcore) 格式权重,经 mg2hf 转换后得到标准 HF 格式。文件数量因切分策略不同而变化,但参数完整,需重新生成 `model.safetensors.index.json` | - | [权重转换](../../tools/mm_convert.md) | |
| 13 | -| 9 | NPU 显存不足(OOM) | 训练中断 | 可采取以下措施:1. 减小 `micro-batch-size`(最低至1);2. 增大 TP/PP 并行度(TP×PP≤NPU 数量);3. 减小 `seq-length`;4. 开启重计算(`--recompute-granularity full --recompute-method block --recompute-num-layers`);5. 使用 ChunkLoss 降低显存峰值 | - | [ChunkLoss](./features/chunkloss.md) | | 13 | +| 9 | NPU 显存不足(OOM) | 训练中断 | 可采取以下措施:1. 减小 `micro-batch-size`(最低至1);2. 增大 TP/PP 并行度(TP×PP≤NPU 数量);3. 减小 `seq-length`;4. 开启重计算(`--recompute-granularity full --recompute-method block --recompute-num-layers`);5. 使用 ChunkLoss 降低显存峰值 | - | [ChunkLoss](../../features/optimization/chunkloss.md) | |
| 14 | | 10 | LLM PP 切分为 0 层时出现 `learning_rate=None` assertion 报错 | 训练启动后立即崩溃 | PP 切分配置中 LLM 部分不能出现 0 层的 stage,例如 `llm=[0,8,10,10]` 会导致该问题,需调整为 `llm=[1,7,10,10]` 等确保每个 stage 均有 LLM 层 | 优化学习率加载逻辑以支持 0 层 stage | - | | 14 | | 10 | LLM PP 切分为 0 层时出现 `learning_rate=None` assertion 报错 | 训练启动后立即崩溃 | PP 切分配置中 LLM 部分不能出现 0 层的 stage,例如 `llm=[0,8,10,10]` 会导致该问题,需调整为 `llm=[1,7,10,10]` 等确保每个 stage 均有 LLM 层 | 优化学习率加载逻辑以支持 0 层 stage | - | |
| 15 | | 11 | 数据预处理超时或同步报错 | 大数据集训练无法启动 | 可增大超时参数 `--distributed-timeout-minutes`;对于超大数据集(百万级以上),建议分批预处理或使用更高性能存储 | 优化数据预处理并行效率 | - | | 15 | | 11 | 数据预处理超时或同步报错 | 大数据集训练无法启动 | 可增大超时参数 `--distributed-timeout-minutes`;对于超大数据集(百万级以上),建议分批预处理或使用更高性能存储 | 优化数据预处理并行效率 | - | |
| 16 | | 12 | 网卡名称错误导致通信超时 | 多机训练无法启动 | 使用 `ifconfig` 检查网卡名称,设置对应环境变量:`export HCCL_SOCKET_IFNAME=<网卡名>`、`export TP_SOCKET_IFNAME=<网卡名>`、`export GLOO_SOCKET_IFNAME=<网卡名>` | - | - | | 16 | | 12 | 网卡名称错误导致通信超时 | 多机训练无法启动 | 使用 `ifconfig` 检查网卡名称,设置对应环境变量:`export HCCL_SOCKET_IFNAME=<网卡名>`、`export TP_SOCKET_IFNAME=<网卡名>`、`export GLOO_SOCKET_IFNAME=<网卡名>` | - | - | |
| 17 | | 13 | 保存 checkpoint 时超时报错 | 训练完成后保存权重失败 | 确保磁盘 IO 带宽正常,单个节点最大约60GB文件需在36分钟内保存完成;也可忽略该报错,不影响已保存的权重 | - | - | | 17 | | 13 | 保存 checkpoint 时超时报错 | 训练完成后保存权重失败 | 确保磁盘 IO 带宽正常,单个节点最大约60GB文件需在36分钟内保存完成;也可忽略该报错,不影响已保存的权重 | - | - | |
| 18 | | 14 | 复制脚本后出现 `syntax error near unexpected token` | 脚本无法执行 | 从 Windows 复制脚本到 Linux 时换行符不匹配,执行 `dos2unix xxx.sh` 或在 vim 中设置 `:set ff=unix` | - | - | | 18 | | 14 | 复制脚本后出现 `syntax error near unexpected token` | 脚本无法执行 | 从 Windows 复制脚本到 Linux 时换行符不匹配,执行 `dos2unix xxx.sh` 或在 vim 中设置 `:set ff=unix` | - | - | |
| 19 | | 15 | 不同 CANN 版本环境变量冲突 | 多版本环境下训练异常 | 不同版本的 CANN 包建议使用 Docker 隔离,避免环境变量互相干扰 | - | - | | 19 | | 15 | 不同 CANN 版本环境变量冲突 | 多版本环境下训练异常 | 不同版本的 CANN 包建议使用 Docker 隔离,避免环境变量互相干扰 | - | - | |
| 20 | -| 16 | 多模态模型训练中快慢卡负载不均衡 | 训练效率低下 | 使用多模态异构 PP 切分,将视觉编码器、音频编码器和 LLM 分别配置不同的 PP 层数分布,避免某些卡负载过重 | - | [异构并行](./features/hetero_parallel.md) | | 20 | +| 16 | 多模态模型训练中快慢卡负载不均衡 | 训练效率低下 | 使用多模态异构 PP 切分,将视觉编码器、音频编码器和 LLM 分别配置不同的 PP 层数分布,避免某些卡负载过重 | - | [异构并行](../../features/parallel/hetero_parallel.md) | |
| 21 | | 17 | 训练 loss 不收敛 | 模型效果差 | 检查:1. 数据质量和清洗逻辑;2. 学习率和 warmup 策略;3. 是否使用预训练权重初始化;4. 数据路径和图片路径是否正确 | - | - | | 21 | | 17 | 训练 loss 不收敛 | 模型效果差 | 检查:1. 数据质量和清洗逻辑;2. 学习率和 warmup 策略;3. 是否使用预训练权重初始化;4. 数据路径和图片路径是否正确 | - | - | |
| 22 | | 18 | 推荐的关键环境变量配置 | 影响训练性能和稳定性 | 建议配置:`export ASCEND_GLOBAL_LOG_LEVEL=1`、`export TASK_QUEUE_ENABLE=2`、`export CPU_AFFINITY_CONF=2`、`export HCCL_CONNECT_TIMEOUT=600`、`export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True` | - | - | | 22 | | 18 | 推荐的关键环境变量配置 | 影响训练性能和稳定性 | 建议配置:`export ASCEND_GLOBAL_LOG_LEVEL=1`、`export TASK_QUEUE_ENABLE=2`、`export CPU_AFFINITY_CONF=2`、`export HCCL_CONNECT_TIMEOUT=600`、`export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True` | - | - | |
| 23 | -| 19 | Megatron-LM 版本与 MindSpeed-MM 不匹配 | 安装或运行报错 | MindSpeed-MM 需要配套版本的 Megatron-LM,请参考 [安装说明](./pytorch/install_guide.md) 中指定的 commit 或 tag 进行 checkout | - | [安装说明](./pytorch/install_guide.md) | | 23 | +| 19 | Megatron-LM 版本与 MindSpeed-MM 不匹配 | 安装或运行报错 | MindSpeed-MM 需要配套版本的 Megatron-LM,请参考 [安装说明](../installation/install_guide.md) 中指定的 commit 或 tag 进行 checkout | - | [安装说明](../installation/install_guide.md) | |
| 24 | | 20 | Docker 镜像中缺少模型特定依赖 | 模型训练报错 | Docker 镜像仅预装 torch、TorchNPU 和 decord 基础依赖,需根据目标模型的 README 在 base 环境中手动安装额外依赖 | - | - | | 24 | | 20 | Docker 镜像中缺少模型特定依赖 | 模型训练报错 | Docker 镜像仅预装 torch、TorchNPU 和 decord 基础依赖,需根据目标模型的 README 在 base 环境中手动安装额外依赖 | - | - | |
| @@ -37,7 +37,7 @@ | |||
| 37 | cat /usr/local/Ascend/cann/version.info | 37 | cat /usr/local/Ascend/cann/version.info |
| 38 | ``` | 38 | ``` |
| 39 | 39 | ||
| 40 | -2. 对照 [版本配套说明](release_notes_mm.md#相关产品版本配套说明) 确认版本是否配套 | 40 | +2. 对照 [版本配套说明](../../release_notes_mm.md#相关产品版本配套说明) 确认版本是否配套 |
| 41 | 3. 检查 TorchNPU 版本是否与 CANN 版本匹配: | 41 | 3. 检查 TorchNPU 版本是否与 CANN 版本匹配: |
| 42 | 42 | ||
| 43 | ```bash | 43 | ```bash |
| @@ -122,7 +122,7 @@ | |||
| 122 | --recompute-granularity full --recompute-method block --recompute-num-layers <层数> | 122 | --recompute-granularity full --recompute-method block --recompute-num-layers <层数> |
| 123 | ``` | 123 | ``` |
| 124 | 124 | ||
| 125 | -5. 使用 ChunkLoss 降低显存峰值(参考 [ChunkLoss](features/chunkloss.md)) | 125 | +5. 使用 ChunkLoss 降低显存峰值(参考 [ChunkLoss](../../features/optimization/chunkloss.md)) |
| 126 | 6. 使用分布式优化器 `--use-distributed-optimizer` | 126 | 6. 使用分布式优化器 `--use-distributed-optimizer` |
| 127 | 127 | ||
| 128 | ### LLM PP 切分为 0 层报错 | 128 | ### LLM PP 切分为 0 层报错 |
| @@ -203,10 +203,10 @@ | |||
| 203 | 203 | ||
| 204 | **排查步骤**: | 204 | **排查步骤**: |
| 205 | 205 | ||
| 206 | -1. 使用 profiling 工具分析各卡计算时间(参考 [工具使用](tools.md)) | 206 | +1. 使用 profiling 工具分析各卡计算时间(参考 [工具使用](../../tools/tools.md)) |
| 207 | 2. 检查是否启用了异构并行配置 | 207 | 2. 检查是否启用了异构并行配置 |
| 208 | -3. 考虑使用多模态异构 PP 切分(参考 [异构并行](features/hetero_parallel.md)) | 208 | +3. 考虑使用多模态异构 PP 切分(参考 [异构并行](../../features/parallel/hetero_parallel.md)) |
| 209 | -4. 考虑启用 encoder 数据负载均衡(参考 [Encoder数据负载均衡](features/encoder_dp_balance.md)) | 209 | +4. 考虑启用 encoder 数据负载均衡(参考 [Encoder数据负载均衡](../../features/memory/encoder_dp_balance.md)) |
| 210 | 210 | ||
| 211 | --- | 211 | --- |
| 212 | 212 | ||
| @@ -218,7 +218,7 @@ | |||
| 218 | 218 | ||
| 219 | **排查步骤**: | 219 | **排查步骤**: |
| 220 | 220 | ||
| 221 | -1. 确认已使用 `mm-convert` 工具转换权重(参考 [权重转换](features/mm_convert.md)) | 221 | +1. 确认已使用 `mm-convert` 工具转换权重(参考 [权重转换](../../tools/mm_convert.md)) |
| 222 | 2. 检查转换时的并行配置与训练脚本是否一致: | 222 | 2. 检查转换时的并行配置与训练脚本是否一致: |
| 223 | - `tp_size` | 223 | - `tp_size` |
| 224 | - `pp_size` | 224 | - `pp_size` |
| @@ -248,7 +248,7 @@ | |||
| 248 | 248 | ||
| 249 | 1. Docker 镜像仅预装 torch、TorchNPU 和 decord 基础依赖 | 249 | 1. Docker 镜像仅预装 torch、TorchNPU 和 decord 基础依赖 |
| 250 | 2. 根据目标模型的 README 在 base 环境中手动安装额外依赖 | 250 | 2. 根据目标模型的 README 在 base 环境中手动安装额外依赖 |
| 251 | -3. 参考 [Docker 使用](../../docker/OVERVIEW.zh.md) | 251 | +3. 参考 [Docker 使用](../../../../docker/OVERVIEW.zh.md) |
| 252 | 252 | ||
| 253 | ### CANN 版本冲突 | 253 | ### CANN 版本冲突 |
| 254 | 254 | ||
| @@ -313,4 +313,4 @@ export ASCEND_SLOG_PRINT_TO_STDOUT=1 # 日志直接打印到终端 | |||
| 313 | 313 | ||
| 314 | ### 使用 Profiling 工具 | 314 | ### 使用 Profiling 工具 |
| 315 | 315 | ||
| 316 | -详细使用方法请参考 [工具使用](tools.md#profiling采集工具)。 | 316 | +详细使用方法请参考 [工具使用](../../tools/tools.md#profiling采集工具)。 |
| @@ -156,7 +156,7 @@ dump执行完成后,会在输出目录生成 `snapshot_` 开头的 `pickle` | |||
| 156 | 156 | ||
| 157 | #### FSDP | 157 | #### FSDP |
| 158 | 158 | ||
| 159 | -套件支持FSDP2特性,可以参考 [FSDP2使用说明](../features/fsdp2.md) 使用FSDP2。 | 159 | +套件支持FSDP2特性,可以参考 [FSDP2使用说明](../../features/parallel/fsdp2.md) 使用FSDP2。 |
| 160 | 启用此特性,默认情况下可以对静态显存做完全切分。 | 160 | 启用此特性,默认情况下可以对静态显存做完全切分。 |
| 161 | 161 | ||
| 162 | ### 静态显存调优 | 162 | ### 静态显存调优 |
| @@ -220,7 +220,7 @@ MM内置的模型如qwen2.5VL、OpenSoraPlan1.3支持开启模型切分,详情 | |||
| 220 | 在生成模型的DiT、理解模型的decoder等主干transformer模型前反向计算阶段,激活值中间结果的保存是一个常见的瓶颈。 | 220 | 在生成模型的DiT、理解模型的decoder等主干transformer模型前反向计算阶段,激活值中间结果的保存是一个常见的瓶颈。 |
| 221 | 激活值重计算可以仅保存少量保存点,并在反向计算时从保存点再次计算出中间变量用于反向计算,避免了保存大部分中间结果到反向,可以大幅降低激活值。 | 221 | 激活值重计算可以仅保存少量保存点,并在反向计算时从保存点再次计算出中间变量用于反向计算,避免了保存大部分中间结果到反向,可以大幅降低激活值。 |
| 222 | 222 | ||
| 223 | -对于FSDP2模型,重计算在yaml中配置生效,使用方法参考 [FSDP2使用说明](../features/fsdp2.md) 使用 | 223 | +对于FSDP2模型,重计算在yaml中配置生效,使用方法参考 [FSDP2使用说明](../../features/parallel/fsdp2.md) 使用 |
| 224 | 224 | ||
| 225 | > - `recompute_modules` | 225 | > - `recompute_modules` |
| 226 | > : - 描述:配置激活值重计算,以计算换内存 | 226 | > : - 描述:配置激活值重计算,以计算换内存 |
| @@ -22,7 +22,7 @@ | |||
| 22 | MindSpeed-MM提供了Profiling采集工具,支持静态采集和动态采集两种模式,用于采集模型训练过程中的性能数据。两个训练后端的配置入口不同: | 22 | MindSpeed-MM提供了Profiling采集工具,支持静态采集和动态采集两种模式,用于采集模型训练过程中的性能数据。两个训练后端的配置入口不同: |
| 23 | 23 | ||
| 24 | - **FSDP2后端**:在训练YAML的`tools`段配置,`tools.profile`用于性能数据采集(`enable`、`profile_type`、`ranks`等字段),`tools.memory_profile`用于显存快照采集(`enable`、`start_step`、`end_step`、`save_path`等字段),可参考各FSDP2模型样例YAML(如`examples/qwen3vl/qwen3vl_30B_config_v1.yaml`)中的`tools`段。 | 24 | - **FSDP2后端**:在训练YAML的`tools`段配置,`tools.profile`用于性能数据采集(`enable`、`profile_type`、`ranks`等字段),`tools.memory_profile`用于显存快照采集(`enable`、`start_step`、`end_step`、`save_path`等字段),可参考各FSDP2模型样例YAML(如`examples/qwen3vl/qwen3vl_30B_config_v1.yaml`)中的`tools`段。 |
| 25 | -- **MCORE(Megatron)后端**:通过`mindspeed_mm/tools/tools.json`配置采集开关与参数,详细使用方法请参考[Profiling采集工具](../tools.md#profiling采集工具); | 25 | +- **MCORE(Megatron)后端**:通过`mindspeed_mm/tools/tools.json`配置采集开关与参数,详细使用方法请参考[Profiling采集工具](../../tools/tools.md#profiling采集工具); |
| 26 | 26 | ||
| 27 | 采集profiling时,建议同时记录以下关键上下文信息,便于后续分析: | 27 | 采集profiling时,建议同时记录以下关键上下文信息,便于后续分析: |
| 28 | 28 | ||
| @@ -84,7 +84,7 @@ MFU(Model FLOPs Utilization,模型算力利用率)是指训练过程中实 | |||
| 84 | 84 | ||
| 85 | ## 性能调优方法 | 85 | ## 性能调优方法 |
| 86 | 86 | ||
| 87 | -MindSpeed-MM提供了多种性能调优特性,可根据实际场景选择合适的策略。各特性的详细使用方法请参考[特性目录](../features/feature_list.md)中的对应文档。部分特性与训练后端绑定,使用前请先确认当前所用后端。 | 87 | +MindSpeed-MM提供了多种性能调优特性,可根据实际场景选择合适的策略。各特性的详细使用方法请参考[特性目录](../../features/feature_list.md)中的对应文档。部分特性与训练后端绑定,使用前请先确认当前所用后端。 |
| 88 | 88 | ||
| 89 | ### 两后端通用特性 | 89 | ### 两后端通用特性 |
| 90 | 90 | ||
| @@ -92,11 +92,11 @@ MindSpeed-MM提供了多种性能调优特性,可根据实际场景选择合 | |||
| 92 | 92 | ||
| 93 | #### 异步激活值卸载 | 93 | #### 异步激活值卸载 |
| 94 | 94 | ||
| 95 | -将激活值卸载至Host侧,利用异步机制使拷贝被计算掩盖,降低峰值显存,详见[异步激活值卸载](../features/async_activation_offload.md) | 95 | +将激活值卸载至Host侧,利用异步机制使拷贝被计算掩盖,降低峰值显存,详见[异步激活值卸载](../../features/memory/async_activation_offload.md) |
| 96 | 96 | ||
| 97 | #### ChunkLoss | 97 | #### ChunkLoss |
| 98 | 98 | ||
| 99 | -对序列维度分块计算loss,避免同时保留整个序列的logits,降低显存峰值,详见[ChunkLoss](../features/chunkloss.md) | 99 | +对序列维度分块计算loss,避免同时保留整个序列的logits,降低显存峰值,详见[ChunkLoss](../../features/optimization/chunkloss.md) |
| 100 | 100 | ||
| 101 | #### 重计算 | 101 | #### 重计算 |
| 102 | 102 | ||
| @@ -133,8 +133,8 @@ Python的垃圾回收(GC)机制可能导致训练性能抖动。当观察到 | |||
| 133 | 133 | ||
| 134 | 显存是训练吞吐的关键约束,释放显存可以增大数据规模(MBS或序列长度),从而实现更好的通算掩盖。以下方法均可用于降低显存峰值。 | 134 | 显存是训练吞吐的关键约束,释放显存可以增大数据规模(MBS或序列长度),从而实现更好的通算掩盖。以下方法均可用于降低显存峰值。 |
| 135 | 135 | ||
| 136 | -- **ChunkMBS**:结合重计算与异步激活卸载,对Batch维度进行细粒度切分(Chunk),使得一次参数Unshard后可以完成多个micro-chunk的前反向计算,减少通信次数、提升通算掩盖效果。在Qwen3.5 35B模型上实测整网收益约5%。详见[ChunkMBS](../features/chunkmbs.md)。使用ChunkMBS需同时开启重计算和异步激活值卸载,且`apply_modules`需被前两者覆盖。 | 136 | +- **ChunkMBS**:结合重计算与异步激活卸载,对Batch维度进行细粒度切分(Chunk),使得一次参数Unshard后可以完成多个micro-chunk的前反向计算,减少通信次数、提升通算掩盖效果。在Qwen3.5 35B模型上实测整网收益约5%。详见[ChunkMBS](../../features/optimization/chunkmbs.md)。使用ChunkMBS需同时开启重计算和异步激活值卸载,且`apply_modules`需被前两者覆盖。 |
| 137 | -- **async_activation_offload(异步激活值卸载)**:FSDP2通过`enable_activation_offload`开启,原理与详情见[异步激活值卸载](../features/async_activation_offload.md)。 | 137 | +- **async_activation_offload(异步激活值卸载)**:FSDP2通过`enable_activation_offload`开启,原理与详情见[异步激活值卸载](../../features/memory/async_activation_offload.md)。 |
| 138 | 138 | ||
| 139 | #### Host内存优化 | 139 | #### Host内存优化 |
| 140 | 140 | ||
| @@ -142,7 +142,7 @@ Python的垃圾回收(GC)机制可能导致训练性能抖动。当观察到 | |||
| 142 | 142 | ||
| 143 | #### 通信与计算重叠 | 143 | #### 通信与计算重叠 |
| 144 | 144 | ||
| 145 | -- **序列并行**:Ulysses上下文并行,通过训练YAML的`parallel.ulysses_parallel_size`配置,原理见[Unaligned Ulysses CP](../features/unaligned_ulysses_cp.md) | 145 | +- **序列并行**:Ulysses上下文并行,通过训练YAML的`parallel.ulysses_parallel_size`配置,原理见[Unaligned Ulysses CP](../../features/parallel/unaligned_ulysses_cp.md) |
| 146 | - **Prefetch配置**:通过提前发起参数AllGather实现通信与计算重叠,由`num_to_forward_prefetch`(前向预取层数,默认0)和`num_to_backward_prefetch`(反向预取层数,默认1)控制(均定义于`mindspeed_mm/fsdp/params/parallel_args.py`)。两点需注意: | 146 | - **Prefetch配置**:通过提前发起参数AllGather实现通信与计算重叠,由`num_to_forward_prefetch`(前向预取层数,默认0)和`num_to_backward_prefetch`(反向预取层数,默认1)控制(均定义于`mindspeed_mm/fsdp/params/parallel_args.py`)。两点需注意: |
| 147 | - 开启EP(Expert Parallelism)场景下,前向预取的AllGather可能与EP域的All2All抢占带宽,应检查预取层数是否合理。 | 147 | - 开启EP(Expert Parallelism)场景下,前向预取的AllGather可能与EP域的All2All抢占带宽,应检查预取层数是否合理。 |
| 148 | - 预取顺序由`fsdp_plan.apply_modules`的配置顺序决定,**必须与模型前向执行顺序一致**,否则会预取错层、掩盖失效。 | 148 | - 预取顺序由`fsdp_plan.apply_modules`的配置顺序决定,**必须与模型前向执行顺序一致**,否则会预取错层、掩盖失效。 |
| @@ -150,12 +150,12 @@ Python的垃圾回收(GC)机制可能导致训练性能抖动。当观察到 | |||
| 150 | 150 | ||
| 151 | #### 其他优化 | 151 | #### 其他优化 |
| 152 | 152 | ||
| 153 | -- **重计算(recompute)**:通过`recompute`参数开启、`recompute_plan.apply_modules`指定重计算的模块(使用模块路径匹配,支持精确路径、通配符和正则表达式,可精确到实例级别)。详见[FSDP2迁移指南](../features/fsdp2_developer_migration_guide.md)。 | 153 | +- **重计算(recompute)**:通过`recompute`参数开启、`recompute_plan.apply_modules`指定重计算的模块(使用模块路径匹配,支持精确路径、通配符和正则表达式,可精确到实例级别)。详见[FSDP2迁移指南](../development/fsdp2_model_migration_guide.md)。 |
| 154 | -- **fully_shard切分粒度优化**:默认情况下FSDP2对每个Block单独做fully_shard,产生多次小参数通信。对于参数量较大的子模块(如MoE experts),可以通过`parallel.fsdp_plan.apply_modules`指定其单独切分,减少通信算子调用次数。详见[FSDP2迁移指南](../features/fsdp2_developer_migration_guide.md)。 | 154 | +- **fully_shard切分粒度优化**:默认情况下FSDP2对每个Block单独做fully_shard,产生多次小参数通信。对于参数量较大的子模块(如MoE experts),可以通过`parallel.fsdp_plan.apply_modules`指定其单独切分,减少通信算子调用次数。详见[FSDP2迁移指南](../development/fsdp2_model_migration_guide.md)。 |
| 155 | - **Cast优化**:模型中可能存在不必要的精度转换(Cast)操作,主要涉及:(1) RMSNorm内部已使用fp32高精度实现,外部无需额外转fp32;(2) MoE routing(Unpermute)TorchNPU插件已修复相关bug,输入已支持output为bf16、routing_weight为fp32的组合,无需额外Cast。在Qwen3.5 MoE模型上,消融RMSNorm + Unpermute处的Cast约有5%性能收益;消融RMSNorm + Unpermute + RMSNormGated处的Cast约有10%性能收益。收益视模型结构而定,修改前应验证精度对齐。 | 155 | - **Cast优化**:模型中可能存在不必要的精度转换(Cast)操作,主要涉及:(1) RMSNorm内部已使用fp32高精度实现,外部无需额外转fp32;(2) MoE routing(Unpermute)TorchNPU插件已修复相关bug,输入已支持output为bf16、routing_weight为fp32的组合,无需额外Cast。在Qwen3.5 MoE模型上,消融RMSNorm + Unpermute处的Cast约有5%性能收益;消融RMSNorm + Unpermute + RMSNormGated处的Cast约有10%性能收益。收益视模型结构而定,修改前应验证精度对齐。 |
| 156 | 156 | ||
| 157 | ### MCORE(Megatron)后端特性 | 157 | ### MCORE(Megatron)后端特性 |
| 158 | 158 | ||
| 159 | -- **异构并行**:支持不同维度的并行策略组合,详见[异构并行](../features/hetero_parallel.md) | 159 | +- **异构并行**:支持不同维度的并行策略组合,详见[异构并行](../../features/parallel/hetero_parallel.md) |
| 160 | -- **序列并行**:通过切分序列维度降低单卡计算量,支持Ulysses、RingAttention、USP等算法,详见[DiT USP](../features/dit_usp.md)和[DiT Ring Attention](../features/dit_ring_attention.md) | 160 | +- **序列并行**:通过切分序列维度降低单卡计算量,支持Ulysses、RingAttention、USP等算法,详见[DiT USP](../../features/parallel/dit_usp.md)和[DiT Ring Attention](../../features/parallel/dit_ring_attention.md) |
| 161 | -- **融合算子与通信隐藏**:rms_norm/swiglu/flash attention等融合算子与Megatron权重更新通信隐藏,详见[迁移调优指南](./model-migration.md#性能调优) | 161 | +- **融合算子与通信隐藏**:rms_norm/swiglu/flash attention等融合算子与Megatron权重更新通信隐藏,详见[迁移调优指南](../development/model-migration.md#性能调优) |
| @@ -12,29 +12,29 @@ MindSpeed-MM是面向大规模分布式训练的昇腾多模态大模型套件 | |||
| 12 | :caption: QuickStart: | 12 | :caption: QuickStart: |
| 13 | :maxdepth: 1 | 13 | :maxdepth: 1 |
| 14 | 14 | ||
| 15 | -pytorch/install_guide | 15 | +guides/installation/install_guide |
| 16 | -快速实践 | 16 | +introduction/quick_practice |
| 17 | ``` | 17 | ``` |
| 18 | 18 | ||
| 19 | ```{toctree} | 19 | ```{toctree} |
| 20 | :caption: 开发指南: | 20 | :caption: 开发指南: |
| 21 | :maxdepth: 1 | 21 | :maxdepth: 1 |
| 22 | 22 | ||
| 23 | -introduction | 23 | +introduction/overview |
| 24 | -pytorch/model_migration_dev_guide | 24 | +guides/development/fsdp2_model_migration_guide_old |
| 25 | -pytorch/new_model_development | 25 | +guides/development/new_model_development |
| 26 | ``` | 26 | ``` |
| 27 | 27 | ||
| 28 | ```{toctree} | 28 | ```{toctree} |
| 29 | :caption: 特性文档: | 29 | :caption: 特性文档: |
| 30 | :maxdepth: 1 | 30 | :maxdepth: 1 |
| 31 | 31 | ||
| 32 | -features/特性总览 | 32 | +introduction/feature_overview |
| 33 | -features/fsdp2_principle | 33 | +features/parallel/fsdp2_principle |
| 34 | features/parallel/hetero-parallel | 34 | features/parallel/hetero-parallel |
| 35 | features/parallel/sequence_parallel | 35 | features/parallel/sequence_parallel |
| 36 | -features/async_activation_offload | 36 | +features/memory/async_activation_offload |
| 37 | -features/online_data_balance | 37 | +features/memory/online_data_balance |
| 38 | features/parallel/tensor_parallel | 38 | features/parallel/tensor_parallel |
| 39 | ``` | 39 | ``` |
| 40 | 40 | ||
| @@ -55,13 +55,13 @@ reference/environment_variables | |||
| 55 | :caption: 调优指南: | 55 | :caption: 调优指南: |
| 56 | :maxdepth: 1 | 56 | :maxdepth: 1 |
| 57 | 57 | ||
| 58 | -pytorch/memory_tuning | 58 | +guides/tuning/memory_tuning |
| 59 | -pytorch/performance_tuning | 59 | +guides/tuning/performance_tuning |
| 60 | ``` | 60 | ``` |
| 61 | 61 | ||
| 62 | ```{toctree} | 62 | ```{toctree} |
| 63 | :caption: FAQ: | 63 | :caption: FAQ: |
| 64 | :maxdepth: 1 | 64 | :maxdepth: 1 |
| 65 | 65 | ||
| 66 | -FAQ | 66 | +guides/troubleshooting/FAQ |
| 67 | ``` | 67 | ``` |
| @@ -12,8 +12,12 @@ | |||
| 12 | ├─docs # 项目文档目录 | 12 | ├─docs # 项目文档目录 |
| 13 | │ ├─en | 13 | │ ├─en |
| 14 | │ └─zh # 中文文档目录 | 14 | │ └─zh # 中文文档目录 |
| 15 | +│ ├─introduction # 简介、目录结构、支持的模型 | ||
| 16 | +│ ├─guides # 安装、实践、开发、调优、问题定位指南 | ||
| 15 | │ ├─features # 特性说明文档 | 17 | │ ├─features # 特性说明文档 |
| 16 | -│ └─pytorch # pytorch后端迁移文档 | 18 | +│ ├─reference # 配置与参数说明 |
| 19 | +│ ├─tools # 工具类文档 | ||
| 20 | +│ └─mindspore # MindSpore后端文档 | ||
| 17 | ├─examples # 所有模型运行脚本和README目录 | 21 | ├─examples # 所有模型运行脚本和README目录 |
| 18 | │ ├─<model_name> # 某个模型的脚本 | 22 | │ ├─<model_name> # 某个模型的脚本 |
| 19 | │ │ ├─xxx.sh # 启动脚本 | 23 | │ │ ├─xxx.sh # 启动脚本 |
| @@ -52,7 +56,6 @@ | |||
| 52 | ├─tests # 测试代码目录 | 56 | ├─tests # 测试代码目录 |
| 53 | │ ├─st # 系统测试用例 | 57 | │ ├─st # 系统测试用例 |
| 54 | │ └─ut # 单元测试用例 | 58 | │ └─ut # 单元测试用例 |
| 55 | -├─UserGuide # 用户指南目录 | ||
| 56 | └─verl_plugin # verl适配目录 | 59 | └─verl_plugin # verl适配目录 |
| 57 | ├─verl_npu # verl适配代码 | 60 | ├─verl_npu # verl适配代码 |
| 58 | ├─README.md # verl适配说明文档 | 61 | ├─README.md # verl适配说明文档 |
| @@ -17,7 +17,7 @@ MindSpeed MM架构关系如图所示 | |||
| 17 | 17 | ||
| 18 | 图1 MindSpeed MM架构图 | 18 | 图1 MindSpeed MM架构图 |
| 19 | 19 | ||
| 20 | - | 20 | + |
| 21 | 21 | ||
| 22 | ## 功能特性 | 22 | ## 功能特性 |
| 23 | 23 | ||
| @@ -29,14 +29,14 @@ MindSpeed MM 组件组成有预置模型、套件功能、多模态优化特性 | |||
| 29 | 29 | ||
| 30 | 多模态加速特性:包括多维高效并行算法(DP/PP/TP/CP/EP/FSDP2)、通算掩盖(Computation-Communication Overlap)、多模态负载均衡、动态显存管理(重计算、分级存储)、长序列优化等,确保训练效率最大化。 | 30 | 多模态加速特性:包括多维高效并行算法(DP/PP/TP/CP/EP/FSDP2)、通算掩盖(Computation-Communication Overlap)、多模态负载均衡、动态显存管理(重计算、分级存储)、长序列优化等,确保训练效率最大化。 |
| 31 | 31 | ||
| 32 | -## MindSpeed MM 双后端支持 | 32 | +## MindSpeed MM双后端支持 |
| 33 | 33 | ||
| 34 | -MindSpeed MM 支持两类训练后端:基于 PyTorch FSDP2 的 FSDP2 后端,以及基于 MindSpeed Core(即 Megatron-LM 内核)的 Megatron 后端。新增模型推荐使用 FSDP2 后端。 | 34 | +MindSpeed MM支持两类训练后端:基于PyTorch FSDP2的FSDP2后端,以及基于MindSpeed Core(即Megatron-LM内核)的Megatron后端。新增模型推荐使用FSDP2后端。 |
| 35 | 35 | ||
| 36 | -### FSDP2 后端 | 36 | +### FSDP2后端 |
| 37 | 37 | ||
| 38 | -MindSpeed MM FSDP2 后端基于 PyTorch FSDP2 构建,在此基础上补充了面向昇腾平台的并行状态管理、模型注册、数据注册、DCP 检查点、重计算、LoRA、专家并行和多模态数据处理能力。该后端以独立的训练入口和一份 YAML 配置运行,不依赖 Megatron 命令行参数,已应用于包括 Wan2.2、Qwen3VL 在内的多个开源多模态模型训练任务。 | 38 | +MindSpeed MM FSDP2后端基于PyTorch FSDP2构建,在此基础上补充了面向昇腾平台的并行状态管理、模型注册、数据注册、DCP检查点、重计算、LoRA、专家并行和多模态数据处理能力。该后端以独立的训练入口和一份YAML配置运行,不依赖Megatron命令行参数,已应用于包括Wan2.2、Qwen3VL在内的多个开源多模态模型训练任务。 |
| 39 | 39 | ||
| 40 | -### Megatron 后端 | 40 | +### Megatron后端 |
| 41 | 41 | ||
| 42 | -Megatron 后端采用 PTD(Pipeline, Tensor, Data)并行方案,支持异构并行、序列并行(Ulysses、RingAttention、USP)、融合算子与 Megatron 权重更新通信隐藏等特性。该后端复用 Megatron 训练入口,训练脚本需要编写 `GPT_ARGS`、`MM_ARGS`、`OUTPUT_ARGS` 等参数以通过 Megatron 的参数校验。 | 42 | +Megatron后端采用PTD(Pipeline, Tensor, Data)并行方案,支持异构并行、序列并行(Ulysses、RingAttention、USP)、融合算子与Megatron权重更新通信隐藏等特性。该后端复用Megatron训练入口,训练脚本需要编写`GPT_ARGS`、`MM_ARGS`、`OUTPUT_ARGS`等参数以通过Megatron的参数校验。 |
| @@ -3,5 +3,5 @@ | |||
| 3 | ```{toctree} | 3 | ```{toctree} |
| 4 | :maxdepth: 2 | 4 | :maxdepth: 2 |
| 5 | 5 | ||
| 6 | -features/fsdp2_qwen3vl_migration_practice | 6 | +../guides/practices/fsdp2_qwen3vl_migration_practice |
| 7 | ``` | 7 | ``` |
| @@ -116,7 +116,7 @@ | |||
| 116 | <td> BF16 </td> | 116 | <td> BF16 </td> |
| 117 | </tr> | 117 | </tr> |
| 118 | <tr> | 118 | <tr> |
| 119 | - <td rowspan="2"><a href="../../../examples/diffusers/sd3">SD3.5</a></td> | 119 | + <td rowspan="2"><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/diffusers/sd3">SD3.5</a></td> |
| 120 | <td><a href="https://github.com/huggingface/diffusers/tree/5f724735437d91ed05304da478f3b2022fe3f6fb"> 8.1B </a></td> | 120 | <td><a href="https://github.com/huggingface/diffusers/tree/5f724735437d91ed05304da478f3b2022fe3f6fb"> 8.1B </a></td> |
| 121 | <td> 全参微调 </td> | 121 | <td> 全参微调 </td> |
| 122 | <td> 1x8 </td> | 122 | <td> 1x8 </td> |
| @@ -129,42 +129,42 @@ | |||
| 129 | <td> FP16 </td> | 129 | <td> FP16 </td> |
| 130 | </tr> | 130 | </tr> |
| 131 | <tr> | 131 | <tr> |
| 132 | - <td><a href="../../../examples/diffusers/flux">Flux</a></td> | 132 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/diffusers/flux">Flux</a></td> |
| 133 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">12B</a></td> | 133 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">12B</a></td> |
| 134 | <td> 全参微调 </td> | 134 | <td> 全参微调 </td> |
| 135 | <td> 1x8 </td> | 135 | <td> 1x8 </td> |
| 136 | <td> BF16 </td> | 136 | <td> BF16 </td> |
| 137 | </tr> | 137 | </tr> |
| 138 | <tr> | 138 | <tr> |
| 139 | - <td><a href="../../../examples/diffusers/flux2">Flux2-T2I</a></td> | 139 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/diffusers/flux2">Flux2-T2I</a></td> |
| 140 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">32B</a></td> | 140 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">32B</a></td> |
| 141 | <td> 全参微调 </td> | 141 | <td> 全参微调 </td> |
| 142 | <td> 1x8 </td> | 142 | <td> 1x8 </td> |
| 143 | <td> BF16 </td> | 143 | <td> BF16 </td> |
| 144 | </tr> | 144 | </tr> |
| 145 | <tr> | 145 | <tr> |
| 146 | - <td><a href="../../../examples/diffusers/flux2">Flux2-I2I</a></td> | 146 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/diffusers/flux2">Flux2-I2I</a></td> |
| 147 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">32B</a></td> | 147 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">32B</a></td> |
| 148 | <td> 全参微调 </td> | 148 | <td> 全参微调 </td> |
| 149 | <td> 1x8 </td> | 149 | <td> 1x8 </td> |
| 150 | <td> BF16 </td> | 150 | <td> BF16 </td> |
| 151 | </tr> | 151 | </tr> |
| 152 | <tr> | 152 | <tr> |
| 153 | - <td><a href="../../../examples/diffusers/flux-kontext">Flux-Kontext</a></td> | 153 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/diffusers/flux-kontext">Flux-Kontext</a></td> |
| 154 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">12B</a></td> | 154 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">12B</a></td> |
| 155 | <td> 全参微调 </td> | 155 | <td> 全参微调 </td> |
| 156 | <td> 1x8 </td> | 156 | <td> 1x8 </td> |
| 157 | <td> BF16 </td> | 157 | <td> BF16 </td> |
| 158 | </tr> | 158 | </tr> |
| 159 | <tr> | 159 | <tr> |
| 160 | - <td><a href="../../../examples/diffusers/qwen_image">Qwen-Image</a></td> | 160 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/diffusers/qwen_image">Qwen-Image</a></td> |
| 161 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">27B</a></td> | 161 | <td><a href="https://github.com/huggingface/diffusers/blob/main/examples/dreambooth">27B</a></td> |
| 162 | <td> LoRA微调 </td> | 162 | <td> LoRA微调 </td> |
| 163 | <td> 1x8 </td> | 163 | <td> 1x8 </td> |
| 164 | <td> BF16 </td> | 164 | <td> BF16 </td> |
| 165 | </tr> | 165 | </tr> |
| 166 | <tr> | 166 | <tr> |
| 167 | - <td><a href="../../../examples/diffsynth/qwen_image_edit">Qwen-Image-Edit</a></td> | 167 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/diffsynth/qwen_image_edit">Qwen-Image-Edit</a></td> |
| 168 | <td><a href="https://github.com/modelscope/Diffsynth-Studio/tree/main/examples/qwen_image">27B</a></td> | 168 | <td><a href="https://github.com/modelscope/Diffsynth-Studio/tree/main/examples/qwen_image">27B</a></td> |
| 169 | <td> LoRA微调 </td> | 169 | <td> LoRA微调 </td> |
| 170 | <td> 1x8 </td> | 170 | <td> 1x8 </td> |
| @@ -181,14 +181,14 @@ | |||
| 181 | <td> BF16 </td> | 181 | <td> BF16 </td> |
| 182 | </tr> | 182 | </tr> |
| 183 | <tr> | 183 | <tr> |
| 184 | - <td><a href="../../../examples/internvl3.5">InternVL 3.5</a></td> | 184 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/internvl3.5">InternVL 3.5</a></td> |
| 185 | <td><a href="https://huggingface.co/OpenGVLab/InternVL3_5-30B-A3B-Instruct">30B</a></td> | 185 | <td><a href="https://huggingface.co/OpenGVLab/InternVL3_5-30B-A3B-Instruct">30B</a></td> |
| 186 | <td> 微调 </td> | 186 | <td> 微调 </td> |
| 187 | <td> 1x8 (A3) </td> | 187 | <td> 1x8 (A3) </td> |
| 188 | <td> BF16 </td> | 188 | <td> BF16 </td> |
| 189 | </tr> | 189 | </tr> |
| 190 | <tr> | 190 | <tr> |
| 191 | - <td rowspan="4"><a href="../../../examples/qwen2.5vl">Qwen2.5-VL</a></td> | 191 | + <td rowspan="4"><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/qwen2.5vl">Qwen2.5-VL</a></td> |
| 192 | <td><a href="https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct">3B</a></td> | 192 | <td><a href="https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct">3B</a></td> |
| 193 | <td> 微调 </td> | 193 | <td> 微调 </td> |
| 194 | <td> 1x8 </td> | 194 | <td> 1x8 </td> |
| @@ -251,7 +251,7 @@ | |||
| 251 | <td> BF16 </td> | 251 | <td> BF16 </td> |
| 252 | </tr> | 252 | </tr> |
| 253 | <tr> | 253 | <tr> |
| 254 | - <td><a href="../../../examples/qwen2.5omni">Qwen2.5-Omni</a></td> | 254 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/qwen2.5omni">Qwen2.5-Omni</a></td> |
| 255 | <td><a href="https://huggingface.co/Qwen/Qwen2.5-Omni-7B">7B</a></td> | 255 | <td><a href="https://huggingface.co/Qwen/Qwen2.5-Omni-7B">7B</a></td> |
| 256 | <td> 微调 </td> | 256 | <td> 微调 </td> |
| 257 | <td> 1x8 </td> | 257 | <td> 1x8 </td> |
| @@ -265,7 +265,7 @@ | |||
| 265 | <td> BF16 </td> | 265 | <td> BF16 </td> |
| 266 | </tr> | 266 | </tr> |
| 267 | <tr> | 267 | <tr> |
| 268 | - <td><a href="../../../examples/magistral-2509">Magistral-Small-2509</a></td> | 268 | + <td><a href="https://gitcode.com/Ascend/MindSpeed-MM/tree/26.1.0/examples/magistral-2509">Magistral-Small-2509</a></td> |
| 269 | <td><a href="https://huggingface.co/mistralai/Magistral-Small-2509">24B</a></td> | 269 | <td><a href="https://huggingface.co/mistralai/Magistral-Small-2509">24B</a></td> |
| 270 | <td> 微调 </td> | 270 | <td> 微调 </td> |
| 271 | <td> 1x8 </td> | 271 | <td> 1x8 </td> |
| @@ -186,9 +186,9 @@ | |||
| 186 | 186 | ||
| 187 | |文档名称|内容简介|更新说明| | 187 | |文档名称|内容简介|更新说明| |
| 188 | |--|--|--| | 188 | |--|--|--| |
| 189 | -|《[MindSpeed MM安装指导](../zh/pytorch/install_guide.md)》|指导用户如何在NPU上基于PyTorch完成MindSpeed MM的安装,内容涵盖硬件与操作系统兼容性说明、驱动固件及CANN基础软件安装,以及基于PyTorch框架下的完整安装流程,帮助用户快速搭建多模态模型训练环境。|-| | 189 | +|《[MindSpeed MM安装指导](guides/installation/install_guide.md)》|指导用户如何在NPU上基于PyTorch完成MindSpeed MM的安装,内容涵盖硬件与操作系统兼容性说明、驱动固件及CANN基础软件安装,以及基于PyTorch框架下的完整安装流程,帮助用户快速搭建多模态模型训练环境。|-| |
| 190 | -|《[MindSpeed MM快速入门(基于Megatron训练后端)](../zh/pytorch/quickstart.md)》|以Wan2.1和Qwen2.5-VL为例,指导开发者基于Megatron训练后端完成微调任务,帮助用户快速上手多模态模型训练。|-| | 190 | +|《[MindSpeed MM快速入门(基于Megatron训练后端)](guides/practices/quickstart.md)》|以Wan2.1和Qwen2.5-VL为例,指导开发者基于Megatron训练后端完成微调任务,帮助用户快速上手多模态模型训练。|-| |
| 191 | -|《[MindSpeed MM快速入门(基于FSDP2训练后端)](../zh/pytorch/quickstart_fsdp2.md)》|以Qwen3-VL-30B,指导开发者基于FSDP2训练后端完成微调任务,帮助用户快速上手多模态模型训练。|-| | 191 | +|《[MindSpeed MM快速入门(基于FSDP2训练后端)](guides/practices/quickstart_fsdp2.md)》|以Qwen3-VL-30B,指导开发者基于FSDP2训练后端完成微调任务,帮助用户快速上手多模态模型训练。|-| |
| 192 | 192 | ||
| 193 | ## 病毒扫描及漏洞修补列表 | 193 | ## 病毒扫描及漏洞修补列表 |
| 194 | 194 | ||
Rdocs/zh/features/multimodal_host_performance_analysis.md→docs/zh/tools/multimodal_host_performance_analysis.md+0-0
文件重命名但无更改。
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ### Profiling采集工具 | 5 | ### Profiling采集工具 |
| 6 | 6 | ||
| 7 | -套件集成了昇腾[profiling采集工具](../../mindspeed_mm/tools/profiler.py),以提供对模型运行情况的分析。内置模型均已适配,只需修改[tools.json](../../mindspeed_mm/tools/tools.json)文件即可生效。 | 7 | +套件集成了昇腾[profiling采集工具](../../../mindspeed_mm/tools/profiler.py),以提供对模型运行情况的分析。内置模型均已适配,只需修改[tools.json](../../../mindspeed_mm/tools/tools.json)文件即可生效。 |
| 8 | 8 | ||
| 9 | + 若新增模型,请先适配如下设置: | 9 | + 若新增模型,请先适配如下设置: |
| 10 | 10 | ||
| @@ -123,9 +123,9 @@ python mindspeed_mm/tools/profiler.py --mm-tool mindspeed_mm/tools/tools.json -- | |||
| 123 | 123 | ||
| 124 | ### Sora类模型特征提取 | 124 | ### Sora类模型特征提取 |
| 125 | 125 | ||
| 126 | -[feature_extraction](../../mindspeed_mm/tools/feature_extraction)目录下工具可用于提取视频和文本特征并保存,目前支持单batch静态数据集特征提取。 | 126 | +[feature_extraction](../../../mindspeed_mm/tools/feature_extraction)目录下工具可用于提取视频和文本特征并保存,目前支持单batch静态数据集特征提取。 |
| 127 | 127 | ||
| 128 | -1. 按需修改视频、文本特征和数据存储路径的相关配置[tools.json](../../mindspeed_mm/tools/tools.json)文件。 | 128 | +1. 按需修改视频、文本特征和数据存储路径的相关配置[tools.json](../../../mindspeed_mm/tools/tools.json)文件。 |
| 129 | 129 | ||
| 130 | ```bash | 130 | ```bash |
| 131 | --extract_video_feature # 是否提取视频特征 | 131 | --extract_video_feature # 是否提取视频特征 |
| @@ -133,20 +133,20 @@ python mindspeed_mm/tools/profiler.py --mm-tool mindspeed_mm/tools/tools.json -- | |||
| 133 | --save_path # 特征数据存储路径 | 133 | --save_path # 特征数据存储路径 |
| 134 | ``` | 134 | ``` |
| 135 | 135 | ||
| 136 | -2. 使用前按需修改[feature_extraction.sh](../../examples/wan2.1/feature_extract/feature_extraction.sh)文件中对应模型数据集和配置文件(VAE、T5)路径。 | 136 | +2. 使用前按需修改[feature_extraction.sh](../../../examples/wan2.1/feature_extract/feature_extraction.sh)文件中对应模型数据集和配置文件(VAE、T5)路径。 |
| 137 | 137 | ||
| 138 | ```bash | 138 | ```bash |
| 139 | --MM_DATA # 数据配置文件路径(.json) | 139 | --MM_DATA # 数据配置文件路径(.json) |
| 140 | --MM_MODEL # 模型配置文件路径(.json) | 140 | --MM_MODEL # 模型配置文件路径(.json) |
| 141 | ``` | 141 | ``` |
| 142 | 142 | ||
| 143 | -3. 配置完成后,调用[feature_extraction.sh](../../examples/wan2.1/feature_extract/feature_extraction.sh)即可提取数据特征。 | 143 | +3. 配置完成后,调用[feature_extraction.sh](../../../examples/wan2.1/feature_extract/feature_extraction.sh)即可提取数据特征。 |
| 144 | 144 | ||
| 145 | ### 内存快照提取 | 145 | ### 内存快照提取 |
| 146 | 146 | ||
| 147 | -套件集成了昇腾[内存快照采集工具](../../mindspeed_mm/tools/mem_profiler.py),以提供对模型运行情况的分析。内置模型均已适配,只需修改[tools.json](../../mindspeed_mm/tools/tools.json)文件即可生效。 | 147 | +套件集成了昇腾[内存快照采集工具](../../../mindspeed_mm/tools/mem_profiler.py),以提供对模型运行情况的分析。内置模型均已适配,只需修改[tools.json](../../../mindspeed_mm/tools/tools.json)文件即可生效。 |
| 148 | 148 | ||
| 149 | -+ 对复用[训练流程](../../mindspeed_mm/training.py)的模型,同样仅需修改配置。支持的配置项如下。 | 149 | ++ 对复用[训练流程](../../../mindspeed_mm/training.py)的模型,同样仅需修改配置。支持的配置项如下。 |
| 150 | 150 | ||
| 151 | ```json5 | 151 | ```json5 |
| 152 | { | 152 | { |
| @@ -321,7 +321,7 @@ python mindspeed_mm/fsdp/tools/profiler.py \ | |||
| 321 | 321 | ||
| 322 | ### 内存快照采集 | 322 | ### 内存快照采集 |
| 323 | 323 | ||
| 324 | -FSDP2 后端使用独立的[内存快照采集工具](../../mindspeed_mm/fsdp/tools/memory_profiler.py),通过模型训练 YAML 文件中的 tools.memory_profile 配置。 | 324 | +FSDP2 后端使用独立的[内存快照采集工具](../../../mindspeed_mm/fsdp/tools/memory_profiler.py),通过模型训练 YAML 文件中的 tools.memory_profile 配置。 |
| 325 | 325 | ||
| 326 | 1. 在模型训练 YAML 文件中配置 `tools.memory_profile`,例如: | 326 | 1. 在模型训练 YAML 文件中配置 `tools.memory_profile`,例如: |
| 327 | 327 | ||
| @@ -43,7 +43,7 @@ commit_id=1822c5c | |||
| 43 | 43 | ||
| 44 | 【模型开发时推荐使用配套的环境版本】 | 44 | 【模型开发时推荐使用配套的环境版本】 |
| 45 | 45 | ||
| 46 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 46 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 47 | 47 | ||
| 48 | ### 2. 环境搭建 | 48 | ### 2. 环境搭建 |
| 49 | 49 | ||
| @@ -39,7 +39,7 @@ commit_id=2149f36f22db601f9dbf70472fea11576f62a0f6 | |||
| 39 | 39 | ||
| 40 | 【模型开发时推荐使用配套的环境版本】 | 40 | 【模型开发时推荐使用配套的环境版本】 |
| 41 | 41 | ||
| 42 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md) | 42 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md) |
| 43 | 43 | ||
| 44 | <a id="jump1.1"></a> | 44 | <a id="jump1.1"></a> |
| 45 | 45 | ||
| @@ -62,7 +62,7 @@ cd .. | |||
| 62 | 62 | ||
| 63 | ### 2. 环境搭建 | 63 | ### 2. 环境搭建 |
| 64 | 64 | ||
| 65 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md)创建Python环境并安装 torch 和 TorchNPU。 | 65 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md)创建Python环境并安装 torch 和 TorchNPU。 |
| 66 | 66 | ||
| 67 | ```bash | 67 | ```bash |
| 68 | conda activate test | 68 | conda activate test |
| @@ -44,7 +44,7 @@ commit_id=42b6d3b | |||
| 44 | 44 | ||
| 45 | 【模型开发时推荐使用配套的环境版本】 | 45 | 【模型开发时推荐使用配套的环境版本】 |
| 46 | 46 | ||
| 47 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 47 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 48 | 48 | ||
| 49 | ### 2. 环境搭建 | 49 | ### 2. 环境搭建 |
| 50 | 50 | ||
| @@ -46,7 +46,7 @@ commit_id=8cb5963 | |||
| 46 | 46 | ||
| 47 | 【模型开发时推荐使用配套的环境版本】 | 47 | 【模型开发时推荐使用配套的环境版本】 |
| 48 | 48 | ||
| 49 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 49 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 50 | 50 | ||
| 51 | <a id="jump1.2"></a> | 51 | <a id="jump1.2"></a> |
| 52 | 52 | ||
| @@ -115,8 +115,8 @@ mm-convert ExpertMergeDcpConverter hf_to_dcp --hf_dir "ckpt/hf_path/GLM-4.5V" -- | |||
| 115 | 115 | ||
| 116 | ## 数据集准备及处理 | 116 | ## 数据集准备及处理 |
| 117 | 117 | ||
| 118 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 118 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 119 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 119 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 120 | 120 | ||
| 121 | ## 微调 | 121 | ## 微调 |
| 122 | 122 | ||
| @@ -260,7 +260,7 @@ WORLD_SIZE=$(($NPUS_PER_NODE * $NNODES)) | |||
| 260 | ### 3. 启动微调 | 260 | ### 3. 启动微调 |
| 261 | 261 | ||
| 262 | 启动微调训练任务需要确认loss计算方式。 | 262 | 启动微调训练任务需要确认loss计算方式。 |
| 263 | -loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/vlm_model_loss_calculate_type.md) | 263 | +loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/optimization/vlm_model_loss_calculate_type.md) |
| 264 | 264 | ||
| 265 | ```shell | 265 | ```shell |
| 266 | bash examples/glm4.5v/model_106B.sh | 266 | bash examples/glm4.5v/model_106B.sh |
| @@ -52,7 +52,7 @@ url=https://huggingface.co/zai-org/GLM-5.3-Flash-BF16/tree/main | |||
| 52 | 52 | ||
| 53 | 【模型开发时推荐使用配套的环境版本】 | 53 | 【模型开发时推荐使用配套的环境版本】 |
| 54 | 54 | ||
| 55 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 55 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 56 | 56 | ||
| 57 | 推荐环境版本如下: | 57 | 推荐环境版本如下: |
| 58 | 58 | ||
| @@ -164,8 +164,8 @@ pip list | grep fla | |||
| 164 | 164 | ||
| 165 | ## 数据集准备及处理 | 165 | ## 数据集准备及处理 |
| 166 | 166 | ||
| 167 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 167 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 168 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 168 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 169 | 169 | ||
| 170 | ## 训练 | 170 | ## 训练 |
| 171 | 171 | ||
| @@ -254,11 +254,11 @@ training: | |||
| 254 | - 重计算 | 254 | - 重计算 |
| 255 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭。 | 255 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭。 |
| 256 | - 开启后可以节省显存占用 | 256 | - 开启后可以节省显存占用 |
| 257 | -- [chunkloss](../../docs/zh/features/chunkloss.md) | 257 | +- [chunkloss](../../docs/zh/features/optimization/chunkloss.md) |
| 258 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 | 258 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 |
| 259 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 | 259 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 |
| 260 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 | 260 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 |
| 261 | -- [async activation offload](../../docs/zh/features/async_activation_offload.md) | 261 | +- [async activation offload](../../docs/zh/features/memory/async_activation_offload.md) |
| 262 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 | 262 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 |
| 263 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 | 263 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 |
| 264 | 264 | ||
| @@ -51,7 +51,7 @@ commit_id=bf576ef1d5ddc643cf814b1dff4f4dcc9a7581c7 | |||
| 51 | 51 | ||
| 52 | 【模型开发时推荐使用配套的环境版本】 | 52 | 【模型开发时推荐使用配套的环境版本】 |
| 53 | 53 | ||
| 54 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md) | 54 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md) |
| 55 | 55 | ||
| 56 | ### 1. 仓库拉取 | 56 | ### 1. 仓库拉取 |
| 57 | 57 | ||
| @@ -55,7 +55,7 @@ url=https://huggingface.co/moonshotai/Kimi-K3/tree/main | |||
| 55 | 55 | ||
| 56 | 【模型开发时推荐使用配套的环境版本】 | 56 | 【模型开发时推荐使用配套的环境版本】 |
| 57 | 57 | ||
| 58 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 58 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 59 | 59 | ||
| 60 | <a id="jump1.2"></a> | 60 | <a id="jump1.2"></a> |
| 61 | 61 | ||
| @@ -206,8 +206,8 @@ pip install -e . --no-build-isolation --no-deps | |||
| 206 | 206 | ||
| 207 | ## 数据集准备及处理 | 207 | ## 数据集准备及处理 |
| 208 | 208 | ||
| 209 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 209 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 210 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 210 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 211 | 211 | ||
| 212 | ## 训练 | 212 | ## 训练 |
| 213 | 213 | ||
| @@ -278,8 +278,8 @@ NODE_RANK: 当前节点序号 | |||
| 278 | | `skip_kda_recompute` | `model` | 跳过linear attention层KDA重计算 | 选择性重计算,需同时使能重计算和`enable_activation_offload` | | 278 | | `skip_kda_recompute` | `model` | 跳过linear attention层KDA重计算 | 选择性重计算,需同时使能重计算和`enable_activation_offload` | |
| 279 | | `recompute` | `features` | 重计算开关 | 开启后可以节省显存占用 | | 279 | | `recompute` | `features` | 重计算开关 | 开启后可以节省显存占用 | |
| 280 | | `enable_activation_offload` | `features` | 激活值异步卸载到Host侧内存开关 | 开启后降低Device显存占用,`apply_modules`指定需要开启该特性的module | | 280 | | `enable_activation_offload` | `features` | 激活值异步卸载到Host侧内存开关 | 开启后降低Device显存占用,`apply_modules`指定需要开启该特性的module | |
| 281 | -| `enable_chunk_loss` | `features` | chunkloss特性开关 | 需与`chunkloss_plan`关联使用,开启后大幅降低loss计算时的显存尖刺,详细说明请参考[chunkloss文档](../../docs/zh/features/chunkloss.md) | | 281 | +| `enable_chunk_loss` | `features` | chunkloss特性开关 | 需与`chunkloss_plan`关联使用,开启后大幅降低loss计算时的显存尖刺,详细说明请参考[chunkloss文档](../../docs/zh/features/optimization/chunkloss.md) | |
| 282 | -| `enable_chunk_mbs` | `features` | 是否开启chunkmbs特性 | 需与`chunkmbs_plan`关联使用,开启后将MicroBatch维度切分为多个微块依次计算,可压缩激活显存峰值并提升训练吞吐,详细说明请参考[chunkmbs文档](../../docs/zh/features/chunkmbs.md) | | 282 | +| `enable_chunk_mbs` | `features` | 是否开启chunkmbs特性 | 需与`chunkmbs_plan`关联使用,开启后将MicroBatch维度切分为多个微块依次计算,可压缩激活显存峰值并提升训练吞吐,详细说明请参考[chunkmbs文档](../../docs/zh/features/optimization/chunkmbs.md) | |
| 283 | 283 | ||
| 284 | 【数据目录配置】 | 284 | 【数据目录配置】 |
| 285 | 285 | ||
| @@ -307,14 +307,14 @@ NODE_RANK: 当前节点序号 | |||
| 307 | - 重计算 | 307 | - 重计算 |
| 308 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭。 | 308 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭。 |
| 309 | - 开启后可以节省显存占用 | 309 | - 开启后可以节省显存占用 |
| 310 | -- [chunkloss](../../docs/zh/features/chunkloss.md) | 310 | +- [chunkloss](../../docs/zh/features/optimization/chunkloss.md) |
| 311 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 | 311 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 |
| 312 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 | 312 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 |
| 313 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 | 313 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 |
| 314 | -- [async activation offload](../../docs/zh/features/async_activation_offload.md) | 314 | +- [async activation offload](../../docs/zh/features/memory/async_activation_offload.md) |
| 315 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 | 315 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 |
| 316 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 | 316 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 |
| 317 | -- [chunkmbs](../../docs/zh/features/chunkmbs.md) | 317 | +- [chunkmbs](../../docs/zh/features/optimization/chunkmbs.md) |
| 318 | - 在`features.enable_chunk_mbs`配置,`true`表示开启,`false`表示关闭 | 318 | - 在`features.enable_chunk_mbs`配置,`true`表示开启,`false`表示关闭 |
| 319 | - `features.chunkmbs_plan.chunk_mbs`表示切分以后单次计算的`micro_batch_size` | 319 | - `features.chunkmbs_plan.chunk_mbs`表示切分以后单次计算的`micro_batch_size` |
| 320 | - 开启该特性时需要同时使能重计算和async activation offload特性,可以增加FSDP2单次unshard对应的计算密度,提高整网吞吐。 | 320 | - 开启该特性时需要同时使能重计算和async activation offload特性,可以增加FSDP2单次unshard对应的计算密度,提高整网吞吐。 |
| @@ -63,7 +63,7 @@ commit_id=74797c9 | |||
| 63 | 63 | ||
| 64 | 【模型开发时推荐使用配套的环境版本】 | 64 | 【模型开发时推荐使用配套的环境版本】 |
| 65 | 65 | ||
| 66 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 66 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 67 | 67 | ||
| 68 | <a id="jump1.2"></a> | 68 | <a id="jump1.2"></a> |
| 69 | 69 | ||
| @@ -81,8 +81,8 @@ bash scripts/install.sh --msbranch master && pip install tiktoken==0.12.0 | |||
| 81 | 81 | ||
| 82 | ## 数据集准备及处理 | 82 | ## 数据集准备及处理 |
| 83 | 83 | ||
| 84 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 84 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 85 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 85 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 86 | 86 | ||
| 87 | ## 训练 | 87 | ## 训练 |
| 88 | 88 | ||
| @@ -151,7 +151,7 @@ NODE_RANK: 当前节点序号 | |||
| 151 | | `enable_preload` | `data->dataloader_param` | 数据预加载开关 | 开启后数据加载与计算重叠,减少训练等待时间 | | 151 | | `enable_preload` | `data->dataloader_param` | 数据预加载开关 | 开启后数据加载与计算重叠,减少训练等待时间 | |
| 152 | | `enable_activation_offload` | `features` | 激活值卸载到Host侧内存开关 | 开启后降低Device显存占用,`apply_modules`指定需要开启该特性的module | | 152 | | `enable_activation_offload` | `features` | 激活值卸载到Host侧内存开关 | 开启后降低Device显存占用,`apply_modules`指定需要开启该特性的module | |
| 153 | | `enable_chunk_mbs` | `features` | 是否开启chunkmbs特性 | 需与`chunkmbs_plan`关联使用,开启后将MicroBatch维度切分为多个微块依次计算,可压缩激活显存峰值并提升训练吞吐 | | 153 | | `enable_chunk_mbs` | `features` | 是否开启chunkmbs特性 | 需与`chunkmbs_plan`关联使用,开启后将MicroBatch维度切分为多个微块依次计算,可压缩激活显存峰值并提升训练吞吐 | |
| 154 | -| `chunkmbs_plan` | `features` | chunkmbs切分策略配置 | 仅在`enable_chunk_mbs`启用时生效,包含`chunk_mbs`、`batch_dim`、`chunk_arg_indexs`、`chunk_kwarg_names`等子字段,详细说明请参考[chunkmbs文档](../../docs/zh/features/chunkmbs.md) | | 154 | +| `chunkmbs_plan` | `features` | chunkmbs切分策略配置 | 仅在`enable_chunk_mbs`启用时生效,包含`chunk_mbs`、`batch_dim`、`chunk_arg_indexs`、`chunk_kwarg_names`等子字段,详细说明请参考[chunkmbs文档](../../docs/zh/features/optimization/chunkmbs.md) | |
| 155 | 155 | ||
| 156 | <a id="jump3.3"></a> | 156 | <a id="jump3.3"></a> |
| 157 | 157 | ||
| @@ -68,7 +68,7 @@ commit_id=28c3c73fe557666c3de176e1e50a5220152ccfca | |||
| 68 | 68 | ||
| 69 | 【模型开发时推荐使用配套的环境版本】 | 69 | 【模型开发时推荐使用配套的环境版本】 |
| 70 | 70 | ||
| 71 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 71 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 72 | 72 | ||
| 73 | <a id="jump1.2"></a> | 73 | <a id="jump1.2"></a> |
| 74 | 74 | ||
| @@ -78,7 +78,7 @@ MM 训练阶段从 LTX-2.3 检查点中加载 embedding connector;Gemma 目录 | |||
| 78 | 78 | ||
| 79 | 【模型开发时推荐使用配套的环境版本】 | 79 | 【模型开发时推荐使用配套的环境版本】 |
| 80 | 80 | ||
| 81 | -请参考 [MindSpeed-MM 安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾驱动、CANN、PyTorch、`torch_npu` 和 MindSpeed 的安装。建议使用 Python 3.10;`torch`、`torch_npu`、CANN 版本需相互匹配。 | 81 | +请参考 [MindSpeed-MM 安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾驱动、CANN、PyTorch、`torch_npu` 和 MindSpeed 的安装。建议使用 Python 3.10;`torch`、`torch_npu`、CANN 版本需相互匹配。 |
| 82 | 82 | ||
| 83 | ```bash | 83 | ```bash |
| 84 | conda activate <your_conda_env> | 84 | conda activate <your_conda_env> |
| @@ -60,7 +60,7 @@ hf download GAIR/daVinci-MagiHuman \ | |||
| 60 | 60 | ||
| 61 | ### 1. 环境准备 | 61 | ### 1. 环境准备 |
| 62 | 62 | ||
| 63 | -请先按 [安装指导](../../docs/zh/pytorch/install_guide.md) 完成 CANN、PyTorch、torch-npu 和 | 63 | +请先按 [安装指导](../../docs/zh/guides/installation/install_guide.md) 完成 CANN、PyTorch、torch-npu 和 |
| 64 | MindSpeed MM 的安装,配套版本以该文档为准。 | 64 | MindSpeed MM 的安装,配套版本以该文档为准。 |
| 65 | 65 | ||
| 66 | 在 MindSpeed MM 仓库根目录安装当前代码: | 66 | 在 MindSpeed MM 仓库根目录安装当前代码: |
| @@ -241,7 +241,7 @@ bash examples/magihuman/finetune_magihuman_t2av.sh | |||
| 241 | 241 | ||
| 242 | 训练日志能够持续输出 iteration,并且 loss、grad norm 未出现 NaN/Inf,即说明 forward、 | 242 | 训练日志能够持续输出 iteration,并且 loss、grad norm 未出现 NaN/Inf,即说明 forward、 |
| 243 | backward 和 optimizer step 已接通。首个 iteration 通常包含初始化和编译开销,耗时可能明显 | 243 | backward 和 optimizer step 已接通。首个 iteration 通常包含初始化和编译开销,耗时可能明显 |
| 244 | -高于后续迭代。启动失败或训练卡住时,可查阅 [FAQ](../../docs/zh/FAQ.md)。 | 244 | +高于后续迭代。启动失败或训练卡住时,可查阅 [FAQ](../../docs/zh/guides/troubleshooting/FAQ.md)。 |
| 245 | 245 | ||
| 246 | 在 8 卡 Ascend 910B3 上按上述配置训练,输入取 video 3840、audio 126、text 640 token | 246 | 在 8 卡 Ascend 910B3 上按上述配置训练,输入取 video 3840、audio 126、text 640 token |
| 247 | (packed 长度 4606),5000 step 稳态 step time 中位数 4634.8 ms,单卡 71.7 TFLOP/s,峰值显存 | 247 | (packed 长度 4606),5000 step 稳态 step time 中位数 4634.8 ms,单卡 71.7 TFLOP/s,峰值显存 |
| @@ -259,17 +259,17 @@ RMSNorm 使用 `npu_rms_norm`,fp32 下最大误差约 1e-6。连续半区 gate | |||
| 259 | 259 | ||
| 260 | | 特性 | 是否支持 | 说明 | | 260 | | 特性 | 是否支持 | 说明 | |
| 261 | | --- | --- | --- | | 261 | | --- | --- | --- | |
| 262 | -| [FSDP2](../../docs/zh/features/fsdp2.md) | 是 | 分片粒度 `dit.block.layers.{*}`,`param_dtype: bf16`、`reduce_dtype: fp32` | | 262 | +| [FSDP2](../../docs/zh/features/parallel/fsdp2.md) | 是 | 分片粒度 `dit.block.layers.{*}`,`param_dtype: bf16`、`reduce_dtype: fp32` | |
| 263 | | 全参数微调 | 是 | text-to-audio-video,单流打包序列 | | 263 | | 全参数微调 | 是 | text-to-audio-video,单流打包序列 | |
| 264 | | 重计算 | 是 | `features.recompute` 配合 `recompute_plan` | | 264 | | 重计算 | 是 | `features.recompute` 配合 `recompute_plan` | |
| 265 | | 序列打包 | 是 | dataset 的 `collate_fn` 沿 token 轴拼接,`cu_seqlens` 驱动 varlen attention | | 265 | | 序列打包 | 是 | dataset 的 `collate_fn` 沿 token 轴拼接,`cu_seqlens` 驱动 varlen attention | |
| 266 | | NPU 融合算子 | 是 | attention、RoPE、RMSNorm,默认开启 | | 266 | | NPU 融合算子 | 是 | attention、RoPE、RMSNorm,默认开启 | |
| 267 | | 权重加载与导出 | 是 | DCP 保存与续训、HF 权重在线加载、导出回上游 HF 格式 | | 267 | | 权重加载与导出 | 是 | DCP 保存与续训、HF 权重在线加载、导出回上游 HF 格式 | |
| 268 | -| [Ulysses CP](../../docs/zh/features/unaligned_ulysses_cp.md) | 是 | 开启后 DP 同比减小,需用梯度累积补回 global batch | | 268 | +| [Ulysses CP](../../docs/zh/features/parallel/unaligned_ulysses_cp.md) | 是 | 开启后 DP 同比减小,需用梯度累积补回 global batch | |
| 269 | -| [LoRA 微调](../../docs/zh/features/lora_finetune_fsdp2.md) | 否 | — | | 269 | +| [LoRA 微调](../../docs/zh/features/training_mode/lora_finetune_fsdp2.md) | 否 | — | |
| 270 | | 张量并行、Ring Attention | 否 | 相关配置项保持为 `1` | | 270 | | 张量并行、Ring Attention | 否 | 相关配置项保持为 `1` | |
| 271 | -| [Chunk Loss](../../docs/zh/features/chunkloss.md) | 否 | — | | 271 | +| [Chunk Loss](../../docs/zh/features/optimization/chunkloss.md) | 否 | — | |
| 272 | -| [Async Activation Offload](../../docs/zh/features/async_activation_offload.md) | 是 | 作用于 `dit.block.layers.{*}`;8 卡 100 步开关对照 loss/grad norm 逐位一致,每步卸载约 838 MiB,吞吐下降约 3% | | 272 | +| [Async Activation Offload](../../docs/zh/features/memory/async_activation_offload.md) | 是 | 作用于 `dit.block.layers.{*}`;8 卡 100 步开关对照 loss/grad norm 逐位一致,每步卸载约 838 MiB,吞吐下降约 3% | |
| 273 | 273 | ||
| 274 | ## 权重布局与转换 | 274 | ## 权重布局与转换 |
| 275 | 275 | ||
| @@ -46,7 +46,7 @@ commit_id=fc91372 | |||
| 46 | 46 | ||
| 47 | 【模型开发时推荐使用配套的环境版本】 | 47 | 【模型开发时推荐使用配套的环境版本】 |
| 48 | 48 | ||
| 49 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 49 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 50 | 50 | ||
| 51 | <a id="jump1.2"></a> | 51 | <a id="jump1.2"></a> |
| 52 | 52 | ||
| @@ -130,8 +130,8 @@ pip list | grep fla_npu | |||
| 130 | 130 | ||
| 131 | ## 数据集准备及处理 | 131 | ## 数据集准备及处理 |
| 132 | 132 | ||
| 133 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 133 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 134 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 134 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 135 | 135 | ||
| 136 | ## 微调 | 136 | ## 微调 |
| 137 | 137 | ||
| @@ -44,7 +44,7 @@ commit_id=13b5e3f | |||
| 44 | 44 | ||
| 45 | 【模型开发时推荐使用配套的环境版本】 | 45 | 【模型开发时推荐使用配套的环境版本】 |
| 46 | 46 | ||
| 47 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 47 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/tree/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 48 | 48 | ||
| 49 | <a id="jump1.2"></a> | 49 | <a id="jump1.2"></a> |
| 50 | 50 | ||
| @@ -14,10 +14,9 @@ | |||
| 14 | - [配置文件](#配置文件) | 14 | - [配置文件](#配置文件) |
| 15 | - [启动训练](#启动训练) | 15 | - [启动训练](#启动训练) |
| 16 | - [正式训练配置](#正式训练配置) | 16 | - [正式训练配置](#正式训练配置) |
| 17 | -- [开发与测试](#开发与测试) | ||
| 18 | - - [跨后端 BF16 反向精度注意事项](#跨后端-bf16-反向精度注意事项) | ||
| 19 | - [环境变量声明](#环境变量声明) | 17 | - [环境变量声明](#环境变量声明) |
| 20 | - [注意事项](#注意事项) | 18 | - [注意事项](#注意事项) |
| 19 | + - [GPU\NPU BF16 反向精度注意事项](#gpunpu-bf16-反向精度注意事项) | ||
| 21 | 20 | ||
| 22 | ## 版本说明 | 21 | ## 版本说明 |
| 23 | 22 | ||
| @@ -47,7 +46,7 @@ Video VAE 和 Audio VAE 的在线训练。训练数据需要先通过 DiffSynth- | |||
| 47 | 46 | ||
| 48 | ## 环境安装 | 47 | ## 环境安装 |
| 49 | 48 | ||
| 50 | -请先按照 [MindSpeed-MM 安装指南](../../docs/zh/pytorch/install_guide.md) 安装匹配版本的 Ascend Driver、CANN、PyTorch 和 torch-npu。 | 49 | +请先按照 [MindSpeed-MM 安装指南](../../docs/zh/guides/installation/install_guide.md) 安装匹配版本的 Ascend Driver、CANN、PyTorch 和 torch-npu。 |
| 51 | 50 | ||
| 52 | ```bash | 51 | ```bash |
| 53 | git clone https://gitcode.com/Ascend/MindSpeed-MM.git | 52 | git clone https://gitcode.com/Ascend/MindSpeed-MM.git |
| @@ -47,7 +47,7 @@ transformers_version=v5.12.0 | |||
| 47 | 47 | ||
| 48 | 【模型开发时推荐使用配套的环境版本】 | 48 | 【模型开发时推荐使用配套的环境版本】 |
| 49 | 49 | ||
| 50 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 50 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 51 | 51 | ||
| 52 | 推荐使用 Python 3.10、PyTorch 2.7.1、torch_npu 2.7.1 和 Transformers 5.12.0。 | 52 | 推荐使用 Python 3.10、PyTorch 2.7.1、torch_npu 2.7.1 和 Transformers 5.12.0。 |
| 53 | 53 | ||
| @@ -133,7 +133,7 @@ training: | |||
| 133 | 133 | ||
| 134 | ## 数据集准备及处理 | 134 | ## 数据集准备及处理 |
| 135 | 135 | ||
| 136 | -- 使用真实数据集训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)。 | 136 | +- 使用真实数据集训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)。 |
| 137 | - 图片和视频分别使用 `<image>` 和 `<video>` 占位符,并与 `images`、`videos` 字段一一对应;相对路径以 `dataset_dir` 为根目录解析。 | 137 | - 图片和视频分别使用 `<image>` 和 `<video>` 占位符,并与 `images`、`videos` 字段一一对应;相对路径以 `dataset_dir` 为根目录解析。 |
| 138 | 138 | ||
| 139 | ## 微调 | 139 | ## 微调 |
| @@ -184,8 +184,8 @@ parallel: | |||
| 184 | 【性能优化配置】 | 184 | 【性能优化配置】 |
| 185 | 185 | ||
| 186 | - 重计算:通过 `features.recompute` 开启,作用范围由 `features.recompute_plan.apply_modules` 指定。 | 186 | - 重计算:通过 `features.recompute` 开启,作用范围由 `features.recompute_plan.apply_modules` 指定。 |
| 187 | -- [Chunk Loss](../../docs/zh/features/chunkloss.md):通过 `features.enable_chunk_loss` 开启,降低长序列 LM Head loss 的显存峰值。 | 187 | +- [Chunk Loss](../../docs/zh/features/optimization/chunkloss.md):通过 `features.enable_chunk_loss` 开启,降低长序列 LM Head loss 的显存峰值。 |
| 188 | -- [Activation Offload](../../docs/zh/features/async_activation_offload.md):通过 `features.enable_activation_offload` 开启,将 checkpoint 激活异步卸载到 Host。 | 188 | +- [Activation Offload](../../docs/zh/features/memory/async_activation_offload.md):通过 `features.enable_activation_offload` 开启,将 checkpoint 激活异步卸载到 Host。 |
| 189 | - Op Replay:在非重入式重计算中缓存指定算子的前向输出,减少反向阶段的重复计算。 | 189 | - Op Replay:在非重入式重计算中缓存指定算子的前向输出,减少反向阶段的重复计算。 |
| 190 | 190 | ||
| 191 | 8K 优化配置 `minimax_m3_vl_fsdp2_perf_8card.yaml` 只缓存 `npu.npu_fusion_attention.default`,并设置 `capacity_mb: 256`。不要直接在整个 `self_attn` scope 中加入 `aten.matmul.default`,因为 M3 Sparse Indexer 的 FP32 score 张量随序列长度平方增长,会引入较大的 Host/Device 传输开销。 | 191 | 8K 优化配置 `minimax_m3_vl_fsdp2_perf_8card.yaml` 只缓存 `npu.npu_fusion_attention.default`,并设置 `capacity_mb: 256`。不要直接在整个 `self_attn` scope 中加入 `aten.matmul.default`,因为 M3 Sparse Indexer 的 FP32 score 张量随序列长度平方增长,会引入较大的 Host/Device 传输开销。 |
| @@ -49,7 +49,7 @@ commit_id=fd7dac7 | |||
| 49 | 49 | ||
| 50 | 【模型开发时推荐使用配套的环境版本】 | 50 | 【模型开发时推荐使用配套的环境版本】 |
| 51 | 51 | ||
| 52 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 52 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 53 | 53 | ||
| 54 | <a id="jump1.2"></a> | 54 | <a id="jump1.2"></a> |
| 55 | 55 | ||
| @@ -54,20 +54,20 @@ Latest: 2026.8.24: 为适配 CANN9.1.0 和 torch 2.10.0,将 Triton-Ascend | |||
| 54 | 54 | ||
| 55 | 【模型开发时推荐使用配套的环境版本】 | 55 | 【模型开发时推荐使用配套的环境版本】 |
| 56 | 56 | ||
| 57 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md),完成 CANN 相关配置(驱动、固件及 Toolkit 工具包)。 | 57 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md),完成 CANN 相关配置(驱动、固件及 Toolkit 工具包)。 |
| 58 | 58 | ||
| 59 | <a id="jump1.2"></a> | 59 | <a id="jump1.2"></a> |
| 60 | 60 | ||
| 61 | ### 2. 环境搭建 | 61 | ### 2. 环境搭建 |
| 62 | 62 | ||
| 63 | -拉取MindSpeed MM代码仓,并进入代码仓根目录(若需要使用低版本的python,可参考[安装指南](../../docs/zh/pytorch/install_guide.md)的拉取方法): | 63 | +拉取MindSpeed MM代码仓,并进入代码仓根目录(若需要使用低版本的python,可参考[安装指南](../../docs/zh/guides/installation/install_guide.md)的拉取方法): |
| 64 | 64 | ||
| 65 | ```bash | 65 | ```bash |
| 66 | git clone https://gitcode.com/Ascend/MindSpeed-MM.git | 66 | git clone https://gitcode.com/Ascend/MindSpeed-MM.git |
| 67 | cd MindSpeed-MM | 67 | cd MindSpeed-MM |
| 68 | ``` | 68 | ``` |
| 69 | 69 | ||
| 70 | -若存在自由指定依赖等手动安装需求,可以参考[安装指南](../../docs/zh/pytorch/install_guide.md)中的手动安装流程(注:Qwen3.5不需要安装该流程中的Megatron-LM库) | 70 | +若存在自由指定依赖等手动安装需求,可以参考[安装指南](../../docs/zh/guides/installation/install_guide.md)中的手动安装流程(注:Qwen3.5不需要安装该流程中的Megatron-LM库) |
| 71 | 71 | ||
| 72 | 执行如下指令一键安装: | 72 | 执行如下指令一键安装: |
| 73 | 73 | ||
| @@ -239,8 +239,8 @@ mm-convert Qwen35Converter dcp_to_hf \ | |||
| 239 | 239 | ||
| 240 | ## 数据集准备及处理 | 240 | ## 数据集准备及处理 |
| 241 | 241 | ||
| 242 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 242 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 243 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 243 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 244 | 244 | ||
| 245 | ## 微调 | 245 | ## 微调 |
| 246 | 246 | ||
| @@ -298,14 +298,14 @@ mm-convert Qwen35Converter dcp_to_hf \ | |||
| 298 | - 重计算 | 298 | - 重计算 |
| 299 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭,默认开启。 | 299 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭,默认开启。 |
| 300 | - 开启后可以节省显存占用 | 300 | - 开启后可以节省显存占用 |
| 301 | -- [chunkloss](../../docs/zh/features/chunkloss.md) | 301 | +- [chunkloss](../../docs/zh/features/optimization/chunkloss.md) |
| 302 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 | 302 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 |
| 303 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 | 303 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 |
| 304 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 | 304 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 |
| 305 | -- [async activation offload](../../docs/zh/features/async_activation_offload.md) | 305 | +- [async activation offload](../../docs/zh/features/memory/async_activation_offload.md) |
| 306 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 | 306 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 |
| 307 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 | 307 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 |
| 308 | -- [chunkmbs](../../docs/zh/features/chunkmbs.md) | 308 | +- [chunkmbs](../../docs/zh/features/optimization/chunkmbs.md) |
| 309 | - 在`features.enable_chunk_mbs`配置,`true`表示开启,`false`表示关闭 | 309 | - 在`features.enable_chunk_mbs`配置,`true`表示开启,`false`表示关闭 |
| 310 | - `features.chunkmbs_plan.chunk_mbs`表示切分以后单次计算的`micro_batch_size` | 310 | - `features.chunkmbs_plan.chunk_mbs`表示切分以后单次计算的`micro_batch_size` |
| 311 | - 开启该特性时需要同时使能重计算和async activation offload特性,可以增加FSDP2单次unshard对应的计算密度,提高整网吞吐。 | 311 | - 开启该特性时需要同时使能重计算和async activation offload特性,可以增加FSDP2单次unshard对应的计算密度,提高整网吞吐。 |
| @@ -385,7 +385,7 @@ NNODES: 一共几个节点 | |||
| 385 | 385 | ||
| 386 | ### 3. 启动微调 | 386 | ### 3. 启动微调 |
| 387 | 387 | ||
| 388 | -loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/vlm_model_loss_calculate_type.md) | 388 | +loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/optimization/vlm_model_loss_calculate_type.md) |
| 389 | 可在`xxx_config.yaml`的`model`参数中配置上述文档中的`loss_type`。 | 389 | 可在`xxx_config.yaml`的`model`参数中配置上述文档中的`loss_type`。 |
| 390 | 390 | ||
| 391 | ```shell | 391 | ```shell |
| @@ -398,7 +398,7 @@ bash examples/qwen3_5/finetune_qwen3_5_xxB.sh | |||
| 398 | 398 | ||
| 399 | 将 `training.lora.enable` 设为 `true`,并按需配置其余参数,使用与全量微调相同的启动脚本进行LoRA微调。 | 399 | 将 `training.lora.enable` 设为 `true`,并按需配置其余参数,使用与全量微调相同的启动脚本进行LoRA微调。 |
| 400 | 400 | ||
| 401 | -更详细的 LoRA 配置与参数说明见 [LoRA 微调特性文档](../../docs/zh/features/lora_finetune_fsdp2.md)。 | 401 | +更详细的 LoRA 配置与参数说明见 [LoRA 微调特性文档](../../docs/zh/features/training_mode/lora_finetune_fsdp2.md)。 |
| 402 | 402 | ||
| 403 | 【并行策略调整建议】 | 403 | 【并行策略调整建议】 |
| 404 | 404 | ||
| @@ -55,20 +55,20 @@ Latest: 2026.9.16: 为适配 CANN9.1.0 和 torch 2.10.0,将 Triton-Ascend | |||
| 55 | 55 | ||
| 56 | 【模型开发时推荐使用配套的环境版本】 | 56 | 【模型开发时推荐使用配套的环境版本】 |
| 57 | 57 | ||
| 58 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md),完成 CANN 相关配置(驱动、固件及 Toolkit 工具包)。 | 58 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md),完成 CANN 相关配置(驱动、固件及 Toolkit 工具包)。 |
| 59 | 59 | ||
| 60 | <a id="jump1.2"></a> | 60 | <a id="jump1.2"></a> |
| 61 | 61 | ||
| 62 | ### 2. 环境搭建 | 62 | ### 2. 环境搭建 |
| 63 | 63 | ||
| 64 | -拉取MindSpeed MM代码仓,并进入代码仓根目录(若需要使用低版本的python,可参考[安装指南](../../docs/zh/pytorch/install_guide.md)的拉取方法): | 64 | +拉取MindSpeed MM代码仓,并进入代码仓根目录(若需要使用低版本的python,可参考[安装指南](../../docs/zh/guides/installation/install_guide.md)的拉取方法): |
| 65 | 65 | ||
| 66 | ```bash | 66 | ```bash |
| 67 | git clone https://gitcode.com/Ascend/MindSpeed-MM.git | 67 | git clone https://gitcode.com/Ascend/MindSpeed-MM.git |
| 68 | cd MindSpeed-MM | 68 | cd MindSpeed-MM |
| 69 | ``` | 69 | ``` |
| 70 | 70 | ||
| 71 | -若存在自由指定依赖等手动安装需求,可以参考[安装指南](../../docs/zh/pytorch/install_guide.md)中的手动安装流程(注:Qwen3.6不需要安装该流程中的Megatron-LM库) | 71 | +若存在自由指定依赖等手动安装需求,可以参考[安装指南](../../docs/zh/guides/installation/install_guide.md)中的手动安装流程(注:Qwen3.6不需要安装该流程中的Megatron-LM库) |
| 72 | 72 | ||
| 73 | 执行如下指令一键安装: | 73 | 执行如下指令一键安装: |
| 74 | 74 | ||
| @@ -240,8 +240,8 @@ mm-convert Qwen35Converter dcp_to_hf \ | |||
| 240 | 240 | ||
| 241 | ## 数据集准备及处理 | 241 | ## 数据集准备及处理 |
| 242 | 242 | ||
| 243 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 243 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 244 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 244 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 245 | 245 | ||
| 246 | ### Agentical Trace(OpenAI 格式)数据集 | 246 | ### Agentical Trace(OpenAI 格式)数据集 |
| 247 | 247 | ||
| @@ -416,14 +416,14 @@ dataset: | |||
| 416 | - 重计算 | 416 | - 重计算 |
| 417 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭,默认开启。 | 417 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭,默认开启。 |
| 418 | - 开启后可以节省显存占用 | 418 | - 开启后可以节省显存占用 |
| 419 | -- [chunkloss](../../docs/zh/features/chunkloss.md) | 419 | +- [chunkloss](../../docs/zh/features/optimization/chunkloss.md) |
| 420 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 | 420 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 |
| 421 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 | 421 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 |
| 422 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 | 422 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 |
| 423 | -- [async activation offload](../../docs/zh/features/async_activation_offload.md) | 423 | +- [async activation offload](../../docs/zh/features/memory/async_activation_offload.md) |
| 424 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 | 424 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 |
| 425 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 | 425 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 |
| 426 | -- [chunkmbs](../../docs/zh/features/chunkmbs.md) | 426 | +- [chunkmbs](../../docs/zh/features/optimization/chunkmbs.md) |
| 427 | - 在`features.enable_chunk_mbs`配置,`true`表示开启,`false`表示关闭 | 427 | - 在`features.enable_chunk_mbs`配置,`true`表示开启,`false`表示关闭 |
| 428 | - `features.chunkmbs_plan.chunk_mbs`表示切分以后单次计算的`micro_batch_size` | 428 | - `features.chunkmbs_plan.chunk_mbs`表示切分以后单次计算的`micro_batch_size` |
| 429 | - 开启该特性时需要同时使能重计算和async activation offload特性,可以增加FSDP2单次unshard对应的计算密度,提高整网吞吐。 | 429 | - 开启该特性时需要同时使能重计算和async activation offload特性,可以增加FSDP2单次unshard对应的计算密度,提高整网吞吐。 |
| @@ -467,7 +467,7 @@ NNODES: 一共几个节点 | |||
| 467 | 467 | ||
| 468 | ### 3. 启动微调 | 468 | ### 3. 启动微调 |
| 469 | 469 | ||
| 470 | -loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/vlm_model_loss_calculate_type.md) | 470 | +loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/optimization/vlm_model_loss_calculate_type.md) |
| 471 | 可在`xxx_config.yaml`的`model`参数中配置上述文档中的`loss_type`。 | 471 | 可在`xxx_config.yaml`的`model`参数中配置上述文档中的`loss_type`。 |
| 472 | 472 | ||
| 473 | ```shell | 473 | ```shell |
| @@ -480,7 +480,7 @@ bash examples/qwen3_6/finetune_qwen3_6_35B.sh | |||
| 480 | 480 | ||
| 481 | 将 `training.lora.enable` 设为 `true`,并按需配置其余参数,使用与全量微调相同的启动脚本进行LoRA微调。 | 481 | 将 `training.lora.enable` 设为 `true`,并按需配置其余参数,使用与全量微调相同的启动脚本进行LoRA微调。 |
| 482 | 482 | ||
| 483 | -更详细的 LoRA 配置与参数说明见 [LoRA 微调特性文档](../../docs/zh/features/lora_finetune_fsdp2.md)。 | 483 | +更详细的 LoRA 配置与参数说明见 [LoRA 微调特性文档](../../docs/zh/features/training_mode/lora_finetune_fsdp2.md)。 |
| 484 | 484 | ||
| 485 | 【并行策略调整建议】 | 485 | 【并行策略调整建议】 |
| 486 | 486 | ||
| @@ -53,7 +53,7 @@ git checkout v5.2.0 | |||
| 53 | - [CANN](https://www.hiascend.com/cann/download?versionId=767&ids=d803%2Ch0501%2Ch0601%2Ch0701)(推荐使用离线安装方式) | 53 | - [CANN](https://www.hiascend.com/cann/download?versionId=767&ids=d803%2Ch0501%2Ch0601%2Ch0701)(推荐使用离线安装方式) |
| 54 | - [TorchNPU](https://www.hiascend.com/developer/software/ai-frameworks/pytorch/download?versionId=174&ids=89dda9ba9de741349efa03687a487678%2C96%2C109%2C1%2C6%2C177%2C) | 54 | - [TorchNPU](https://www.hiascend.com/developer/software/ai-frameworks/pytorch/download?versionId=174&ids=89dda9ba9de741349efa03687a487678%2C96%2C109%2C1%2C6%2C177%2C) |
| 55 | 55 | ||
| 56 | -仍有疑问可以参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md) | 56 | +仍有疑问可以参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md) |
| 57 | 57 | ||
| 58 | <a id="jump1.2"></a> | 58 | <a id="jump1.2"></a> |
| 59 | 59 | ||
| @@ -215,8 +215,8 @@ mm-convert Qwen35Converter dcp_to_hf \ | |||
| 215 | 215 | ||
| 216 | ## 数据集准备及处理 | 216 | ## 数据集准备及处理 |
| 217 | 217 | ||
| 218 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 218 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 219 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 219 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 220 | 220 | ||
| 221 | ## 微调 | 221 | ## 微调 |
| 222 | 222 | ||
| @@ -266,14 +266,14 @@ mm-convert Qwen35Converter dcp_to_hf \ | |||
| 266 | - 重计算 | 266 | - 重计算 |
| 267 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭,默认开启。 | 267 | - 在`features.recompute`配置,`true`表示开启,`false`表示关闭,默认开启。 |
| 268 | - 开启后可以节省显存占用 | 268 | - 开启后可以节省显存占用 |
| 269 | -- [chunkloss](../../docs/zh/features/chunkloss.md) | 269 | +- [chunkloss](../../docs/zh/features/optimization/chunkloss.md) |
| 270 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 | 270 | - 在`features.enable_chunk_loss`配置,`true`表示开启,`false`表示关闭 |
| 271 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 | 271 | - `features.chunkloss_plan.chunk_size`表示计算loss的时候在seq维度切分成大小为`chunk_size`的小块进行计算。 |
| 272 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 | 272 | - 开启后可以大幅降低loss计算时的显存尖刺,节省整体显存占用 |
| 273 | -- [async activation offload](../../docs/zh/features/async_activation_offload.md) | 273 | +- [async activation offload](../../docs/zh/features/memory/async_activation_offload.md) |
| 274 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 | 274 | - 在`features.enable_activation_offload`配置,`true`表示开启,`false`表示关闭 |
| 275 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 | 275 | - 开启后可以异步将重计算入口的激活值offload至host侧,在开启了重计算的场景下可以进一步节省显存。 |
| 276 | -- [chunkmbs](../../docs/zh/features/chunkmbs.md) | 276 | +- [chunkmbs](../../docs/zh/features/optimization/chunkmbs.md) |
| 277 | - 在`features.enable_chunk_mbs`配置,`true`表示开启,`false`表示关闭 | 277 | - 在`features.enable_chunk_mbs`配置,`true`表示开启,`false`表示关闭 |
| 278 | - `features.chunkmbs_plan.chunk_mbs`表示切分以后单次计算的`micro_batch_size` | 278 | - `features.chunkmbs_plan.chunk_mbs`表示切分以后单次计算的`micro_batch_size` |
| 279 | - 开启该特性时需要同时使能重计算和async activation offload特性,可以增加FSDP2单次unshard对应的计算密度,提高整网吞吐。 | 279 | - 开启该特性时需要同时使能重计算和async activation offload特性,可以增加FSDP2单次unshard对应的计算密度,提高整网吞吐。 |
| @@ -317,7 +317,7 @@ NNODES: 一共几个节点 | |||
| 317 | 317 | ||
| 318 | ### 3. 启动微调 | 318 | ### 3. 启动微调 |
| 319 | 319 | ||
| 320 | -loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/vlm_model_loss_calculate_type.md) | 320 | +loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/optimization/vlm_model_loss_calculate_type.md) |
| 321 | 可在`xxx_config.yaml`的`model`参数中配置上述文档中的`loss_type`。 | 321 | 可在`xxx_config.yaml`的`model`参数中配置上述文档中的`loss_type`。 |
| 322 | 322 | ||
| 323 | ```shell | 323 | ```shell |
| @@ -53,7 +53,7 @@ | |||
| 53 | 53 | ||
| 54 | 【模型开发时推荐使用配套的环境版本】 | 54 | 【模型开发时推荐使用配套的环境版本】 |
| 55 | 55 | ||
| 56 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 56 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 57 | 57 | ||
| 58 | <a id="jump1.2"></a> | 58 | <a id="jump1.2"></a> |
| 59 | 59 | ||
| @@ -49,7 +49,7 @@ commit_id=7a833d1 | |||
| 49 | 49 | ||
| 50 | 【模型开发时推荐使用配套的环境版本】 | 50 | 【模型开发时推荐使用配套的环境版本】 |
| 51 | 51 | ||
| 52 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 52 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 53 | 53 | ||
| 54 | <a id="jump1.2"></a> | 54 | <a id="jump1.2"></a> |
| 55 | 55 | ||
| @@ -365,7 +365,7 @@ CP=4 | |||
| 365 | 使用activation_offload可以将重计算过程中产生的checkpoint点的激活值移动到host,反向异步从host传输到device,降低device激活显存占用,配置方式为在`model.json`中将`activation_offload`字段设置为true。 | 365 | 使用activation_offload可以将重计算过程中产生的checkpoint点的激活值移动到host,反向异步从host传输到device,降低device激活显存占用,配置方式为在`model.json`中将`activation_offload`字段设置为true。 |
| 366 | 366 | ||
| 367 | 【chunkloss 配置】 | 367 | 【chunkloss 配置】 |
| 368 | -参考[chunk loss文档](../../docs/zh/features/chunkloss.md) | 368 | +参考[chunk loss文档](../../docs/zh/features/optimization/chunkloss.md) |
| 369 | 369 | ||
| 370 | 【模型保存加载及日志信息配置】 | 370 | 【模型保存加载及日志信息配置】 |
| 371 | 371 | ||
| @@ -444,7 +444,7 @@ WORLD_SIZE=$(($NPUS_PER_NODE*$NNODES)) | |||
| 444 | ### 3. 启动微调 | 444 | ### 3. 启动微调 |
| 445 | 445 | ||
| 446 | 以Qwen3-Omni为例,启动微调训练任务。 | 446 | 以Qwen3-Omni为例,启动微调训练任务。 |
| 447 | -loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/vlm_model_loss_calculate_type.md) | 447 | +loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/optimization/vlm_model_loss_calculate_type.md) |
| 448 | 448 | ||
| 449 | ```shell | 449 | ```shell |
| 450 | cd MindSpeed-MM/ | 450 | cd MindSpeed-MM/ |
| @@ -48,7 +48,7 @@ commit_id=7a833d1 | |||
| 48 | 48 | ||
| 49 | 【模型开发时推荐使用配套的环境版本】 | 49 | 【模型开发时推荐使用配套的环境版本】 |
| 50 | 50 | ||
| 51 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 51 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 52 | 52 | ||
| 53 | <a id="jump1.2"></a> | 53 | <a id="jump1.2"></a> |
| 54 | 54 | ||
| @@ -267,7 +267,7 @@ data->dataset_param->basic_parameters->dataset | |||
| 267 | 267 | ||
| 268 | 【chunkloss 配置】 | 268 | 【chunkloss 配置】 |
| 269 | 269 | ||
| 270 | -参考[chunk loss文档](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/features/chunkloss.md) | 270 | +参考[chunk loss文档](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/features/optimization/chunkloss.md) |
| 271 | 将`xxx_config_v1.yaml`中`enable_chunk_loss`字段设置为true,chunk_size表示每个子序列的最大长度(即每个 chunk 所包含的 token 数量) | 271 | 将`xxx_config_v1.yaml`中`enable_chunk_loss`字段设置为true,chunk_size表示每个子序列的最大长度(即每个 chunk 所包含的 token 数量) |
| 272 | 272 | ||
| 273 | ```yaml | 273 | ```yaml |
| @@ -47,7 +47,7 @@ commit_id=022e286 | |||
| 47 | 47 | ||
| 48 | 【模型开发时推荐使用配套的环境版本】 | 48 | 【模型开发时推荐使用配套的环境版本】 |
| 49 | 49 | ||
| 50 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 50 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 51 | 51 | ||
| 52 | <a id="jump1.2"></a> | 52 | <a id="jump1.2"></a> |
| 53 | 53 | ||
| @@ -46,7 +46,7 @@ commit_id=c0dbe09 | |||
| 46 | 46 | ||
| 47 | 【模型开发时推荐使用配套的环境版本】 | 47 | 【模型开发时推荐使用配套的环境版本】 |
| 48 | 48 | ||
| 49 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 49 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 50 | 50 | ||
| 51 | <a id="jump1.2"></a> | 51 | <a id="jump1.2"></a> |
| 52 | 52 | ||
| @@ -104,8 +104,8 @@ mm-convert Qwen3VLConverter hf_to_dcp \ | |||
| 104 | 104 | ||
| 105 | ## 数据集准备及处理 | 105 | ## 数据集准备及处理 |
| 106 | 106 | ||
| 107 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 107 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 108 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 108 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 109 | 109 | ||
| 110 | ## 微调 | 110 | ## 微调 |
| 111 | 111 | ||
| @@ -222,11 +222,11 @@ gpt_args: | |||
| 222 | 222 | ||
| 223 | 【FSDP2 offload_to_cpu配置】 | 223 | 【FSDP2 offload_to_cpu配置】 |
| 224 | 在fsdp2_config.yaml配置offload_to_cpu为True, 可以将参数,梯度和优化器状态卸载到CPU内存,进一步降低显存。但同时训练速度相对会变慢,在显存足够的情况下不建议开启。 | 224 | 在fsdp2_config.yaml配置offload_to_cpu为True, 可以将参数,梯度和优化器状态卸载到CPU内存,进一步降低显存。但同时训练速度相对会变慢,在显存足够的情况下不建议开启。 |
| 225 | -功能描述请详见:docs/zh/features/fsdp2.md。 | 225 | +功能描述请详见:docs/zh/features/parallel/fsdp2.md。 |
| 226 | 开启该功能时,同时需要在`qwen3vl_full_sft_xxB.yaml`文件中`gpt_args`配置项里配置`distributed_backend: npu:hccl,cpu:gloo`,以开启双通信后端。 | 226 | 开启该功能时,同时需要在`qwen3vl_full_sft_xxB.yaml`文件中`gpt_args`配置项里配置`distributed_backend: npu:hccl,cpu:gloo`,以开启双通信后端。 |
| 227 | 227 | ||
| 228 | 【chunkloss 配置】 | 228 | 【chunkloss 配置】 |
| 229 | -参考[chunk loss文档](../../docs/zh/features/chunkloss.md) | 229 | +参考[chunk loss文档](../../docs/zh/features/optimization/chunkloss.md) |
| 230 | 230 | ||
| 231 | 【负载均衡损失配置】 | 231 | 【负载均衡损失配置】 |
| 232 | 支持自定义moe模型中专家负载均衡的aux_loss的系数,在`qwen3vl_full_sft_xxB.yaml`中的`router_aux_loss_coef`,默认为0.0,即不计算该损失。 | 232 | 支持自定义moe模型中专家负载均衡的aux_loss的系数,在`qwen3vl_full_sft_xxB.yaml`中的`router_aux_loss_coef`,默认为0.0,即不计算该损失。 |
| @@ -273,7 +273,7 @@ WORLD_SIZE=$(($NPUS_PER_NODE * $NNODES)) | |||
| 273 | 273 | ||
| 274 | 【LoRA微调(可选)】 | 274 | 【LoRA微调(可选)】 |
| 275 | 275 | ||
| 276 | -LoRA为框架通用能力,当前已支持30B模型的语言模块LoRA微调,参数介绍请参考[LoRA特性文档](../../docs/zh/features/lora_finetune.md)。 | 276 | +LoRA为框架通用能力,当前已支持30B模型的语言模块LoRA微调,参数介绍请参考[LoRA特性文档](../../docs/zh/features/training_mode/lora_finetune.md)。 |
| 277 | 277 | ||
| 278 | LoRA微调场景下,需要先对原始权重完成以下权重转换 | 278 | LoRA微调场景下,需要先对原始权重完成以下权重转换 |
| 279 | 279 | ||
| @@ -326,7 +326,7 @@ bash examples/qwen3vl/finetune_lora_qwen3vl_30B.sh | |||
| 326 | ### 3. 启动微调 | 326 | ### 3. 启动微调 |
| 327 | 327 | ||
| 328 | 以Qwen3VL-xxB为例,启动微调训练任务。 | 328 | 以Qwen3VL-xxB为例,启动微调训练任务。 |
| 329 | -loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/vlm_model_loss_calculate_type.md) | 329 | +loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/optimization/vlm_model_loss_calculate_type.md) |
| 330 | 通过修改`qwen3vl_full_sft_xxB.yaml`文件中的`loss_type`字段可以在不同的loss计算方式中切换。 | 330 | 通过修改`qwen3vl_full_sft_xxB.yaml`文件中的`loss_type`字段可以在不同的loss计算方式中切换。 |
| 331 | 331 | ||
| 332 | ```shell | 332 | ```shell |
| @@ -335,7 +335,7 @@ bash examples/qwen3vl/finetune_qwen3vl_xxB.sh | |||
| 335 | 335 | ||
| 336 | **优化特性:** | 336 | **优化特性:** |
| 337 | 337 | ||
| 338 | -- ChunkLoss:可以参考文档[ChunkLoss](../../docs/zh/features/chunkloss.md)开启该特性优化长序列时的显存占用。 | 338 | +- ChunkLoss:可以参考文档[ChunkLoss](../../docs/zh/features/optimization/chunkloss.md)开启该特性优化长序列时的显存占用。 |
| 339 | 339 | ||
| 340 | --- | 340 | --- |
| 341 | 341 | ||
| @@ -45,7 +45,7 @@ commit_id=c0dbe09 | |||
| 45 | 45 | ||
| 46 | 【模型开发时推荐使用配套的环境版本】 | 46 | 【模型开发时推荐使用配套的环境版本】 |
| 47 | 47 | ||
| 48 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 48 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 49 | 49 | ||
| 50 | <a id="jump1.2"></a> | 50 | <a id="jump1.2"></a> |
| 51 | 51 | ||
| @@ -129,8 +129,8 @@ mm-convert GenericDCPConverter hf_to_dcp \ | |||
| 129 | 129 | ||
| 130 | ## 数据集准备及处理 | 130 | ## 数据集准备及处理 |
| 131 | 131 | ||
| 132 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 132 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 133 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 133 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 134 | 134 | ||
| 135 | ## 微调 | 135 | ## 微调 |
| 136 | 136 | ||
| @@ -198,7 +198,7 @@ NNODES: 一共几个节点 | |||
| 198 | 198 | ||
| 199 | ### 3. 启动微调 | 199 | ### 3. 启动微调 |
| 200 | 200 | ||
| 201 | -loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,根据`FSDP2后端`选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/vlm_model_loss_calculate_type.md),在`examples/qwen3vl/qwen3vl_30B_config_v1.yaml`配置`loss_type`参数,可以设置成default(默认)、per_sample_loss、per_token_loss这3个值。 | 201 | +loss计算方式差异会对训练效果造成不同的影响,在启动训练任务之前,请查看关于loss计算的文档,根据`FSDP2后端`选择合适的loss计算方式[vlm_model_loss_calculate_type.md](../../docs/zh/features/optimization/vlm_model_loss_calculate_type.md),在`examples/qwen3vl/qwen3vl_30B_config_v1.yaml`配置`loss_type`参数,可以设置成default(默认)、per_sample_loss、per_token_loss这3个值。 |
| 202 | 202 | ||
| 203 | 在代码仓根目录(MindSpeed-MM)下执行以下命令启动微调任务: | 203 | 在代码仓根目录(MindSpeed-MM)下执行以下命令启动微调任务: |
| 204 | 204 | ||
| @@ -36,7 +36,7 @@ | |||
| 36 | 36 | ||
| 37 | 【模型开发时推荐使用配套的环境版本】 | 37 | 【模型开发时推荐使用配套的环境版本】 |
| 38 | 38 | ||
| 39 | -昇腾基础软件安装请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md) | 39 | +昇腾基础软件安装请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md) |
| 40 | 40 | ||
| 41 | 1. 在工作目录执行下列命令 | 41 | 1. 在工作目录执行下列命令 |
| 42 | 42 | ||
| @@ -42,7 +42,7 @@ url=https://huggingface.co/stepfun-ai/Step3-VL-10B | |||
| 42 | 42 | ||
| 43 | 【模型开发时推荐使用配套的环境版本】 | 43 | 【模型开发时推荐使用配套的环境版本】 |
| 44 | 44 | ||
| 45 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md),完成昇腾软件安装。 | 45 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md),完成昇腾软件安装。 |
| 46 | 46 | ||
| 47 | ### 2. 环境搭建 | 47 | ### 2. 环境搭建 |
| 48 | 48 | ||
| @@ -95,8 +95,8 @@ model-*.safetensors | |||
| 95 | 95 | ||
| 96 | ## 数据集准备及处理 | 96 | ## 数据集准备及处理 |
| 97 | 97 | ||
| 98 | -- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 | 98 | +- 使用**真实数据集**训练:参考[针对VL模型的数据构造 · 使用真实数据集](../../docs/zh/features/data/building_data_for_VLModel.md#real-data)(下载COCO2017 → 下载LLaVA-Instruct-150K标注 → 运行转换脚本生成`mllm_format_llava_instruct_data.json`)。 |
| 99 | -- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/building_data_for_VLModel.md#mock-data)。 | 99 | +- 使用**虚构数据**做功能/性能测试:参考[针对VL模型的数据构造 · 使用虚构数据](../../docs/zh/features/data/building_data_for_VLModel.md#mock-data)。 |
| 100 | 100 | ||
| 101 | ## 微调 | 101 | ## 微调 |
| 102 | 102 | ||
| @@ -68,7 +68,7 @@ commit_id=8332ece | |||
| 68 | 68 | ||
| 69 | 【模型开发时推荐使用配套的环境版本】 | 69 | 【模型开发时推荐使用配套的环境版本】 |
| 70 | 70 | ||
| 71 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md) | 71 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md) |
| 72 | 72 | ||
| 73 | ### 仓库拉取 | 73 | ### 仓库拉取 |
| 74 | 74 | ||
| @@ -83,7 +83,7 @@ cd ../MindSpeed-MM | |||
| 83 | 83 | ||
| 84 | ### 环境搭建 | 84 | ### 环境搭建 |
| 85 | 85 | ||
| 86 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md)创建Python环境并安装 torch、TorchNPU。 | 86 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md)创建Python环境并安装 torch、TorchNPU。 |
| 87 | 87 | ||
| 88 | ```bash | 88 | ```bash |
| 89 | conda activate test | 89 | conda activate test |
| @@ -77,7 +77,7 @@ commit_id=f8d4a1e | |||
| 77 | 77 | ||
| 78 | 【模型开发时推荐使用配套的环境版本】 | 78 | 【模型开发时推荐使用配套的环境版本】 |
| 79 | 79 | ||
| 80 | -请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/pytorch/install_guide.md) | 80 | +请参考[安装指南](https://gitcode.com/Ascend/MindSpeed-MM/blob/master/docs/zh/guides/installation/install_guide.md) |
| 81 | 81 | ||
| 82 | ### 仓库拉取 | 82 | ### 仓库拉取 |
| 83 | 83 | ||
| @@ -92,7 +92,7 @@ cd ../MindSpeed-MM | |||
| 92 | 92 | ||
| 93 | ### 环境搭建 | 93 | ### 环境搭建 |
| 94 | 94 | ||
| 95 | -请参考[安装指南](../../docs/zh/pytorch/install_guide.md)创建Python环境并安装 torch、TorchNPU。 | 95 | +请参考[安装指南](../../docs/zh/guides/installation/install_guide.md)创建Python环境并安装 torch、TorchNPU。 |
| 96 | 96 | ||
| 97 | ```bash | 97 | ```bash |
| 98 | conda activate test | 98 | conda activate test |
| @@ -317,11 +317,11 @@ bash examples/wan2.1/feature_extract/feature_extraction.sh | |||
| 317 | 317 | ||
| 318 | - 默认使能方式为Ulysses序列并行。 | 318 | - 默认使能方式为Ulysses序列并行。 |
| 319 | 319 | ||
| 320 | - - DiT-RingAttention:DiT RingAttention序列并行请[参考文档](../../docs/zh/features/dit_ring_attention.md) | 320 | + - DiT-RingAttention:DiT RingAttention序列并行请[参考文档](../../docs/zh/features/parallel/dit_ring_attention.md) |
| 321 | 321 | ||
| 322 | - - DiT-USP: DiT USP混合序列并行(Ulysses + RingAttention)请[参考文档](../../docs/zh/features/dit_usp.md) | 322 | + - DiT-USP: DiT USP混合序列并行(Ulysses + RingAttention)请[参考文档](../../docs/zh/features/parallel/dit_usp.md) |
| 323 | 323 | ||
| 324 | - - FPDT(Fully Pipelined Distributed Transformer): Ulysses Offload 并行请[参考文档](../../docs/zh/features/fpdt.md) | 324 | + - FPDT(Fully Pipelined Distributed Transformer): Ulysses Offload 并行请[参考文档](../../docs/zh/features/optimization/fpdt.md) |
| 325 | 325 | ||
| 326 | - 注:wan2.1使用full attention,对应general,即`--attention-mask-type general`。 | 326 | - 注:wan2.1使用full attention,对应general,即`--attention-mask-type general`。 |
| 327 | 327 | ||
| @@ -461,7 +461,7 @@ mm-convert WanConverter merge_lora_to_base \ | |||
| 461 | 461 | ||
| 462 | ### 环境准备 | 462 | ### 环境准备 |
| 463 | 463 | ||
| 464 | -1. 参考docs/zh/features/vbench-evaluate.md中的环境安装指导完成vbench及依赖三方件的安装 | 464 | +1. 参考docs/zh/tools/vbench-evaluate.md中的环境安装指导完成vbench及依赖三方件的安装 |
| 465 | 2. 将VBench的 [t2v json](https://github.com/Vchitect/VBench/blob/master/vbench/VBench_full_info.json) 下载到MM代码根路径"./vbench/VBench_full_info.json" | 465 | 2. 将VBench的 [t2v json](https://github.com/Vchitect/VBench/blob/master/vbench/VBench_full_info.json) 下载到MM代码根路径"./vbench/VBench_full_info.json" |
| 466 | 466 | ||
| 467 | ### 生成视频样本 | 467 | ### 生成视频样本 |
这块是删除了吗?