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

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

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

基于MindSpeed MM开放仓库的FSDP2源码,补齐模型的端侧功能。
本期任务的具体信息如下:
(1)模型名称:magistral
(2) MindSpeed MM开放仓库的模型源码链接:
https://gitcode.com/Ascend/MindSpeed-MM/blob/master/examples/magistral-2509/finetune_magistral_2509.sh
(3) 开发平台:Atlas 800T A2或者A3

一、任务交付件
本期任务为基于MindSpeed MM开放仓库代码进行功能扩展,请合入开发代码。将megatron-FSDP2后端的模型迁移到仓上纯FSDP2分支。主要开发点如下:
(1) 模型训练脚本和yaml参数配置
(2) 模型优化实现
特性:
需要适配仓上当前现有特性,如CP,EP,RingAttention,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)模型名称:magistral
(2) MindSpeed MM开放仓库的模型源码链接:
https://gitcode.com/Ascend/MindSpeed-MM/blob/master/examples/magistral-2509/finetune_magistral_2509.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
hazhang94
6月25日 评论:

认领这个任务

likedislike
Ronald1995
6月26日 评论:

认领这个任务

@hazhang94

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

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

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

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

likedislike
gcw_MTeIQk9o
6月29日 评论:

认领这个任务

likedislike
ascend-robotascend-robot成员
7月3日 关联了看板:MindStudio ISSUE管理
Robin
Robin
7月4日 评论:

认领这个任务

likedislike
young256young256成员
7月8日 关联了里程碑:MindSpeed 26.2.0
且奏长歌
且奏长歌成员
8月3日 评论:

@gcw_MTeIQk9o
感谢您此前对该任务的关注与支持!
由于上一位认领者暂未继续推进该任务,目前该任务已重新开放。根据此前的候选顺序,我们希望优先邀请您参与该任务。
如您目前仍有意愿认领,请在3个工作日内回复确认,并简要说明预计开始时间或初步推进计划。确认后,我们将为您保留任务,并提供必要的背景资料和支持。
如您近期时间安排不便,也请直接告知,我们将继续顺延联系其他候选贡献者,不会影响您后续参与其他社区任务。
再次感谢您对昇腾开源社区的关注,期待与您合作!
请您在完成任务后填表登记:MM社区任务管理 https://www.kdocs.cn/l/cdATVWqoh385

likedislike
chenchen
chenchen
8月11日 评论:

认领这个任务

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

@xchencehn
感谢您此前对该任务的关注与支持!
由于上一位认领者暂未继续推进该任务,目前该任务已重新开放。由于时间关系,任务认领先到先得,由于Q3任务已经开放,希望您在认领任务后能在8月底前完成。
如您目前仍有意愿认领,请在3个工作日内回复确认,并简要说明预计开始时间或初步推进计划。确认后,我们将为您保留任务,并提供必要的背景资料和支持。
如您近期时间安排不便,也请直接告知,不会影响您后续参与其他社区任务。
再次感谢您对昇腾开源社区的关注,期待与您合作!
请您在完成任务后填表登记:MM社区任务管理 https://www.kdocs.cn/l/cdATVWqoh385

likedislike
chenchen
chenchen
8月19日 评论:

你好,确认认领该任务,8/11 已认领并已在推进环境准备。
计划:基于仓上 fsdp2_dev 分支(examples/fsdp2/ 目录规范)新增 magistral-2509 的训练脚本、yaml 配置与优化实现,参考已有 FSDP2 模型迁移方式。目标 8 月底前完成精度/性能验收并提交 PR。

likedislike
Yyeqm成员
8月21日 修改了issue 的描述
且奏长歌且奏长歌成员
18 天前 修改了issue 的描述
chenchenchenchen
15 天前 关联了pull request:feat(torch): add Magistral-Small-2509 FSDP2 training
chenchen
chenchen
15 天前 评论:

@ye_qm 更新任务 #368:Magistral-Small-2509 纯 FSDP2 的代码和两篇实践文档已提交。

  • 代码见 PR #3133,目标分支为 master,提交为 331c9270bbafbb2db8c560ff2a68b6d7fd2e9de6。
  • 实践文档 #703 包含模型开发实践和性能优化实践各一篇。

已补充模型及数据适配、训练配置、启动脚本和回归测试,并修复多图注意力相互影响及视觉编码器错误执行上下文并行通信的问题。

已有 65 项 CPU 回归通过(使用模拟依赖);真实 NPU 上通过 39 项视觉测试,小模型四种配置各完成 30 步。实际被测版本、配置和测试范围已在 PR 及实践文档中说明,原始日志附件后续补充。平台已确认 CLA 通过,代码审查尚未完成。

本次先提交代码和文档供审查,完整 24B 模型真实数据训练、2000 步精度对照、性能及各适用特性测试最后补,当前不申请最终验收。后续结果将更新到同一个 PR 和实践文档 issue。

请确认先审查代码、后补完整数据的安排及任务继续保留,并确认平均误差的计算方法和稠密模型的 EP 不适用范围。PR 已说明与 #2989 的共享文件,需要协调合入顺序。后续按任务池要求每周一更新进展。

likedislike
chenchen
chenchen
15 天前 评论:

@ye_qm 任务 #368 的代码、两篇实践文档和完整验证数据已经提交,请复核机器验证结果,并确认专家并行的适用范围。

提交材料

  • 代码:PR #3133,当前提交为 74760a54ed7d95a72befd8f1e9026a8de2680424。
  • 实践文档:Issue #703,包含模型开发实践和性能优化实践。
  • 公开证据包包含全部逐步数值、配置、汇总、图表和单元测试输出,SHA-256 为 2ca862ecf16425bb368aa5a19b90d63854e58b94751454d545978742cfbccdf6。

