街坊秀 街坊秀

当前位置: 首页 » 街坊资讯 »

MindSpeed LLM全新升级——支持FSDP训练后端,Qwen3-Next-Coder模型天级适配

(来源:华为计算)

当前大模型技术正加速走向普惠化,训练与应用门槛持续降低,大语言模型从技术探索迈向行业规模化落地。行业焦点已转向模型便捷部署与敏捷业务上线,企业亟需易用性强的全流程LLM套件,简化训练、微调、部署与迭代,加速模型创新与业务落地。MindSpeed LLM全新升级,基于FSDP训练后端打造轻量化大语言模型套件,摒弃繁琐的配置,提供一套极简的模型适配方案,Qwen3-Next-Coder模型发布后天级完成适配,为大模型训练普惠化提供核心动力。

MindSpeed LLM正式引入全新FSDP2训练后端

相比原有框架,全新FSDP训练后端的MindSpeed LLM套件具有以下核心优势:

极简易用:零侵入,原生适配。无需修改模型源码,彻底解耦并行策略与模型结构。无论是 Hugging Face 开源模型还是自研架构,均可直接原生支持。

多维并行:FSDP+EP+CP灵活组合。支持FSDP(完全分片数据并行)、EP(专家并行)与 CP(上下文并行)的混合策略,轻松应对超大参数量与长序列训练挑战。

性能加速:昇腾亲和,全链路优化。底层深度优化计算、内存与通信。内置高性能融合算子,引入异步 Offload 打破显存瓶颈,实现训练吞吐量的极致释放。

体验重构:拒绝繁琐,直观开发。直接加载权重,免去格式转换烦恼。打通预训练到微调全流程,代码结构清晰,显著提升二次开发与算法创新效率。

精度对齐:双重标尺,稳定可靠。SFT场景对齐,LLaMA-Factory,预训练场景严格对齐,Megatron-LM。在轻量化的同时确保数值精度与收敛性,让迁移切换“零顾虑”。

全链路重构,原子化模块设计

MindSpeed LLM FSDP2 后端采用了高度模块化的架构设计,将复杂的分布式训练流程拆解为标准化、可复用的原子组件。各组件之间严格遵循接口契约,最大限度降低组件间的依赖耦合,并预留了标准化的算法扩展接口,为前沿算法的快速实验与落地铺平道路。

MindSpeed LLM FSDP训练后端介绍

ModelFactory(模型组件):负责加载 HuggingFace 权重,构建model实例,应用MindSpeed FSDP后端根据并行参数(FSDP/EP/CP)将模型切片。

OptimizerFactory & SchedulerFactory(优化器和学习率调度器组件):构建优化器,支持adam和muon优化器。设置Beta 和 Epsilon,以及配置 Warmup-Decay 学习率。

DataFactory(数据处理组件):加载数据集,应用 ChatTemplate,并构建支持分布式采样的 DataLoader,支持预训练和微调场景数据处理。

Checkpointer(权重管理组件):负责处理 FSDP2 的分布式 Checkpoint 保存与加载,支持后台异步写入,支持断点续训。

Logging(日志模块组件):提供纯文本日志输出(无级别/时间前缀)、一次性警告(生命周期内仅输出一次)等扩展能力,提供全局初始化接口和便捷的日志实例获取方法,默认配置开箱即用,支持动态调整日志级别和格式。

Trainer(训练组件):负责执行标准的 Epoch/Step 循环、前向/反向传播、梯度累积、梯度裁剪和参数更新。

Foundation(后端基础组件):该层汇集了训练所需的核心底层能力,采用原子化封装设计,确保各个特性模块解耦且即插即用,为开发者提供灵活的组合能力。

新模型快速适配:双路径选择

对比Megatron后端与新的FSDP2后端适配新模型的步骤差异,感受从“周级适配”“天级适配”的质变。

为了满足不同层次的需求,MindSpeed LLM提供了两条适配路径。

适配路径概览:

路径一:原生 Transformers 适配 (零代码)

这是最快的接入方式。只要模型在 transformers库中受支持,即可直接训练。

操作步骤:

1.准备权重:确保模型符合 HF 标准格式。

2.修改配置:在 模型的yaml配置文件中,填入下载好的权重路径即可。

# ./examples/fsdp2/qwen3_next/tune_qwen3_next_fsdp2.yamlmodel:    model_name_or_path: "/path/to/qwen3_next"    trust_remote_code: true

