一、结论写在前面
下面介绍的论文是澳门大学、爱丁堡大学、清华大学、 香港科技大学
论文标题:A Closer Look into Mixture-of-Experts in Large Language Models
论文链接:https://arxiv.org/pdf/2406.18219
代码:https://github.com/kamanphoebe/Look-into-MoEs
混合专家系统(mixture-of-experts,MoE)因其独特的性质和卓越的性能,尤其是在语言任务方面,正受到越来越多的关注。通过稀疏激活每个token的参数子集,MoE架构可以在不牺牲计算效率的情况下增加模型规模,实现性能与训练成本之间的更好平衡。然而,MoE的底层机制仍有待进一步探索,其模块化程度也存在疑问。
论文首次尝试理解基于MoE的大型语言模型的内部工作原理。具体而言,论文全面研究了三个近期基于MoE的模型的参数和行为特征,并揭示了一些有趣的观察结果,包括(1)神经元类似于细粒度的专家。(2)MoE的路由器通常选择输出范数较大的专家。(3)随着层数的增加,专家多样性增加,而最后一层是一个例外。
基于这些观察,论文还为广泛的MoE实践者提供了建议,如路由器设计和专家分配。论文希望这项工作能为未来MoE框架及其他模块化架构的研究提供启示。
二、论文的简单介绍
2.1 论文的背景
大型语言模型(LLMs)训练成本和复杂性的提升需要创新的解决方案,以更好地平衡预训练效率和模型性能。为此,一个新兴的解决方案是混合专家系统(MoE)架构。MoE框架通过动态地将输入路由到专家子集,提高了模型的计算效率,允许大规模模型扩展同时保持训练成本,并在该领域取得了众多有影响力的进展。
除了效率之外,MoE架构的另一个吸引人的特点是其模块化设计和学习范式。这种模块化可以通过将不同的数据和任务分配给更专业的专家,从而在一个单一的MoE模型中实现更灵活、潜在更通用的处理。尽管MoE已被广泛采用,但一个悬而未决的问题是:现有的基于MoE的大型语言模型(LLMs)是否真正利用了这种模块化在不同专家之间的知识分布或模型行为。
换句话说,MoE是同质专家的简单集合,还是异质专家的模块化组合?全面回答上述问题并非易事。因此,在本文中,论文首先从两个关键角度——模型参数和模型行为——对三个最近的基于MoE的LLMs(Mixtral 8x7B,DeepSeekMoE,和Grok-1)进行了研究。论文的目标是探索不同专家之间的共同和独特特征与行为,进而揭示基于MoE模型的内在机制。
2.2 混合专家模型
混合专家模型通过用N个并行FFN(Feed-Forward Network)与路由器组合替换原有的FFN来增强transformer。这些N个FFN也称为专家。路由器g(·; G, k),由参数G和一个整数k参数化,将输入x分配给专家的得分分布,y(x; G,k)属于R。通常,路由器g由一个简单的线性层、一个softmax和一个Top-k函数组成。给定x属于R^h,输出y属于R是所有专家输出的加权和:
当Top-k的k小于V时,只有一部分专家参与计算。这被称为稀疏混合专家模型( Sparse Mixture-of-Experts,SMoE)。论文选择的模型的专家遵循LLaMA的风格,包含三个线性层,操作如下:
2.3 概述
论文的实验基于多个开源的MoE模型进行,包括Mixtral 8x7B、DeepSeekMoE和Grok-l,这些模型在各个领域展示了卓越的性能。为了进一步研究标准transformer与MoE模型之间的相似性与差异,论文将Mistral 7B纳入研究模型之一。表1总结了这些模型的基本信息及本文中使用的模型名称缩写。分析分为两部分,分别关注模型参数(静态)和模型在输入文本时的行为(动态)。除非另有说明,所有涉及相似度测量的实验均采用余弦相似度。
2.4 静态参数分析
从高层次来看,模型学习的知识编码在其参数中。因此,研究权重矩阵是检查模型的自然方式。论文研究以下参数之间的相关性:(i)MoE专家(以及Mistral的FFN),(ii)门嵌入,这是MoE的两个关键组成部分。
2.4.1专家的权重矩阵
MoE模型用专家替换标准transformer中的FFN。因此,根据Geva et al. (2020); Qiu et al. (2024),专家的投影矩阵可以视为键和值:Wdown的列向量表示可能的输出;Wup的行向量生成每个可能输出的权重;Wgate的行向量决定是否激活相应的神经元。因此,研究权重矩阵是理解专家行为的直接方式。为了从不同视角进行研究,论文同时分析矩阵和神经元层面。
表1:用于分析的模型基本信息。缩写用于全文
2.4.1.1 矩阵级
论文探讨了每个层中所有专家之间三个投影矩阵 的权重矩阵的相似性。相似性基于展平矩阵向量计算,并在图1中进行了说明。论文在所有图中将 ( p’ ) 表示为Mistral FFN,"SE"表示DeepSeek共享专家。请注意,不同模型的图表不共享相同的颜色条。
共性。三个矩阵的热图显示出类似的模式。由于权重矩阵较大,直接展平它们会得到高维向量。论文采用主成分分析(PCA)将展平向量转换为二维空间。结果图显示,Mixtral和DeepSeek在三个权重矩阵中的专家分布也大致相似。
Mixtral和Mistral。Mixtral专家(See)之间的余弦相似度大多介于0.2到0.4之间,而专家与Mistral FFN(Sef)之间的相似度约为0.6。然而,这些值在深层(第22至30层)倾向于较低。在某些层中可以观察到“暗十字”,并与PCA投影的二维空间中的离群点相对应,表明相应的专家与其他专家相对独立。有趣的是,这个十字在Expert 3中出现得最频繁,这表明该专家可能学习了一些特殊属性。值得注意的是,十字通常贯穿整个热图,包括FFN的最后一行。因此,当一个Mixtral专家与其他专家不同时,它与Mistral的FFN的相似度也较低。
DeepSeek 和 Grok。由于 DeepSeek 的共享专家被实现为一个隐藏层大小大于路由专家的单一 MLP 块,它们的扁平化向量无法直接比较,因此论文在此实验中省略了共享专家。图 1 展示了 DeepSeek 路由专家与 Grok 专家之间的相似度接近于零。尽管 Mixtral 的训练方法尚未公开,但已知 DeepSeek 和 Grok 是从零开始训练的。这一实验表明,Mixtral 可能采用了某种特殊方案进行训练,导致从零开始训练的专家多样性较低。
2.4.1.2 神经元级别
论文测量了矩阵级别上专家之间的相似性。然而,余弦相似度的计算与位置相关。假设两个专家的神经元相似但顺序不同,其权重矩阵的相似度将远低于预期。为解决这一问题,论文提出两种方法来研究神经元级别的关联性:平均化和重排序。平均化简单地对权重矩阵的行(对于 Wip 和 Weate)或列(对于 Waown)进行平均,然后计算跨专家的所得向量的相似度。
对于重排序,论文应用 Jonker-Volgenant 算法(Jonker and Volgenant, 1988),该算法通常用于解决线性分配问题,以找到使两个专家之间余弦相似度最大化的神经元最佳顺序。
此外,使用 PCA 在低维空间中投影神经元的结果可在附录 A.2 中找到。由于计算量庞大,论文仅选取了几个层进行重排序计算。请注意,矩阵是分别进行重排序的。论文测量重排序前后的索引序列之间的 Kendall’s τ 系数,当两个序列存在强烈一致性时,该值会增加。表 2 展示了重排序后的共同相似度增长以及所选层平均的 Kendall’s 系数 τ。Mixtral 神经元的顺序几乎不变(τ 值较大),因此相似度几乎未变。尽管 DeepSeek 和 Grok 在重排序后相似度大幅增长,但其总体值仍约为 1e-2。
2.4.2 门控嵌入
所选MoE模型中的门控机制实现为一个线性层。
图1:专家权重矩阵的矩阵级相似性热图。每一层包含三个热图,分别是门控和Vown。刻度数字表示专家索引
表2:专家神经元的重排序结果
门控是MoE(Mixture of Experts)除了专家之外的另一个主要组成部分,因此研究其属性对于更好地理解MoE的工作原理至关重要。此外,由于其嵌入矩阵中的每一行向量决定了相应的专家选择,因此嵌入矩阵与专家权重之间可能存在某种对应关系。
为了研究这一点,论文测量了门控嵌入向量之间的相似性。为了简化计算,论文将其与附录B中的平均热图(而非重排序结果)进行比较,并在附录C中详细介绍了定性分析。具体来说,论文发现,对于所有三个MoE模型,在某些层中,门控向量和Wate中的专家神经元的热图模式部分相似(即,两个热图中相同坐标处的值同时相对较高/较低)。
因此,论文进一步对其相似性值进行了定量分析。特别是,论文对配对的相似性数据集(X, Y)进行了线性回归分析,其中X和Y分别表示门控向量和权重矩阵Wup、Wgste、Waown的相似性。附录中的表3列出了每一层的皮尔逊相关系数(R)。如表3所示,门控向量与Wgale的相似性之间的相关性明显强于Mixtral和DeepSeek的相似性。Mixtral的R2在0.1和0.7之间波动,而DeepSeek的R2保持在0.4附近。此外,从表4中可以看出,Mixtral和DeepSeek的(X, Ygate)均显示出正相关,而Grok的(X, Ygate)从中间层(>25层)开始转为负相关。论文注意到,门控嵌入和Weae的功能相似:前者决定专家选择,而后者负责选择激活的神经元。因此,它们可能学习相似的知识以合理地执行选择操作,从而观察到相关性。
表3:皮尔逊相关系数平方的平均值在修复数据集上的表现
2.4.3 总结
论文总结了静态参数分析中的启发性观察结果:(1) Mixtral 可能包含具有特殊属性的专家。在图1中可以频繁发现暗十字标记。(2) DeepSeek 和 Grok 专家权重矩阵的相似度通常低于 Mixtral。DeepSeek 和 Grok 专家的矩阵级相似度通常为零,而 Mixtral 专家的相似度平均约为0.3。(3) 不同专家的权重在深层中相似度较低。这一点可以从图1中的 Mixtral 热图中观察到。(4) Wip、Waown 和 Wgate 在其相似度热图(图1)中显示出相似的模式。(5) 门嵌入和 Wgate 的相似度在某些情况下达到最高,此时嵌入对在所有三个模型中均取得最佳表现。
2.5 动态行为分析
之前的实验通过模型的参数来考察 MoE 模型,并未涉及任何输入。论文将文本序列输入到 MoE 模型中,以进一步研究它们在不同输入下的实际行为。具体来说,论文分析了专家和门的输出。
为此,需要进行两次前向传递。在第一次传递中,输入 x 被送入模型进行推理,并存储每一层的输出。然后,存储的第 i 层的隐藏状态成为第二次传递中第 (i-1) 层的输入,除了第一层仍然使用 w 作为输入。在第二次传递期间,论文修改门控机制以将输入路由到所有专家(即 Top-k = ALL),并记录它们的输出或中间状态以进行分析。采用了两种不同的输入,一种包含 6 到 7 个token,另一种从 WikiText 的测试集中提取,包含 1100 个token(确切数量取决于分词器)。
2.5.1 专家的输出
由于理想情况下,专家被训练为专门处理不同方面,自然而然地会质疑被选中和未被选中的专家输出之间的相似性和差异性。在此实验中,论文使用两种输入序列来测量专家输出特征向量之间的相关性。论文绘制了短序列中三个token的相似性热图(图 2)和长序列中所有token的平均热图(图 3)。由于长序列的相似性需要平均,论文采用角度相似性而不是余弦相似性进行测量,以便值范围从 0 到 1:
为了便于观察,平均相似性热图与专家权重矩阵的神经元级相似性图一起绘制。
Mixtral 和 Mistral。短序列的图表显示,选定专家的输出往往更加相似,这可能是因为它们的范数通常较大。总体相似度在深层(第22至27层)相对较低,而在最后两层中,许多值显著增长至大于0.8。此外,图中常见多个暗十字,而对应暗十字的专家与Mistral FFN(即最后一行的亮色)更为相似。对于长序列,平均热图的模式与神经元级相似度图相似,包括暗十字。相似度也随着层深的增加而降低,除了最后一层。此外,对于这两种输入,论文发现See > Ser。上述大多数观察结果与之前对静态参数的分析一致,这意味着在某些方面,测量权重的相似度等同于测量输出的平均相似度。
DeepSeek。对于短输入,大多数相似度接近于零,而最后一层的值显著较大。同样,门选定的专家之间的相似度可能更高,但这种差异出现的频率远低于Mixtral。长序列的平均相似度也趋近于零。此外,随着层深的增加(最后一层除外),图中“小矩形”相对浅色的数量减少,这意味着平均相似度逐渐降低。
Grok。令人惊讶的是,对于短序列中的所有标记,输出特征之间的相似性保持在一个较高水平,这表明专家们在行为方面彼此相似。然而,它们的权重矩阵的相似性大多为零。论文推测这是因为每个Grok专家的规模相对较大。每个专家都能学习到全面的知识,并在行为上相似,尽管参数不同。当对长输入的相似性进行平均时,某些结果平均热图显示出与Wgate图相似的模式。这种关系与Mixtral的观察一致。
2.5.2 专家输出和门控得分的范数
论文发现来自被选专家的输出往往更为相似。为了探究这一观察的可能原因,论文研究了输出与门控得分之间的关系,
图2:使用短序列的专家输出特征相似度热图。每个热图上方显示了每个token的前k个专家。刻度数字表示专家索引
图3:使用长序列的专家输出特征的平均相似性热图,与矩阵级别的相似性热图一同绘制。刻度数字代表专家索引
图4:专家的L2范数与短序列的门控得分。每个热图上方显示了每个token的top k专家。水平轴上的每个数字代表一个专家索引
在本实验中,论文利用短序列作为输入,探讨了专家的L2范数与门控决策之间的关系。计算得到的范数与门控得分如图4所示。
Mixtral。论文发现,门控选择的两位专家通常输出具有最高范数的特征向量,这表明范数可能是门控决策的关键因素之一。这一发现与Com-peteSMoE(Pham et al., 2024)中路由器的设计一致,后者根据专家的输出范数选择专家。这也可视为为何选择的Mixtral和DeepSeck专家输出结果趋向相似的解释。在附录D中,论文使用长输入重复此实验,统计结果进一步证实了“范数越高,得分越高”的观察。在图4中,论文还可以看到,分配给top-l专家的门控得分通常远高于其他专家,包括第二名。这表明门控在学习过程中增强了决策的置信度。另一方面,层级越深,范数越大,这与标准模型中的增长趋势相似(Shleifer et al., 2021)。
DeepSeek。与观察到的混合专家(Mixtral experts)情况相反,门决策似乎不太明显依赖于深寻专家的输出范数。然而,前l个专家的得分往往远高于其余候选者。范数的大小与深度成正比,但增量小于混合专家。在最后一层,范数的方差变得更大。
Grok。尽管前l个专家的得分高于其他专家,但并未观察到范数与门得分之间的对应关系。可能的原因之一是GeLU的激活率相对较低,导致门决策对范数的依赖性较弱。此外,与混合专家和深寻不同,范数的大小在深度上几乎没有变化,某些范数值甚至可能小于1,这在其他两个模型中较为罕见。
2.5.3专家的中间状态
图 5:Mixtral 专家的中间状态值。每个热图顶部显示了前 k 个专家。垂直轴上的每个数字代表一个专家索引,而水平轴表示神经元数量
给定输入 w,专家的中间状态指的是 act(Wgatet) 的输出。这些中间向量控制神经元的激活,因此论文简单地记录它们以供分析。使用短序列作为输入。Mixtral、Mistral 和 DeepSeek 使用 SiLU 作为激活函数,而 Grok 采用 GeLU。图 5 描绘了向量的大小。由于页面限制,论文仅绘制了 Mixtral 对三个标记的结果。
共性。每个图中都有一些水平线,这意味着存在一个“离群”专家,其激活值最高或最低。然而,这种现象与门控决策之间没有明确的关系。
Mixtral 和 Mistral。对于单个标记,论文发现每个专家在 SiLU 激活函数后平均有 99.696 个元素的绝对激活值大于 0.001。如此高的比例表明,专家中的绝大多数神经元都被激活了。在图 5 中,通常会发现一些贯穿所有专家的垂直线,这意味着不同专家的 Wagae 矩阵为具有相同索引的神经元分配了相似的激活值。此外,中间状态的大小随着层深的增加而增长。
DeepSeek。平均而言,每位专家在SiLU激活后,99.7%神经元的绝对激活值超过0.001。DeepSeek模型中垂直线条极为罕见。同样地,随着层级的加深,中间状态向量中的元素数值逐渐增大。
Grok。采用GeLU作为激活函数,每名Grok专家中仅有25.3%的神经元达到绝对激活值大于0.001。其激活值普遍小于Mixtral和DeepSeek。Li et al. (2022); Song et al. (2024a) 提出,这种差异主要源自不同的激活函数。有趣的是,Song et al. (2024b) 进一步利用SMoE中专家的稀疏性,在激活相同数量参数的情况下实现了SOTA性能。
2.5.4 总结
动态行为的观察结果归纳如下:(1) Mixtral和DeepSeek专家在深层/最后一层的输出较少/更为相似。这一点可从短输入(图2)和长输入(图3)的热图中观察到。(2) 专家输出的平均热图模式与神经元级别相似性图(图3)相似,表明在某些方面,权重的相似性度量等同于输出平均相似性的度量。(3) Grok专家的输出高度相似(图2),这可能与其较大的规模有关。(4) 对于Mixtral和DeepSeek,输出特征向量范数较大的专家更有可能获得较高的门控分数,如图4所示。论文在附录的图9中进一步验证了这一观察结果。(5) 对于Mixtral,位于相同索引位置的不同专家神经元具有相似的激活值。在图5的Mixtral热图中,可以发现一些垂直线条。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。