精度与性能

Megatron-FSDP2 和纯 FSDP2 在同一台 8×910B3 主机上串行执行,各完成 2000 步。两侧保持权重、数据顺序、全局批大小、冻结参数、优化器和学习率调度一致。

指标 Megatron-FSDP2 纯 FSDP2 结果
平均损失 1.1729174753 1.1720026138 sum(abs(loss_pure-loss_base)) / sum(abs(loss_base)) 为 0.708614%,小于 2%。
第 101 至 2000 步平均步时 2397.8312 ms 2374.4979 ms 纯 FSDP2 降低 0.9731%。
样本吞吐量 3.33635 samples/s 3.36913 samples/s 纯 FSDP2 提高约 0.98%。

该组实验使用开发分支提交 cdefc58b。PR 后续增加打包数据 position_ids 补齐和不完整 Pixtral 图像标记序列过滤;这些修复不在上述非打包数据路径的 2000 步实验中触发。

功能验证

功能 测试版本 损失差 最大已分配显存变化 最大保留显存变化 平均步时变化
Ulysses 上下文并行,组大小 2 1134a0fd 0.272835% -3377.44 MB -3318 MB +25.45%
Ring Attention,组大小 2 1134a0fd 0.160284% -2030.08 MB -1938 MB +39.78%
激活重计算 7a151c16 0.295354% -7120.50 MB -4520 MB -50.07%
分块损失计算,块大小 256 7a151c16 1.785513% -372.00 MB +1680 MB +0.95%
异步激活卸载 7a151c16 1.389279% 0 MB -520 MB -3.25%

各配置连续完成 20 步,损失值均为有限值,没有发生 NPU 显存溢出。20 步测试用于功能、损失差、峰值显存和短期步时验证,不证明长期性能稳定性。对照组重复运行显示短期步时存在 1.14% 至 3.89% 的变化,因此没有把异步激活卸载的步时差异认定为稳定性能提升。

纯 FSDP2 还完成了 30 步真实数据训练、DCP 保存和第 31 步恢复。最终数据修复版本完成另一次 30 步真实数据回归,没有非有限损失、非有限梯度范数或 NPU 显存溢出;69 项数据处理单元测试通过。

Magistral-Small-2509 是稠密模型,没有专家层,无法执行有意义的专家并行对照。请确认该项在本模型上不适用。机器验证已经完成;任务最终完成仍以平台检查、人工审查、PR 合入和维护者验收为准。

likedislike
chenchen
chenchen
14 天前 评论:

@ye_qm PR #3133 的源分支已更新到 3213496c82939dfe71f1122c262e14649b69987a。
该提交根据代码审查结果消除了重复图像预处理和视觉塔各层重复的设备到主机转换,补齐了公开 forward 参数、
缺少 image_sizes 时的处理和相应测试。

当前提交已经通过相关范围的 70 项单元测试、八卡 HCCL 与矩阵乘法检查、hybrid_cp_algo 上下文并行 视觉注意力检查,
并使用重新生成的数据缓存完成 Magistral-Small-2509 24B 真实数据 30 步训练。训练以 0 退出,损失和梯度范数均为
有限值,没有发生 NPU 显存溢出。

此前提交 74760a54 的完整流水线 PR-pipeline_MindSpeed-MM#4814 已通过。新提交推送后文档检查已经通过,
完整持续集成将按当前提交重新运行。2000 步精度和性能结果及各优化功能结果没有改写,其被测版本和与当前提交的关系
继续按 PR 正文与实践文档说明。

请在当前提交的持续集成通过后审查 PR,并确认专家并行对不含专家层的 Magistral-Small-2509 不适用。

likedislike
chenchen
chenchen
14 天前 评论:

当前提交 3213496c82939dfe71f1122c262e14649b69987a 的文档检查和完整持续集成
PR-pipeline_MindSpeed-MM#4818 已经通过。

流水线首次运行时,只有 ST_pool 中的 finetune_qwen3_5_35B 步时检查失败。训练正常完成六步,失败由第 5 步
的 5035.0 ms 异常耗时造成;第 4 步和第 6 步分别为 1843.0 ms 和 1745.4 ms。重试时六步耗时为
7619.3、2158.5、3791.2、2344.5、1596.9、1633.3 ms,最后三步平均值为 1858.23 ms,低于基准
2068.13 ms,ST_pool 全部通过。

此前通过的流水线也曾在预热区间出现同类单步异常,因此当前没有持续性能回归的证据。本次没有修改业务代码、
性能基准或测试阈值;失败与通过日志均已保留。

likedislike
且奏长歌且奏长歌成员
10 天前 关联了里程碑:MindSpeed 26.3.0
chenchen
chenchen
9 天前 评论:

@ye_qm 更新任务 #368 进展。

按维护者 @liuxi_ 9 月 16 日的意见,已将模型迁移实践和性能优化实践两篇文档移出 PR #3133,全文保留在 issue #703。该提交只删除文档及其引用,不改动运行代码、配置或测试逻辑。

当前提交为 306dd19354a05a1f6141ad08c3337ad41c8ee7dc,其文档门禁和完整流水线 PR-pipeline_MindSpeed-MM#4847 均已通过,精度、性能和特性适配的验收数据此前已提交。

待确认三项:

  1. 两篇文档一并移出是否符合意见。维护者点名的是模型迁移实践文档,性能优化实践文档属于同类,一并移出以免留下引用断裂的孤立文档。
  2. Magistral-Small-2509 是稠密模型,不含专家层,无法执行有意义的专家并行对照实验,请确认该特性不适用。
  3. PR 的自动化验证条件已全部满足,请安排人工评审。
likedislike