已合并
feat: Adapt Qwen3.8 on MindSpeed MM #2979
且奏长歌创建于 10 天前
feat: Adapt Qwen3.8 on MindSpeed MM #2979
已合并
且奏长歌创建于 10 天前
且奏长歌
且奏长歌成员
10 天前

What this PR does / why we need it?

feat: Adapt Qwen3.8 on MindSpeed MM.https://gitcode.com/Ascend/MindSpeed-MM/issues/565

Does this PR introduce any user-facing change?

新增qwen3.8系列模型SFT微调脚本和README.md

How was this patch tested?

长跑loss下降,与GPU精度对齐,开箱MFU达到要求

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 且奏长歌 的贡献)
且奏长歌且奏长歌成员
10 天前 创建了 pull request,commit 440c88be
且奏长歌且奏长歌成员
10 天前 关联了issue:[Roadmap] MindSpeed MM Roadmap 2026 Q3
atomgit-bot
atomgit-bot
10 天前 评论:

变更摘要

本 PR 主要为在 MindSpeed MM 上适配 Qwen3.8-2.4T-A98B 模型,核心改动集中在 Qwen3_5MoeForCausalLM 上:新增 qwen3_8_moe 模型注册、加入 MultiTokenPredictionBlock(MTP)支持,并通过新增的 overwrite_transformer_config 方法统一覆写 GDN、causal conv1d、flash attention 重计算、MTP、chunk loss、EP balance 等配置;同时在 forward 中补充了 chunk loss 计算分支和 CP 组上的 loss 聚合。此外新增了 qwen3_8 的训练启动脚本与对应配置 YAML,配置了 FSDP/EP 并行、数据加载、模型参数及优化特性等。

主要改动

  • 新增微调启动脚本 finetune_qwen3_8_2_4T.sh:设置 NPU 相关环境变量、torchrun 分布式参数并调用 mindspeed_mm/fsdp/train/trainer.py 启动训练,同时在日志中统计每步耗时与吞吐。
  • 新增训练配置 qwen3_8_2_4T_config.yaml:定义 FSDP/EP 并行策略、数据预处理与加载、qwen3_8_moe 模型参数、重计算/chunk loss/activation offload/chunk mbs/EP balance 等特性配置。
  • 注册 qwen3_8_moe 模型并支持 MTP:在 Qwen3_5MoeForCausalLM 上添加 @model_register.register("qwen3_8_moe"),并根据 config.mtp_num_layers 实例化 MultiTokenPredictionBlock
  • 新增 overwrite_transformer_config 配置覆写方法:将 gdn_implementationcausal_conv1d_implementationskip_flash_attn_recomputeskip_gdn_recomputeuse_grouped_expert_matmulrouter_aux_loss_coefmtp_num_layersenable_chunk_lossenable_ep_balance 等写入 transformer 配置,并对非法组合进行校验。
  • 调整 forward 的 loss 计算逻辑:在开启 enable_chunk_loss/enable_dynamic_chunk_loss 时将 logits 置空并直接调用 self.lm_head 计算 loss,同时在启用 CP 时对 loss 执行 gather_forward_split_backward 聚合后求和。
likedislike
atomgit-bot
atomgit-bot
10 天前 评论:

代码审查

已完成对全部 3 个变更文件的逐项审查。结论汇总如下。

审查结论

发现数(按优先级)

  • P0:0
  • P1:0
  • P2:2
  • P3:4
  • 合计:6

整体风险判断:中等偏低。核心 Python 变更整体是参照既有 Qwen3_5MoeForConditionalGeneration 的移植,结构一致、无 P0/P1 级别的确定性崩溃;最实质的问题是文本模型创建了 MTP 模块却从不计算 MTP loss(P2,功能静默失效),以及示例 shell 中未加引号的 rm -rf 破坏性操作(P2)。其余为潜在触发(CP 下 aux loss 缩放不一致)或示例脚本/配置的健壮性与一致性小问题(P3)。

逐文件确认

  • mindspeed_mm/fsdp/models/qwen3_5_moe/modeling_qwen3_5_moe.py:已审查。发现 2 项(MTP 模块未接入 forward;主 loss 做 CP 聚合而 aux loss 未聚合)。
  • examples/qwen3_8/finetune_qwen3_8_2_4T.sh:已审查。发现 3 项(rm -rf $TRITON_CACHE_DIR/* 未加引号且路径硬编码;缺少 set -euo pipefail 导致训练失败被 tee 掩盖;统计段 awk 空值/除零)。
  • examples/qwen3_8/qwen3_8_2_4T_config.yaml:已审查。发现 1 项(文本模型却沿用 model_name: qwen3vl 及多模态数据配置,低置信度,疑似模板复制残留)。
类型 数量
🔴 阻塞 0
🟡 建议 1

💬 仅评论

likedislike
ascend-robotascend-robot成员
10 天前 添加了label:ascend-cla/yes
此处折叠了129条消息 查看更多
yaoyaoxu
yaoyaoxu成员
3 天前 评论:

/approve

likedislike
ascend-robotascend-robot成员
3 天前 添加了label:approved
ascend-robotascend-robot成员
3 天前 合入了pull request
ascend-robot
ascend-robot成员
3 天前 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
ascend-robot
ascend-robot成员
3 天前 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike