已开启
[Feature]: 基于FSDP2后端训练MM大模型 #370
yeqm创建于  5月18日
yeqm成员
5月18日 创建

提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。

💻 需求背景、当前现状、期望实现的功能内容、具体的设计方案、以及测试方案

基于MindSpeed MM开放仓库的FSDP2源码,补齐模型的端侧功能。

本期任务的具体信息如下:
(1)模型名称:glm4.5-v
(2) MindSpeed MM开放仓库的模型源码链接:
https://gitcode.com/Ascend/MindSpeed-MM/blob/master/examples/glm4.5v/finetune_glm4_5v_106B.sh
(3) 开发平台:Atlas 800T A2或者A3

一、任务交付件
本期任务为基于MindSpeed MM开放仓库代码进行功能扩展,请合入开发代码。将megatron-FSDP2后端的模型迁移到仓上纯FSDP2分支。主要开发点如下:
(1) 模型训练脚本和yaml参数配置
(2) 模型优化实现
特性:
需要适配仓上当前现有特性,如CP,EP,chunkloss,recompute,async activation offload等,在开启特性后能体现出显存优化或性能优化,并确保精度对齐

二、验收标准:
1)精度/性能要求
精度:
对比megatron-FSDP2后端训练2000步平均误差小于2%
性能:
不低于megatron-FSDP2后端性能
2)实践文档:
开发模型实践1篇,性能优化实践1篇
3)任务完成标准
本次任务完成标准为:
精度/性能(根据实际要求)达标,PR完成合入,实践文档提交到仓库issue。

PR 合入
本地完成测试验证后,向MindSpeed-MM的main分支发起PR。

对接人
待补充

欢迎加入社区,感谢您对社区的贡献 🎉!

替代方案

补充说明

欢迎加入社区,感谢您对社区的贡献 🎉!

提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。

💻 需求背景、当前现状、期望实现的功能内容、具体的设计方案、以及测试方案

基于MindSpeed MM开放仓库的FSDP2源码,补齐模型的端侧功能。

本期任务的具体信息如下:
(1)模型名称:glm4.5-v
(2) MindSpeed MM开放仓库的模型源码链接:
https://gitcode.com/Ascend/MindSpeed-MM/blob/master/examples/glm4.5v/finetune_glm4_5v_106B.sh
(3) 开发平台:Atlas 800T A2或者A3

一、任务交付件
本期任务为基于MindSpeed MM开放仓库代码进行功能扩展,请合入开发代码。将megatron-FSDP2后端的模型迁移到仓上纯FSDP2分支。主要开发点如下:
(1) 模型训练脚本和yaml参数配置
(2) 模型优化实现

二、验收标准:
1)精度/性能要求
精度:
对比megatron-FSDP2后端训练2000步平均误差小于2%
性能:
不低于megatron-FSDP2后端性能
2)实践文档:
开发模型实践1篇,性能优化实践1篇
3)任务完成标准
本次任务完成标准为:
精度/性能(根据实际要求)达标,PR完成合入,实践文档提交到仓库issue。

PR 合入
本地完成测试验证后,向MindSpeed-MM的main分支发起PR。

对接人
待补充

欢迎加入社区,感谢您对社区的贡献 🎉!

替代方案

补充说明

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
Yyeqm成员
5月18日 添加了label:feature
yeqm成员
5月18日 评论:

👋 您好,欢迎向 MindSpeed MM 提交 Issue!

我们已收到您的反馈,感谢你对开源社区的支持。🎉

📅 处理时效: 维护团队将在 24 小时内 查看并回复您的问题(工作日)。

🚨 紧急联系: 如果您的问题非常紧急,可通过以下方式联系我们:

💬 微信: WeChat

请确保 Issue 描述清晰,包含复现步骤和日志,这将帮助我们更快定位问题。谢谢!

likedislike
Ronald1995
6月11日 评论:

/label add good-first-issue

likedislike
ascend-robotascend-robot成员
6月11日 添加了label:good-first-issue
SuperKoalaKing
6月25日 评论:

认领这个任务

likedislike
Ronald1995
6月26日 评论:

认领这个任务

@SuperKoalaKing

欢迎认领任务,请参考https://gitcode.com/Ascend/MindSpeed-MM/issues/356 社区任务池明确该任务的:

  • 完成的截止日期
  • 开发进展反馈
  • 微信答疑群
  • 任务交付注意事项

等信息。如果您同时认领了多项任务,但无法都能进行投入,可以在部分任务中回复退出.

