Mcore Bridge:迈向Megatron训练"零门槛"时代

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 魔搭社区推出Mcore-Bridge与Megatron-SWIFT,显著降低大模型训练门槛。支持safetensors格式、一键启动、无需权重转换,兼容MoE等架构,实现高性能与易用性统一,让Megatron训练开箱即用。

在大语言模型训练领域,Megatron以其卓越的训练效率和先进的并行技术而备受瞩目。然而,其高性能背后的技术复杂性——依赖环境难安装、权重格式需转换、参数配置复杂,让众多研究者和工程师望而却步。


为破解这一困境,魔搭社区先后推出了Megatron-SWIFT和Mcore-Bridge两大利器:支持通过命令行一键启动、基于safetensors模型权重直接训练、无需手动权重转换,让Megatron训练开箱即用,逐步达到与Transformers相当的易用性水平。





六个月前,魔搭社区推出Megatron-SWIFT,将Megatron训练引擎与ms-swift简单易用的开发范式相结合,达到了高性能和易用性之间的平衡:

  1. 并行技术:通过引入张量并行(TP)、流水线并行(PP)、专家并行(EP)、上下文并行(CP)及虚拟流水线并行(VPP)等前沿并行策略,Megatron-SWIFT在混合专家(MoE)模型训练中实现了相较于Transformers + DeepSpeed 后端10倍的加速比,显著降低了训练时间成本与资源消耗。
  2. 全模态模型覆盖:支持250+纯文本大模型,包括Qwen3-Moe、Deepseek-R1、GLM4.5、Qwen3-Next等前沿模型,此外支持100+多模态大模型模型,包括Qwen3-VL、Qwen3-Omni、InternVL3.5、Ovis2.5、GLM4.5-V、Kimi-VL等热门模型。
  3. 丰富的训练范式:支持全参数、LoRA训练方式;支持继续预训练(CPT)、指令微调(SFT)、偏好对齐(DPO/KTO)、奖励模型(RM)等训练阶段。
  4. 命令行启动模式:延续了ms-swift简洁、快速上手的设计理念,研究者仅需聚焦数据与算法而无需关注工程细节,大幅降低了Megatron训练的上手难度。

如今,Mcore-Bridge的发布,进一步降低了Megatron训练的使用门槛,让Megatron训练带来的性能加速,成为“免费的午餐”。

  1. 原生safetensors格式支持:彻底移除权重格式转换的繁琐环节,支持直接加载与保存safetensors格式模型,实现训练流程的无缝集成。
  2. LoRA 增量权重的双向转换:Megatron-SWIFT训练产出的LoRA权重可完美接入PEFT生态,支持vLLM多LoRA 动态切换部署等场景。
  3. 强化学习(RL)权重同步支持:兼容GRPO/GKD等算法的 Megatron->vLLM 权重同步。通过将权重导出接口设计为生成器模式,每次仅返回单层完整权重,精准控制RL训练中同步权重带来的额外显存消耗。
  4. 支持超大规模模型:支持TP/PP/EP/ETP/VPP等并行策略,提供多机转换超大规模模型的能力。
  5. 模型架构覆盖与精度保障:支持Dense、MoE、Vision-Language、Omni等Megatron-SWIFT覆盖的所有模型架构;训练完成的模型可无缝对接Transformers、vLLM、SGLang等推理生态。此外,每个模型均经过严格精度验证,确保转换前后的模型前向传播数值对齐。

01Megatron显著加速Moe模型训练

Megatron在混合专家(MoE)模型的训练中具有显著性能优势,通过引入先进并行技术以及GEMM算子优化,Megatron-SWIFT相较于transformers + DeepSpeed技术栈实现了10倍训练加速。


以下分别测试了Megatron和Deepspeed训练后端在Dense和Moe模型下的训练速度。


Dense模型(Qwen2.5-14B, 单机8×A800, 8K上下文):

Megatron Deepspeed-ZeRO2 Deepspeed-ZeRO3
训练速度 9.04s/it 10.32s/it 10.56s/it
显存占用 8*64GB 8*80GB 8*58GB


MoE模型(Qwen3-30B-A3B, 双机16×A800, 8K上下文):

Megatron DeepSpeed-ZeRO2 DeepSpeed-ZeRO3
训练速度 9.6s/it - 91.2s/it
显存使用 16 * 60GiB OOM 16 * 80GiB

02Mcore-Bridge初体验

接下来,我们以实战的方式,体验Mcore-Bridge带来的灵活和方便。更多Mcore-Bridge的介绍,可以参考文档:https://swift.readthedocs.io/zh-cn/latest/Megatron-SWIFT/Mcore-Bridge.html


训练体验

首先,你需要准备训练环境,推荐使用魔搭社区提供的ms-swift镜像:

modelscope-registry.cn-hangzhou.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.8.0-vllm0.11.0-modelscope1.31.0-swift3.9.3
modelscope-registry.cn-beijing.cr.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.8.1-py311-torch2.8.0-vllm0.11.0-modelscope1.31.0-swift3.9.3


注意:目前Mcore-Bridge功能在ms-swift main分支中,需额外从源码安装ms-swift(>=3.10)。