框架行为:根据权重路径下配置文件config.json -> 调用 AutoModelForCausalLM创建模型-> 调用MindSpeed FSDP后端自动应用 FSDP2 策略。

路径二:自研模型适配

当需要注入 NPU 亲和算子(如 Flash Attention 融合算子)或修改模型逻辑时使用。

操作步骤:

1. 定义模型类

在mindspeed_llm/fsdp2/models/下创建目录(如 qwen3_next),继承 HF 原生类或 复制源码进行二次开发。

# mindspeed_llm/fsdp2/models/qwen3_next/modeling_qwen3_next.pyfrom transformers import Qwen3NextForCausalLMclass Qwen3NextForCausalLM (Qwen3NextForCausalLM):    """    自定义模型类,继承自 HF 原生类,用于注入特定逻辑。    """    @classmethod    def from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs):        """        [可选] 重写加载逻辑,如果需要特殊的初始化流程。        通常直接调用 super() 即可。        """        model = super().from_pretrained(pretrained_model_name_or_path, *model_args, **kwargs)        return model    def forward(self, input_ids, ...):        """        [可选] 如果需要完全自定义前向传播(例如修改 Loss 计算),请重写此方法。        """        return super().forward(input_ids, ...)

2. 注册模型

在mindspeed_llm/fsdp2/models/model_registry.py的ModelRegistry中添加映射。

# model_registry.pyFrom mindspeed_llm.fsdp2.models.qwen3_next.modeling_qwen3_next import Qwen3NextForCausalLM_REGISTRY = {    "gpt_oss": GptOssForCausalLM,    # 新增注册    "qwen3_next": Qwen3NextForCausalLM, }

3. 启动配置

需要显式指定 model_id。

# ./examples/fsdp2/qwen3_next/tune_qwen3_next_fsdp2.yamlmodel:    model_name_or_path: "/path/to/qwen3_next_weights"    model_id: "qwen3_next"  # <--匹配注册后的自定义模型

快速上手-基于FSDP2训练后端的MindSpeed LLM套件完成Qwen3-Next-Coder模型训练

环境准备

git clone https://gitcode.com/Ascend/MindSpeed_LLM.git# 安装mindspeed及依赖git clone https://gitcode.com/Ascend/MindSpeed.gitcd MindSpeedcp -r mindspeed ../MindSpeed_LLM/cd ../MindSpeed_LLMpip install -e .# 安装其它依赖pip3 install -r requirements.txt

数据与权重

1.下载 Hugging Face 格式的预训练权重。

2.数据集配置

支持两种配置方式,推荐使用 dataset_info.json 注册方式便于多数据集混合训练。

方式一:内联配置(适用于单数据集快速验证)

data:    dataset:    file_name: "./my_data.json"                     # 数据文件路径    formatting: "alpaca"                            # 数据格式模板,支持alpaca/sharegpt等格式    cutoff_len: 2048                                  # 分词后输入序列的截断长度,超过该长度的序列会被截断

方式二:通过 `dataset_info.json` 注册

1. 编辑 `configs/FSDP2/data/dataset_info.json`,添加数据集条目:

{"alpaca_full": {"file_name": "./train-00000-of-00001.parquet"},"sharegpt4_zh": {"file_name": "./sharegpt_zh.jsonl","formatting": "sharegpt"}}

2. 在 YAML 配置中引用:

data:    dataset: alpaca_full, sharegpt4_zh                # 训练数据集:可填写逗号分隔的数据集名称,支持多数据集混合    template: gpt                                     # 训练/推理阶段构建prompt的模板名称    cutoff_len: 2048                                  # 分词后输入序列的截断长度,超过该长度的序列会被截断

启动训练

只需一条命令即可启动。框架会根据yaml配置文件自动处理分布式环境初始化。在仓库根目录执行:

bash examples/fsdp2/gpt_oss/tune_qwen3_next_fsdp2.sh

结语

MindSpeed LLM FSDP2让分布式训练回归简单。无论是直接复用社区生态,还是深度定制硬件优化,MindSpeed LLM都提供了最佳实践。

欢迎开发者体验、贡献与共建!

  • MindSpeed LLM开源仓库:

https://gitcode.com/Ascend/MindSpeed-LLM

  • 腾开源微信小助手:ascendosc

注:FSDP2新后端已上线,欢迎尝鲜试用,框架性能仍在持续优化中。

未经允许不得转载: 街坊秀 » MindSpeed LLM全新升级——支持FSDP训练后端,Qwen3-Next-Coder模型天级适配