Qwen3 X ModelScope Toolkit:更快的训练 + 全面评估

社区文章 发布于 2025年5月8日

Qwen3 最近发布了新的模型,延续了 Qwen2.x 的风格,包括两个系列:稠密模型和 MoE 模型。在开源版本中,稠密模型大体保持了之前的模型结构,不同之处在于 Q 和 K 张量中添加了 RMSNorm。MoE 模型则移除了通用专家(common experts),其他结构基本保持不变。在模型大小方面,它们从 0.6B 到 32B(稠密模型)不等,MoE 模型最高可达 235B。在推理能力方面,它们增加了“思维”能力选项,使模型在不同场景下更具适应性和通用性。

模型发布后,需要将开源模型私有化或有垂直行业需求的开发者通常需要进行二次训练(微调、对齐等),然后进行评估和部署。从训练角度来看,常见需求包括:

  • 拥有大量未标注的行业数据,需要进行持续预训练(CPT)。通常使用基础模型进行此操作。

  • 拥有大量问答对,需要进行监督微调(SFT)。根据数据量选择基础模型或指令模型。

  • 需要具有独特响应能力的模型,需要额外的 RLHF。

  • 需要增强特定领域推理能力(或思维链),通常使用蒸馏、采样微调或 GRPO。

在实际场景中,通常会结合多种训练方法。例如,CPT 之后总是进行 SFT,或者进行 RLVR(如带有可验证奖励的 GRPO)。硬件要求从单卡到多机设置不等,这给训练选择带来了困难。

在评估流程中,一个简单易用的评估方法也受到高度追捧。尤其是在处理多领域甚至多模态组合场景时,查找评估数据和跟踪评估进展仍然是一个重大挑战。

为解决这些问题,我们的社区推出了一个支持 Qwen3 系列模型的解决方案,它集成了 SWIFT(训练)+ EvalScope(评估)的复合功能。值得注意的是,MoE 结构训练一直是开源行业的痛点,因为二次训练成本高昂且训练过程复杂。因此,我们全面支持 Qwen3-MoE Megatron 结构训练方法,相比 transformers 结构,其训练速度提升了 20% 到 1000%

在 SWIFT 框架中,Megatron 结构训练和 transformers 结构训练的大多数参数是相同的,这使得开发者可以灵活地在这两种训练方法之间切换,几乎没有成本。

Megatron 支持

在多 GPU 场景中,通常以 torch DDP (Distributed Data Parallel) 框架为基础,并附加并行分组机制以实现 LLM 训练。例如,目前主流的训练 GPU 一般内存为 24GB、40GB 或 80GB,有些模型达到 96GB 或 128GB,但这对于训练 32B 模型而言仍显不足,更不用说更大的模型。因此,除了 DDP 之外,通常还会添加模型分区机制,使得每个 GPU 只承载一部分模型分片,利用 all-gather 收集参数,reduce-scatter 收集梯度。这也是 DeepSpeed ZeROFSDP (Fully Sharded Data Parallel) 的基本原理。

然而,对于大于 32B 的模型或 MoE 模型,transformers 代码实现与 DeepSpeed 的结合会导致过多的 GPU 间通信和串行 MoE 执行,从而导致训练效率不足。

for expert_idx in range(self.num_experts):
    expert_layer = self.experts[expert_idx]
    idx, top_x = torch.where(expert_mask[expert_idx])
    current_state = hidden_states[None, top_x].reshape(-1, hidden_dim)
    current_hidden_states = expert_layer(current_state) * routing_weights[top_x, idx, None]
    final_hidden_states.index_add_(0, top_x, current_hidden_states.to(hidden_states.dtype))

transformers 中 MoE 正向传播的 for 循环代码

Megatron 来自 NVIDIA 的 Megatron-LM 库。该库通常用于处理超大规模训练,而 transformers 库则更适合轻量级训练。这是因为:

  • 在一般的小规模稠密模型训练场景中,轻量级训练方法(LoRA、量化)提供更高的收益,而 Megatron 复杂的分布式结构不适合单 GPU 或双 GPU 场景

  • 开发者的学习曲线相对陡峭,阻碍了理解和使用

然而,在我们的测试中,即使在 8 GPU 单机环境下,使用 Megatron 进行稠密模型训练,其速度也比 transformers 中相同的模型代码快约 20%,并且 GPU 利用率更高。对于 MoE 模型,这一优势更为显著,速度提升可达 1000% 或更多。

Megatron 框架的优势包括:

  • 对注意力结构进行额外优化,例如融合核函数,从而实现更快的训练速度

  • 更好地兼容多机训练,在机器内部和跨机器合理地分片模型以保持较低的通信量

  • 对 MoE 结构提供额外的并行训练支持