# pip install git+https://github.com/modelscope/ms-swift.git
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

若是手动安装相关依赖,请参考官方文档:https://swift.readthedocs.io/zh-cn/latest/Megatron-SWIFT/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B.html


以Qwen3-30B-A3B-Instruct-2507的自我认知LoRA微调为例,演示如何通过单一命令完成训练:

核心参数介绍:

  • --load_safetensors true:直接加载safetensors格式权重。
  • --save_safetensors true:保存为safetensors格式权重。
  • --merge_lora false:仅保存LoRA增量权重。(可设为true导出完整合并权重)
# 2 * 41GiB
PYTORCH_CUDA_ALLOC_CONF='expandable_segments:True' \
NPROC_PER_NODE=2 \
CUDA_VISIBLE_DEVICES=0,1 \
megatron sft \
    --model Qwen/Qwen3-30B-A3B-Instruct-2507 \
    --load_safetensors true \
    --save_safetensors true \
    --merge_lora false \
    --dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \
              'AI-ModelScope/alpaca-gpt4-data-en#500' \
              'swift/self-cognition#500' \
    --load_from_cache_file true \
    --train_type lora \
    --lora_rank 8 \
    --lora_alpha 32 \
    --target_modules all-linear \
    --split_dataset_ratio 0.01 \
    --moe_permute_fusion true \
    --expert_model_parallel_size 2 \
    --moe_grouped_gemm true \
    --moe_shared_expert_overlap true \
    --moe_aux_loss_coeff 1e-6 \
    --micro_batch_size 8 \
    --global_batch_size 16 \
    --recompute_granularity full \
    --recompute_method uniform \
    --recompute_num_layers 1 \
    --max_epochs 1 \
    --finetune true \
    --cross_entropy_loss_fusion true \
    --lr 1e-4 \
    --lr_warmup_fraction 0.05 \
    --min_lr 1e-5 \
    --save megatron_output/Qwen3-30B-A3B-Instruct-2507 \
    --eval_interval 200 \
    --save_interval 200 \
    --max_length 2048 \
    --num_workers 8 \
    --dataset_num_proc 8 \
    --no_save_optim true \
    --no_save_rng true \
    --sequence_parallel true \
    --moe_expert_capacity_factor 2 \
    --attention_backend flash \
    --model_author swift \
    --model_name swift-robot

训练完成后,可直接使用ms-swift进行推理测试:

CUDA_VISIBLE_DEVICES=0,1 \
swift infer \
    --adapters megatron_output/Qwen3-30B-A3B-Instruct-2507/vx-xxx/checkpoint-xxx \
    --stream true

Pythonic API调用Mcore-Bridge

Mcore-bridge提供了编程式API,方便在自定义训练流程中集成:

# test.py
import torch
from swift.llm import get_model_tokenizer
from swift.megatron import MegatronArguments, convert_hf_config, get_megatron_model_meta
from megatron.training.initialize import initialize_megatron
model_id = 'Qwen/Qwen3-30B-A3B-Instruct-2507'
_, processor = get_model_tokenizer(model_id, load_model=False, download_model=True)
model_info = processor.model_info
megatron_model_meta = get_megatron_model_meta(model_info.model_type)
config_kwargs = convert_hf_config(model_info.config)
megatron_args = MegatronArguments(
    model=model_id,
    tensor_model_parallel_size=2,
    pipeline_model_parallel_size=2,
    expert_model_parallel_size=2,
    sequence_parallel=True,
    torch_dtype=torch.bfloat16,
    **config_kwargs,
)
extra_args = megatron_args.parse_to_megatron()
initialize_megatron(args_defaults=extra_args)
# 创建模型
mg_model = megatron_model_meta.model_provider()
# 加载权重
bridge = megatron_model_meta.bridge_cls()
bridge.load_weights(mg_model, model_info.model_dir)
# 导出权重
for name, parameters in bridge.export_weights([mg_model]):
    pass
# 保存权重
bridge.save_weights([mg_model], 'output/Qwen3-30B-A3B-Instruct-2507-new')


运行方式如下,以上代码也非常方便使用VSCode进行断点调试。

CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --nproc_per_node=4 test.py

Mcore-Bridge内置了精度对齐的测试工具,以评估模型在Megatron与Transformers实现之间的精度误差,这对新模型接入至关重要。


使用方法:

只需在权重转换时添加--test_convert_precision true参数:

CUDA_VISIBLE_DEVICES=0,1,2,3 \
NPROC_PER_NODE=4 \
megatron export \
    --model Qwen/Qwen3-30B-A3B-Instruct-2507 \
    --save Qwen3-30B-A3B-Instruct-2507-mcore \
    --to_mcore true \
    --tensor_model_parallel_size 2 \
    --expert_model_parallel_size 2 \
    --pipeline_model_parallel_size 2 \
    --test_convert_precision true

04总结

