【科普】大模型中常说的 MoE 是指什么?

在大语言模型(LLM)领域,模型规模的持续增长是提升性能的关键途径之一。然而,简单地增加模型参数会带来计算成本的急剧上升。为了在扩大模型容量的同时控制计算负担,一种名为“混合专家模型”(Mixture of Experts,MoE)的架构应运而生,并在近年来受到了广泛关注。 MOE,全称 Mixture of Experts(混合专家),是一种机器学习技术,首次在 2017 年提出,主要用于语言建模和机器翻译任务。它并非一种全新的模型,而是一种架构设计思想,可以将其理解为一种特殊的神经网络层。与传统神经网络层不同,MoE 层包含多个“专家”(Experts)和一个门控网络,每个专家都是一个独立的神经网络,可以专注于处理特定类型的数据或任务,门控网络动态选择适合当前输入的专家,从而实现条件计算和专门化。想象一个医疗团队:每个医生(专家)专注于不同领域(如语法或语义),而总医生(门控网络)根据患者症状决定转诊给谁。这样,每个患者只与最相关的专家互动,节省资源。 Mixtral 8x7B 是 MOE 在 LLM 中的一个典型案例,总参数为 47 亿,活跃参数约为 13 亿。它有 8 个专家,每个专家在推理时可能被激活 2 个。这种设计使其在推理时高效,适合处理大规模语言任务。研究显示,它在领域内任务上表现优异,但在领域外任务上效率稍低。 MoE 的原理 MoE 层的核心组件 Experts(专家): 多个独立的神经网络,例如前馈神经网络(FFN)。每个专家都具备处理特定类型数据的能力。 Gating Network(门控网络): 一个路由网络,用于决定将哪些输入数据发送给哪些专家。它根据输入数据的特征,为每个专家分配一个权重,表示该专家处理该输入的概率或重要性。 Combining Function(组合函数): 将被选中的专家的输出进行聚合,生成最终的 MoE 层输出。常用的组合方式包括加权平均。 MoE 的工作原理 输入: MoE 层接收来自上一层的输入数据。 门控网络: 门控网络分析输入数据,并为每个专家计算一个权重。权重越高,表示该专家越适合处理该输入。 专家选择: 根据门控网络的输出,选择一个或多个具有较高权重的专家。常见的选择方式包括 Top-K 选择,即选择权重最高的 K 个专家。 专家计算: 被选中的专家并行地处理输入数据,并生成各自的输出。 输出: 组合函数将这些输出进行聚合,生成 MoE 层的最终输出。 MoE 的优劣势 MoE 的优势 更大的模型容量: MoE 允许模型拥有更多的参数,从而提高模型的表达能力和学习能力。 稀疏激活: MoE 的一个关键优势是稀疏激活。对于每个输入,只有少数几个专家会被激活,这意味着计算量可以显著减少。 更好的可扩展性: MoE 架构易于扩展,可以通过增加专家数量来提高模型容量,而无需重新训练整个模型。 任务专用化: 不同的专家可以学习不同的任务或技能,从而使模型更具通用性和适应性。 高效扩展: MoE 通过稀疏激活和专家特化实现高效扩展。例如,Switch Transformers 等模型在能耗仅为 GPT-3 的三分之一的情况下,实现了与 GPT-3 同等的质量。[2] MoE 的挑战 训练难度: MoE 模型的训练比传统模型更具挑战性,需要仔细调整训练策略和超参数。 负载均衡: 如何确保每个专家都能得到充分的训练,避免某些专家过度使用而另一些专家利用不足,是一个需要解决的问题。常见的解决方案包括辅助损失和专家容量限制。 通信开销: 在分布式训练中,专家之间的通信可能会产生额外的开销。 内存需求: 所有专家都必须加载到 RAM 中,即使未使用(例如,Mixtral 8x7B 需要 VRAM 才能支持 47B 参数)。 Token 溢出: 当专家超出容量时,可能会删除 Token 或通过残差进行路由。 过拟合风险: 稀疏模型比传统密集模型更容易过度拟合,稀疏 MoE 层和密集 FFN 层的存在使统一方法复杂化。 MoE 的应用 MoE 已经在多个领域取得了显著成果,包括:...

March 13, 2025 · 2 min · fisherdaddy