麻烦您加入到对应微信群,群备注名修改为"社区任务+您的gitcode账号", 后续有相关消息和问题都可以在微信群咨询答疑。 等您加入到微信群后,我这边会在社区任务池里面登记任务责任人。

likedislike
SuperKoalaKing
6月28日 评论:

已加群
设计文档
ac9365b54efb45e8b2dbaafe571885fd.md

likedislike
gcw_MTeIQk9o
6月29日 评论:

认领这个任务

likedislike
SuperKoalaKing
6月29日 评论:

GLM-4.5V 纯 FSDP2 迁移(issue #370)任务进度与阶段成果
日期:2026-06-29

一、已完成

  1. 模型移植
    - 新增 mindspeed_mm/fsdp/models/glm4_5v/,以 glm4v_moe 注册到纯 FSDP2
    框架,薄封装继承 HF 原生 Glm4vMoeForConditionalGeneration。
    - NPU 融合算子(multimodal/vision RoPE、grouped MoE、RMSNorm)从 megatron
    侧移植;剥离 megatron.get_args(),改为从 transformer config 读取开关。
    - MoE 改为堆叠专家权重 + npu_group_gemm 融合前向;非 NPU
    自动回退逐专家循环(数值等价)。
  2. 从 Megatron 解耦(设计层面,7 个维度全部落点)
    - 启动入口、配置体系、模型注册、模型内部全局态、并行范式、融合算子、checkpoint ——
    逐一从 Megatron 切换到纯 FSDP2 等价物。
  3. 配置与脚本
    - 满规模 128 卡:glm4_5v_full_sft_106B.yaml + finetune_glm4_5v_106B_fsdp.sh。
    - 权重转换封装 convert_glm4_5v_ckpt.sh(复用已有ExpertMergeDcpConverter,转堆叠专家 + DCP)。
  4. CPU 可验证的正确性核对
    - verify_expert_layout.py:在 CPU 上验证堆叠专家布局与 HF逐专家前向数值等价(已通过)。
  5. 上云 de-risk 套件(HiDevLab 4 卡,单机管路验证)
    - 极小配置 glm4_5v_tiny_4card.yaml(EP=2×FSDP=2)+ 单机 4 卡启动器。
    - make_tiny_glm4_5v.py、preflight_check.py、自带纯文本数据集。
    - 编排脚本 hidevlab_00~03+ RUNBOOK_hidevlab.md。
  6. 文档
    - 设计文档。
    - README_fsdp2.md(开发实践)、PERF_PRACTICE_glm4_5v_fsdp2.md(性能优化实践,待实测数据)。
    二、本地自检结果
  • Python py_compile、bash -n、JSON 合法性 —— 全部通过。
  • 受限:本机无 NPU、无 transformers≥4.57 环境,融合算子/端到端的运行期行为未实测。
likedislike
ascend-robotascend-robot成员
7月3日 关联了看板:MindStudio ISSUE管理
Robin
Robin
7月4日 评论:

认领这个任务

likedislike
SuperKoalaKing
7月6日 评论:

GLM-4.5V 纯 FSDP2 后端迁移 进展汇报(issue #370)
日期:2026-07-06

一、总体进展
GLM-4.5V(106B MoE-VLM)从 megatron-FSDP2 迁移到纯 FSDP2 后端的代码与配置已完成,并在单机 4
卡(910B3)上完成端到端功能验证与专家并行验证。精度/性能对基线的正式验收因需真集群 + 真权重,尚待算力,工具与配置已就绪。

二、已完成

  1. 模型迁移
    - 在纯 FSDP2 框架注册 glm4v_moe(trainer.py 入口,去除对 Megatron 的运行期依赖);薄封装继承 transformers 原生
    Glm4vMoeForConditionalGeneration,NPU 融合 RoPE/RMSNorm/vision。
    - MoE 专家改为 3D 堆叠权重(对齐 Qwen3VLMoeTextExperts),开专家并行时由框架 fused_ep 沿专家维 Shard(0) 切分并融合 grouped-GEMM;非 EP
    走逐专家循环。
    - 转换器 checkpoint/vlm_model/converters/moe_expert.py 新增 GLM4V 分支,保留 3D 专家布局以满足 EP 契约(对其他模型无影响)。
  2. 单机 4 卡验证(tiny 缩小随机模型,验证管线/EP 正确性,非精度基准)
    - 端到端跑通:模型注册 → DCP 加载 → FSDP2(4) → 前向/反向/优化 → loss 收敛。
    - 专家并行 EP=2 跑通(框架融合 grouped-GEMM,3D 权重)。
    - 融合 EP 路径与逐专家循环路径逐步 loss 一致,验证融合与非融合数值等价。
    - CPU 侧布局契约数值验证通过(max_err ≈ 2.9e-6)。
  3. 交付配套
    - 训练脚本 + yaml 配置、权重转换脚本、CPU 契约验证脚本。
    - 精度/性能对拍工具(自动计算逐步 loss 平均相对误差、稳定段性能对比,判 <2% / ≥基线)。
    - 精度对拍的确定性对齐。

三、进行中

  • 在单机 4 卡上做容量与稳定性摸底(逐级放大随机模型层数),评估 4 卡承载上限与大尺寸下管线稳定性。

四、待完成(需真集群 + GLM-4.5V 真权重)

  • 精度验收:与 megatron-FSDP2 基线同权重/数据/超参对比,2000 步平均误差 < 2%。
  • 性能验收:同规模每迭代耗时 / TPS 不低于基线。
  • 满规模多机端到端与 DCP 加载。
  • PR 合入 main(含 CLA)。

五、风险与待对齐

  • 开源仓算力预算不足以支撑 128 卡 × 2000 步完整对拍,拟采用小规模趋势对拍 + 外推;MoE 外推可靠性偏弱。
  • 建议就“误差”的确切口径与可接受的证据规模,与维护者提前对齐,以免影响最终合入。

六、下一步

  1. 与维护者对齐精度验收口径与算力方案。
  2. 跑基线与新后端两份日志,用对拍工具产出精度/性能结论并回填性能文档。
  3. 提交 PR。
likedislike
young256young256成员
7月8日 关联了里程碑:MindSpeed 26.2.0
SuperKoalaKing
7月13日 评论:

【GLM-4.5V 纯 FSDP2 迁移 进展汇报(2026-07-13)】

一、先更正前两次汇报中的两处不准确表述

  1. 此前提到的"DCP 加载已验证"表述过度:6/29 的端到端 4 卡运行实际是随机初始化起训(管线验证,有意为之),当时 checkpoint
    加载链路并未真正跑通。本周排查发现两处根因,修复后已首次实证加载成功。
  2. 此前的"融合 MoE A/B 对比"无效:所用开关 use_npu_fused_moe 在纯 FSDP 侧模型内没有任何消费者(融合由框架 EP
    提供),两趟实际跑的是同一路径。有效的对比口径应为 EP=2(框架融合)vs EP=1(逐专家循环),后续复采按此口径执行。

二、本周完成(已实机验证)

  1. 修复权重加载链路两处根因:
    - 训练 yaml 缺 training.load/load_format 等字段(schema 改写时误删),meta-init 下会静默随机权重起训;已补齐,并设 load_strict:
    true(键名不匹配立即报错,杜绝静默失败)。
    - 转换脚本 dcp_prefix 默认值产出 model.model.model.* 三层键,与加载侧期望不匹配;已显式置空前缀。
  2. 重转 tiny 模型 DCP 并验证:键名两层前缀正确、MoE 专家权重为 3D 堆叠 (E,K,N)、tracker 文件正常。
  3. 单卡实证 DCP 加载:load_strict: true 下日志确认 Loaded checkpoint from .../release,loss 从 12.6 正常下降。加载链路首次端到端跑通。
  4. 分支已 rebase 到最新 master(6eee2d4e),迁移代码与 master 变更零冲突;所需的 load_format/load_strict/no_load_optim/no_load_rng
    字段均为上游 master 已有能力,未改动框架代码。
  5. 新增 CPU 预检脚本(preflight_check.py,fsdp_plan/ep_plan 路径 0 卡时校验)与跨后端 token 流对拍工具(token_dump.py,已在纯 FSDP
    侧验证可用)。
  6. 明确跨后端 loss 对拍口径:两后端 default 损失归一化实现同构;但 megatron 基线配置默认 per_token_loss,与 default
    口径不可事后换算,对拍时基线需运行期覆盖为 default。

三、进行中

  1. 4 卡 Run A(meta+DCP 加载)vs Run B(from_pretrained)同 seed 逐步 loss 对照,验证加载数值正确性。
  2. megatron 基线 tiny 规模 bring-up,作为跨后端 loss/性能对拍的基线。

四、下步计划

  1. token 流跨后端对拍(input_ids/labels/loss_mask 逐位一致性,loss 对拍的前置条件)。
  2. EP=2 vs EP=1 数值对照在 master 基座复采。
  3. 跨后端小规模 loss 对拍(阈值 <2%)+ 性能对比(ms/iter)。
  4. 满规模(106B)验收依赖算力落实,目前开发验证均在 4×910B3 上进行。
likedislike
SuperKoalaKing
7月20日 评论:

【GLM-4.5V 纯 FSDP2 迁移 进展汇报(2026-07-20)】

一、总体状态

迁移主体开发与小规模验证已完成,验收两项指标(精度
<2%、性能不低于基线)在小规模真实数据对拍上均达标。两篇实践文档已撰写完成。当前正在补充 2000
步规模的对拍以逐字对齐验收口径,满规模(106B 多机)复验待算力落实。

二、验收标准对照

  1. 精度:对比 megatron-FSDP2 训练 2000 步平均误差 < 2%
    已完成:300 步 × 512 条真实图文样本(LLaVA-Instruct + COCO),逐步 loss 平均相对误差 0.152%(最大 0.615%),达标。
    进行中:2048 条样本 × 2000 步的同口径对拍,用于逐字覆盖“2000 步”要求。
  2. 性能:不低于 megatron-FSDP2
    已完成:同上对拍条件下 322.9 ms/iter,相对基线 336.0 ms/iter 为 1.041x,达标(不低于基线)。
  3. 实践文档:开发模型实践 1 篇 + 性能优化实践 1 篇
    已完成,落于仓库 docs/zh/features/:
    - fsdp2_glm4_5v_migration_practice.md(开发模型实践)
    - fsdp2_glm4_5v_performance_practice.md(性能优化实践)
  4. PR 合入
    PR 内容已整理完毕,卫生清单已确认(进/不进 PR 文件已分类),待 2000 步数据补齐后发起。

三、本阶段完成的验证

  1. 权重加载数值正确性:确定性模式下 DCP 加载与 HF safetensors 加载两条独立链路,30 步 loss 逐位一致。
  2. 融合/非融合路径等价:EP=2(框架融合 grouped-GEMM)vs EP=1(逐专家循环)同 seed 对照,首步相对差 4e-5,前段逐位贴合。
  3. megatron 基线 tiny 首次 bring-up,与纯 FSDP2 首步 loss 相对差约 1e-4,交叉印证数据流/权重/口径对齐。
  4. 双后端 token 流(input_ids/labels/loss_mask)逐位一致,确保 loss 对拍前提成立。
  5. 沉淀跨后端对拍工具链(token 流对拍、loss/性能对拍、真实数据子集构造),随迁移代码提供。

四、需要说明的口径

  1. 上述数据基于 tiny 同构模型(与 106B 同结构、缩至 2.57B、真实权重转换)单卡对拍;满规模 106B 多机复验待算力。
  2. 对拍前提已严格对齐:token 流逐位一致、loss 归一化口径统一为 default、冻结口径一致、同 seed/数据/超参。
  3. 基线按上游脚本默认精度(fp32)运行,纯 FSDP2 侧为 bf16 混精,该差异对本实现性能数字有利;满规模对拍将把基线同置 bf16 做公平比较。

五、下一步

  1. 完成 2000 步对拍,更新精度/性能数据后发起 PR。
likedislike
SSuperKoalaKing
7月23日 关联了pull request:feat: Support GLM-4.5V on the pure-FSDP2 backend (issue #370)
SuperKoalaKing
7月27日 评论:

已提交PR完成开发

请审查PR @Ronald1995

likedislike
8月2日 评论:

我要认领这个任务

likedislike
SuperKoalaKing
8月3日 评论:

跟进PR中

likedislike
SuperKoalaKing
8月11日 评论:

持续跟进PR

likedislike
且奏长歌
且奏长歌成员
8月19日 评论:

@SuperKoalaKing 您好!

MindSpeed-MM 邀请您参加 2026-08-20 16:00 召开的WeLink会议

会议主题:MindSpeed MM 社区例会

会议内容:
1.社区关键issue解答
2.代码合入评审

会议链接:https://meeting.huaweicloud.com:36443/#/j/980887584

会议纪要&签到链接:https://etherpad.ascend.osinfra.cn/p/sig-MindSpeed-MM

likedislike
Yyeqm成员
8月21日 修改了issue 的描述
SuperKoalaKing
8月24日 评论:

等待合入评审中

likedislike
且奏长歌且奏长歌成员
23 天前 关联了里程碑:MindSpeed 26.3.0