如上所述,使用 for 循环串行训练 MoE 无法利用多个 GPU 的优势。因此,SWIFT 引入了 Megatron 的并行技术来加速大模型训练,包括数据并行、张量并行、流水线并行、序列并行、上下文并行和专家并行。它支持 Qwen3、Qwen3-MoE、Qwen2.5、Llama3 和 Deepseek-R1 蒸馏系列等模型的预训练和微调。

Megatron-LM DeepSpeed-ZeRO2 DeepSpeed-ZeRO3
训练速度 9.6秒/迭代 - 91.2秒/迭代
GPU 显存 16 * 60GiB 内存溢出 16 * 80GiB

Qwen3-30B-A3B 全参数训练性能对比

RLVR 支持

在 DeepSeek-R1 技术报告发布后,业界普遍认为可以使用验证奖励来训练模型的推理能力。这种方法与 PRM 方法相比,所需数据量少得多,同时训练速度更快,工程实现更简单,有利于在有此类需求的中小型开发者场景中应用强化学习训练。常见的 RLVR 训练算法包括 PPO、GRPO 和 DAPO,其中 GRPO 更常被使用,因为它省略了 Critic 模型,并使用采样而不是模型拟合,使其在工程实现上更简单、更稳健。SWIFT 也提供了对 RLVR 算法的支持,可以直接用于最新的 Qwen3 模型。

SWIFT GRPO 模型部署

目前,我们支持两种模型部署模式:

  • 并列模式:Actor 和 Rollout 模型占用单独的 GPU,允许 vLLM 使用所有 GPU 内存和计算能力,支持张量并行。

  • 共置模式:Actor 和 Rollout 模型共享 GPU。在这种模式下,vLLM 和 Actor 通过卸载/加载进行 GPU 时间共享,这对于大规模模型更友好。

目前,SWIFT 的 GRPO 可以在集群中支持数百张卡(或更多)的训练。

采样与蒸馏

蒸馏作为知识注入的主要方法之一,在 DeepSeek-R1 技术报告中也有提及。在我们实际训练 Qwen3 的过程中,我们发现直接使用我们自己的数据集进行 SFT 可能会导致严重的知识遗忘问题。尽管这个问题在近年来一直伴随着大型模型训练,但在最新的模型中变得尤为明显。因此,我们预计未来模型训练范式的重点可能会从 SFT 转向强化微调。这个方向包括 RLVR 等在策略训练方法,以及拒绝采样微调和蒸馏等离策略方法。使用回滚数据(无论是来自更大模型还是模型自身的数据)的友好性和精确性在训练质量上远高于手动生成的数据集。例如,在之前的实验中,我们发现使用 competition_math 进行 LLM SFT 实际上导致 competition_math 测试集下降了 10 多分。相反,使用蒸馏、MCTS 采样、拒绝采样和 GRPO 方法可以提高相应测试集上的性能,同时保留其他领域的知识。这可以近似理解为“近端策略”,尽管某些算法不包含 KL 散度正则化约束。

同样,我们为模型采样和蒸馏提供了支持,可以直接应用于 Qwen3 系列模型。示例可在此处此处找到。

评估支持

为了全面评估模型的各种能力并了解训练前后性能指标的变化,ModelScope 推出了 EvalScope 评估工具。它提供了一个统一平台,用于集成和管理各种模型在不同基准上的评估过程,包括大型语言模型的编码能力 (LiveCodeBench)、数学能力 (AIME2024, AIME2025)、知识能力 (MMLU-Pro, CEVAL)、指令遵循 (IFEval);多模态大型模型的视觉理解能力 (ChartQA);以及文本到图像模型的文本图像一致性 (GenAI-Bench) 等。

通过 EvalScope,我们可以方便地执行以下操作:

  • 自动化评估流程:减少人工干预,提高评估效率

  • 可视化性能分析:查看所有评估结果,进行全面的模型分析

  • 自定义评估:通过简单配置,轻松扩展到新的评估任务或构建评估数据集集合。

除此之外,EvalScope 还集成了模型服务推理性能压力测试功能,支持一键测试服务吞吐量和首个 token 延迟等指标。关于 Qwen3 系列模型的评估(包括模型服务推理性能评估、模型能力评估和模型推理效率评估),可在此处找到。

结论

在 AI 行业预测中,许多声音表明 AGI 可能在几年内实现。也可以观察到,目前 Qwen3 系列中最引人注目的模型是 Qwen3-32B、Qwen3-235B-A22B 和其他类似规模的模型。开发者越来越关注能力更强、规模更大的模型,这些模型的使用和关注也影响了应用生态,例如数字人、Agent 等领域的最新技术和方向。我们希望 ModelScope 的工具包能够持续适应不断增长的模型规模,并促进更简单的训练和评估,同时在开源领域引入新的训练技术和模型。开发者可以继续关注我们的社区 (www.modelscope.cn),我们将持续基于 Qwen3、DeepSeek、LLaMA 等强大的模型生态系统构建新的模型能力和应用能力。

社区

注册登录 发表评论