#模型时代# 20分钟可视化讲解:什么是MoE专家混合模型?
围绕DeepSeek的相关技术讲解已经发了很多了,真的很多了。当然,对我自己来说,发过就是学过[doge]。不过,多数是讲DeepSeek R1的。其实DeepSeek V3也有很多关键技术,比如MoE(混合专家),所以找到油管频道Maarten Grootendorst的这个讲座。
说起来,这个技术是在1991 年,由罗伯特-雅各布斯和杰弗里-辛顿(Geoffrey Hinton)发表的一篇论文中提出的。(又是辛顿,DeepSeek模型训练中重要的蒸馏技术,也是辛顿参与创造发明的)。这项研究当时提出,就是想使用专业网络("即专家")集合来处理更大问题的不同子任务, 目标是提高单一、整体模型的准确性和灵活性。
拿DeepSeek V3来说,它拥有 6710 亿个参数,它的 MoE 架构将模型分成多个“专家”,每个 MoE 层包含 256 个路由专家,每个 token 会激活其中的 8 个专家,不同的专家负责特定领域的问题。 在此基础上,DeepSeek 还提出了一种无辅助损失负载均衡策略,可以更好地分配任务,避免某些“专家”过载。并且,DeepSeek实现了节点限制路由技术,可以优化信息传递路径。 这使得每个 token 输出只需激活 370 亿个参数,既能保持模型性能。从6710亿到370亿,是几十分之一的资源节省。
本讲座并非针对V3,而是一直MoE架构的通用可视化讲解。但这是根本,先理解MoE,才能理解更进一步的创新。
***
讲座概要:
1、"专家混合或 MoE 是一种使用不同子模型或专家来提高大型语言模型质量的技术"。
这一知识点展现了MoE的基本架构。讲者详细解释了MoE由两个主要组件构成:专家网络(experts)和路由网络(router)。专家网络是前馈神经网络,而路由网络则负责决定将哪些token分配给哪些专家处理。值得注意的是,这里的"专家"并非传统意义上精通某个领域(如心理学或生物学)的专家,而是在token层面学习句法信息的神经网络。这种设计允许模型根据输入内容灵活地选择最适合的专家组合,从而提高处理效率和性能。
2、"请记住,专家并不是心理学或生物学等特定领域的专家,它最多只能学习 token 级别的句法信息"。
这个观点打破了人们对MoE中"专家"的常见误解。讲者强调,虽然称之为"专家",但这些子模型并不具备传统意义上的领域专业知识。相反,它们更像是在语言处理过程中承担不同角色的功能模块。每个专家通过训练获得处理特定语言模式的能力,但这种专门化是在语法和语言结构层面上的,而不是在知识领域层面上的。这种设计使得模型能够更有效地处理各种语言现象,而不是被限制在特定的知识领域内。
3、"仅解码器模型中的前馈神经网络被称为密集模型,因为所有参数都被激活"。
这个知识点阐述了传统密集模型与MoE的根本区别。在传统的decoder-only模型中,所有参数都会被激活,这就是所谓的"密集模型"。相比之下,MoE采用了"稀疏"架构,通过将密集模型分割成多个专家网络,并在推理时只激活其中的一部分。这种设计显著降低了计算成本,因为在处理任何给定输入时,只有最相关的专家会被激活。讲者通过具体示例展示了如何将一个密集模型转换为多个专家网络,以及这种转换如何提高模型的效率。
4、"这叫做稀疏模型,在推理过程中只使用特定的专家。当被问及一个问题时,我们可以选择最适合特定任务的专家"。
这个知识点揭示了MoE的核心优势:智能化的任务分配机制。在实际应用中,每个输入都会触发不同的专家组合。讲者特别强调,这种选择是动态的,甚至同一段文本中的不同token都可能被路由到不同的专家网络。这种灵活的结构使得模型能够为每个具体任务调动最适合的专家组合,从而在保持性能的同时显著提升计算效率。这种设计相比于传统的密集模型,不仅降低了计算资源的消耗,还提供了更精准的任务处理能力。
5、"在training过程中,一些专家可能比其他专家学得更快、更多。因此,无论输入情况如何,都可能过于频繁地选择同一组专家"。
这个观点指出了MoE训练过程中的一个关键挑战:专家不平衡问题。讲者详细解释了如何通过"负载均衡"(load balancing)来解决这个问题。主要采用两种技术:一是引入可训练的高斯噪声,帮助防止同一组专家总是被选中;二是设置"KeepTopK"机制,通过将除了前K个专家以外的权重设为负无穷,来强制实现稀疏性。这些技术的组合确保了所有专家都能获得充分的训练机会,从而提高整个系统的性能和稳定性。
6、"虽然给定的 MoE 有更多的参数需要加载,我们称之为稀疏参数,但由于我们在推理过程中只使用部分专家,因此激活的参数较少,我们称之为活动参数"。
这一知识点通过具体的参数分析,展示了MoE的实际应用优势。讲者以Mixtral 8x7B模型为例,深入分析了其参数构成:
整体模型包含470亿参数(稀疏参数)
在推理时仅需激活约130亿参数(活跃参数)
嵌入层和注意力机制分别占用1.31亿和10多亿参数
每个专家实际包含56亿参数,而不是名称暗示的70亿
这种设计允许模型在保持大规模参数优势的同时,显著降低实际运行时的计算负担,实现了性能和效率的平衡。
7、"要使用 MoE,我们只需要用一个 MoE 层来替代前馈神经网络,这个层具有我们迄今为止看到的相同特性。这就是所谓的视觉 MoE。"
这个知识点展现了MoE技术的通用性和可迁移性。讲者解释了如何将MoE从语言模型领域扩展到计算机视觉领域。在视觉transformer中,图像被分割成patches(类似于文本中的tokens),然后通过相同的MoE架构进行处理。这种迁移证明了MoE是一种具有广泛应用前景的通用架构,能够在不同的模态和任务中发挥作用。特别值得注意的是,视觉MoE在处理图像时需要特别考虑patch的重要性,以确保最关键的视觉信息能够得到优先处理。
8、"优先级分数为补丁分配重要分数,以便首先处理最重要的补丁"。
这个知识点深入探讨了视觉MoE中的优先级机制。在处理图像时,由于patches数量庞大,每个专家的处理容量必须保持较低以避免硬件限制。讲者解释了如何通过优先级评分系统来解决这个问题:系统会为每个图像patch分配重要性分数,确保最重要的视觉信息能够优先得到处理。这种机制特别重要,因为即使在需要丢弃一些patches的情况下,模型也能保持对图像最关键部分的准确表达。这一设计充分体现了视觉MoE在处理大规模视觉信息时的智能化特征。
9、"Softmo 解决了这一问题,旨在通过混合补丁,从离散补丁分配到软补丁分配"。
这个知识点介绍了SoftMoE这一创新架构。与传统的视觉MoE相比,SoftMoE采用了更灵活的patch分配机制。讲者详细解释了其工作原理:
不是简单地将patches分配给专家
而是创建patches的线性组合
使用权重矩阵φ来学习patch之间的关系
通过softmax操作来创建软分配机制
这种设计避免了信息丢失,能够更好地保持图像的完整性,同时仍然保持了MoE架构的计算效率优势。
10、"既然Transformers已经进入了视觉领域,像MoE这样的技术竟然可以跨领域转移。因此,请记住,无论您从大型语言模型中学到什么,都可能对多模态模型产生理论和实践影响。"
这个知识点,强调了MoE技术的普适性。讲者指出,transformer架构已经成功地从自然语言处理扩展到计算机视觉领域,而MoE作为其中的关键技术,展现出了极强的跨域迁移能力。这种迁移不仅体现在技术层面,更重要的是反映了深度学习中的一个重要趋势:成功的架构设计往往具有普遍适用性,可以在不同的问题域中找到应用。这对于理解和发展多模态模型具有重要的启发意义。 http://t.cn/A61ZkbkR
发布于 北京
