一、发生了什么:万卡训练底座被单独拆出来开源
2026 年 10 月 28 日,摩尔线程宣布开源大模型训练基础设施项目 Megatron-MUSA-Titan。IT之家当天 18:16 的报道给出了明确口径:项目基于摩尔线程全功能 GPU,聚焦万卡级集群上的万亿参数 MoE 模型训练,覆盖预训练与强化学习两大场景,为开发者提供面向 MUSA 平台的训练适配与系统优化能力。
官方仓库(GitHub 上的 MooreThreads/Megatron-MUSA-Titan)的 README 把边界写得很克制:只做训练基础设施,不做模型实现,也不做训练算法;推理侧的独立优化明确写着「不在本仓库范围内」。所以这不是又一个「大模型全家桶」,而是把一套在万卡集群上跑万亿参数 MoE 的工程适配层单独抽了出来。
厂商口径的能力主要有三条:其一,已在万卡级集群的万亿参数 MoE 预训练中持续使用,官方称取得较高 MFU 与长稳训练;其二,一个底座同时覆盖预训练与强化学习,训练走 Megatron,采样走 SGLang,强化学习侧对接 slime 与 miles;其三,坚持「上游优先」,尽量不改上游代码。MFU 具体数值、训练时长、集群规模细节,官方和媒体都没公布,这部分仍属厂商自述。
一个可以自己核对的事实:仓库并不是今天新建的。GitHub API 显示它创建于 2025 年 3 月 6 日,最近一次提交是 2026 年 10 月 16 日的「feat(rl): add env-gated MUSA bootstrap for slime and miles」,目前 17 star、5 fork、没有 Release。我的判断是:今天发的是交付,不是立项------代码早就在跑,最近补齐的是强化学习接线和一份真能照着配的文档。star 数还这么低,说明社区远没反应过来。
二、技术拆解:改了四层,都是大集群才会疼的地方
改动集中在四个层面,没有一项是为了跑分好看,全是为了让万卡不空转。
-
计算精度:blockwise FP8。 开启方式是四个 Megatron 参数:
--transformer-impl transformer_engine、--fp8-format e4m3、--fp8-param-gather、--fp8-recipe mxfp8。文档说明 MT-TransformerEngine 会把 MXFP8BlockScaling 映射到自家的 MTFP8BlockScaling 实现,也就是说上层仍是 Megatron 的配方名,底层换成了自家算子。 -
词元通信:DeepEP over ACE。 设
USE_DEEPEP_ACE=1,再加--moe-token-dispatcher-type flex与--moe-enable-deepep,用异步通信引擎承载 MoE 的词元分发与结果合并。前置条件是必须用支持 ACE 的 DeepEP 构建,该构建要暴露get_ace_combine_buffer。 -
通算重叠:EP 与 PP 两条路。 专家并行侧加
--overlap-moe-expert-parallel-comm,让 EP 通信与计算在虚拟流水线里重叠。文档特意点明:单独设USE_DEEPEP_ACE=1并不会打开重叠,这个开关必须单独加;--delay-wgrad-compute只是可选伴生。流水线侧则用 Mooncake 的 P2P RDMA,把 PP 的点对点传输压到其他虚拟阶段的执行背后。 -
显存与可观测性。 激活卸载用
--offload-moe-fc1-input和--offload-moe-fused-swiglu-input,分别卸掉路由专家的 FC1 输入与融合 SwiGLU 输入,当前配置要求 PP size 大于等于 3。排障工具是 Distributed Holistic Trace Analysis,实时读全集群的 PyTorch trace,看算子耗时、通信瓶颈、流水线气泡和掉队节点,官方称万卡规模 1T MoE 的性能分析可在数小时内跑完。层级 开关 前置条件
精度 --fp8-recipe mxfp8 需 MT-TransformerEngine
EP 通信 USE_DEEPEP_ACE=1 + --moe-enable-deepep 需 ACE 版 DeepEP 构建
EP 重叠 --overlap-moe-expert-parallel-comm 先开 DeepEP/ACE,单独开无效
激活卸载 --offload-moe-fc1-input 等 PP size 大于等于 3
PP 重叠 PP_USE_MOONCAKE=1 + 槽位/切片参数 需 RDMA 通、VPP 布局正确
三、工程上怎么用:入口顺序比参数更容易翻车
文档第一节讲的第一个坑不是参数,是注入点:环境变量必须写进每个训练 worker 的启动脚本,在 launcher 节点上 export 不会被 SSH 或 Ray 自动转发;示例脚本还可能覆盖你已经 export 的值,这时要改的是 worker 侧脚本,而不是在命令行里再 export 一遍。
第二个坑是顺序。补丁必须在 import Megatron 之前打,写反了就是「参数全对但一个优化都没生效」:
import os
if os.getenv("ACCELERATOR_BACKEND", "musa") == "musa":
from musa_titan import apply_pretrain_patch
apply_pretrain_patch()
# 之后才 import Megatron 相关模块
强化学习侧换成 apply_rl_patch(),同时保留 SLIME_MUSA_PATCH_AT_STARTUP=1 或 MILES_MUSA_PATCH_AT_STARTUP=1,Ray worker 和子进程靠 sitecustomize.py 再打一次。第三个坑是别动上游代码:官方目标是跟上上游主干一起演进,示例脚本只是起点,文档里直接写了「配方不是一键复现万卡 benchmark 的脚本」。
说到实测数字,先把范围讲清楚:我们不做万卡训练。我们跑的是多出口内容发布链路,14 天台账(2026 年 10 月 15 日至 10 月 28 日)共 187 条记录、去重 175 个链接、覆盖 8 个出口,其中 CSDN 12 篇;状态码复核 173 条返回 200,2 条异常里有 1 条是站点反爬(curl 拿到 521,浏览器打开正常)。两类链路的坑其实是同一类:上游一行不改、差异全收在入口一层、每一步都留可核对的返回值。这也是我们做智能体世界(agentshijie.com)时一直守的规矩。
四、可核对清单(照抄能跑)
下面这段是启动脚本的最小骨架,参数与默认值全部来自仓库 docs/feature/README.md,可直接对照抄:
export ACCELERATOR_BACKEND="musa"
export USE_DEEPEP_ACE=1
export PP_USE_MOONCAKE=1
export MOONCAKE_P2P_SLOT_SIZE_BYTES=134217728 # 128 MiB,按最大激活/梯度传输调
export MC_WORKERS_PER_CTX=2
export MC_SLICE_SIZE=65536
export PYTHONPATH="$PWD:$PWD/../Megatron-LM${PYTHONPATH:+:$PYTHONPATH}"
torchrun --nproc_per_node=8 --nnodes=$NNODES --node_rank=$RANK \
--master_addr=$MASTER_ADDR --master_port=29500 \
pretrain_gpt.py \
--transformer-impl transformer_engine --fp8-format e4m3 \
--fp8-param-gather --fp8-recipe mxfp8 \
--moe-token-dispatcher-type flex --moe-enable-deepep \
--overlap-moe-expert-parallel-comm \
--pipeline-model-parallel-size 3
- 核对一:README 的 Highlights 只有三条------万卡 1T MoE 预训练、预训练与 RL 同底座、可与上游仓库直接配合。凡是超出这三条的「能力」,都不是官方说的。
- 核对二:每个开关的默认值和前置条件都在 docs/feature/README.md,逐个对,不要按博客抄。
- 核对三:DeepEP 是否带 ACE,看它有没有暴露
get_ace_combine_buffer;没有就说明拿到了不带 ACE 的构建,此时开USE_DEEPEP_ACE=1没有意义。 - 核对四:
git log -1 --date=iso看最近提交时间,能立刻分辨「今天首发的新代码」和「早就在跑、今天补文档」------这次是后者。 - 核对五:
ls examples/pretrain会看到按模型分的配方(万亿参数 MoE 一类、稠密模型一类),配方里的并行度、节点数、数据集路径都要按自己集群改。
五、一句判断
我的判断是:万卡训练这条赛道的开源竞争,已经从「放不放权重」转向「放不放跑得起来的工程层」。权重谁都能下载,但把通信重叠、激活卸载、注入顺序、前置构建这些坑连默认值一起写出来,才是真的把成本替你付掉了一部分。对做智能体和内容工程的人来说,值得学的也不是那些算力数字,而是这种交付方式------把踩过的坑写成有默认值的文档,比多一个榜单名次更能积累信任。
#AI智能体 #大模型 #开源