Mcore-Bridge的引入,结合Megatron-SWIFT,共同构建了Megatron训练高性能和易用性统一的解决方案。

  1. 性能飞跃:Megatron-SWIFT在混合专家(MoE)模型训练中实现了相较于Transformers+DeepSpeed后端10倍加速比,显著降低训练成本。
  2. 无额外成本:Mcore-Bridge的引入,彻底移除了权重转换的繁琐过程,支持原生safetensors格式,让Megatron训练带来的性能提升成为"免费的午餐"。
  3. 开箱即用:延续ms-swift简单易用的设计理念,通过命令行启动、开箱即用的镜像、完善的文档支持,让Megatron训练不再有任何技术门槛,使广大开发者都能无感体验并行技术与大模型训练的完美结合。


随着大模型架构的持续发展和创新,该工具链也将持续演进,为研究社区与工业界提供更强大的基础设施支撑。


ms-swift项目地址:

https://github.com/modelscope/ms-swift


Megatron-SWIFT训练交流群


目录
相关文章
|
20天前
|
JavaScript 搜索推荐 开发者
ChatPPT+魔搭社区:MCP 2.0全面升级!
ChatPPT MCP2.0正式发布,联合魔搭ModelScope推出云端智能体服务,支持生成、编辑、演讲、动画等全链路功能,开放Streamable HTTP协议与本地Stdio双模式,已接入20+平台,服务300+开发者。
451 11
ChatPPT+魔搭社区:MCP 2.0全面升级!
|
19天前
|
自然语言处理 语音技术 Apache
阶跃星辰发布首个开源 LLM 级音频编辑大模型 Step-Audio-EditX
阶跃星辰发布全球首个开源LLM级音频编辑大模型Step-Audio-EditX,支持零样本TTS、多语言方言及情感、风格、副语言特征精准控制,采用统一LLM框架,实现文本驱动音频创作。
435 88
|
18天前
|
机器学习/深度学习 数据可视化 Apache
仅3B激活参数,更强的多模态理解与推理能力,百度文心 ERNIE-4.5-VL-28B-A3B-Thinking正式开源!
11月11日,百度开源文心ERNIE-4.5-VL-28B-A3B-Thinking多模态模型,仅3B激活参数,性能媲美顶级大模型。具备强大视觉语言理解、跨模态推理与“图像思考”等创新功能,支持工具调用与视频分析,适用于复杂图文任务,全面开放商用。
245 17
仅3B激活参数,更强的多模态理解与推理能力,百度文心 ERNIE-4.5-VL-28B-A3B-Thinking正式开源!
|
1月前
|
传感器 人工智能 API
仅100多元,他给视障人群装上AI“眼睛”
上海两名开发者为验证AI助盲实效,亲手打造百元AI眼镜,蒙眼实测过马路、识盲道,并开源项目鼓励更多人参与。技术导航,人心照亮。
705 6
仅100多元,他给视障人群装上AI“眼睛”
|
24天前
|
人工智能 搜索推荐 API
蚂蚁百宝箱联手深铁打造全国首个地铁 AI 智能体「深铁宝」:你的全能城市向导来啦~
蚂蚁百宝箱联合深铁集团、深圳通推出全国首个“公共出行+城市服务”AI智能体「深铁宝」,上线于深圳地铁、深圳通及支付宝APP,实现一句话直达、秒级响应的智慧出行体验,涵盖出行规划、乘车码快捷调取、周边生活服务推荐等一站式功能,助力城市交通与服务数字化升级。
213 30
|
安全 JavaScript Docker
Agent Skills技术协议与开源实现,让大模型拥有“即插即用”技能
Anthropic推出Agent Skills协议,通过模块化技能封装提升大模型智能体的专业能力。ModelScope开源项目MS-Agent已实现该协议,支持技能的动态加载、自主执行与安全沙箱运行,推动智能体能力的可组合与可扩展发展。
374 28
|
4天前
|
机器学习/深度学习 编解码 JSON
混元OCR模型宣布开源,参数仅1B,多项核心能力SOTA
腾讯混元推出全新开源OCR模型HunyuanOCR,仅1B参数,基于原生多模态架构,实现端到端高效推理。在复杂文档解析、文字检测识别等多场景表现卓越,支持14种小语种翻译,广泛适用于票据抽取、视频字幕识别等应用,多项指标达业界SOTA水平。
141 8
|
20天前
|
监控 数据挖掘 UED
1688运营实战指南:从入门到精通的学习路径全解析!
在当今电商环境下,1688作为国内领先的B2B平台,已成为众多企业不可或缺的销售渠道。无论是源头工厂、批发商,还是寻求优质货源的创业者,掌握专业的1688运营技能都显得尤为重要。本文将为大家系统梳理1688运营的学习路径和实战方法,帮助商家少走弯路,快速提升店铺运营效果。
|
18天前
刚刚参加了一个MCP赛事,奖金还可以,搭友们可以去试试看
社区8月比赛未获奖有点失落,但发现通义灵码×蚂蚁百宝箱MCP赛事正火热进行!参赛即有机会赢取丰厚奖金,激励满满,令人眼前一亮。已跃跃欲试,搭友们快来一起冲榜夺奖吧!https://tianchi.aliyun.com/competition/entrance/532442

热门文章

最新文章