专家链(CoE):大幅提升LLM信息处理能力的新架构

专家链(CoE)架构通过专家间串行通信,显著提升LLM信息处理能力,资源效率更高,实现“免费午餐”加速。

原文标题:为DeepSeek MoE模型带来「免费午餐」加速,专家链可大幅提升LLM的信息处理能力

原文作者:机器之心

冷月清谈:

本文介绍了一种名为专家链(CoE)的新型神经网络架构,该架构通过在单层内实现专家间串行通信,显著提升了大型语言模型(LLM)的信息处理能力。

CoE 解决了现有专家混合模型(MoE)的两个主要局限性:专家间独立处理和内存效率低下。CoE 引入迭代机制,使专家能够在其他专家的输出之上处理 token,从而实现专家间的“沟通”。

实验结果表明,CoE 在多个方面超越了先前的 MoE 模型:

1. **性能提升:**CoE 两次迭代在 Math 任务上将验证 loss 从 1.20 降至 1.12。
2. **扩展策略优势:**CoE 中扩展两次迭代的性能相当于将专家选择数量扩大 3 倍,并优于扩展模型层数。
3. **资源效率优化:**在相似表现下减少了 17.6-42% 的内存需求。
4. **专家组合自由度提升:**提升了 823 倍。
5. **专家使用效率增强:**促进了专家间的直接通信和更好的专家分化。

CoE 通过重构信息在模型中的流动方式,以更少的计算开销实现了更好的结果,这被称为“免费午餐”加速。这种效果可能来自于专家选择自由度的提高、串行处理和专家通信的统一以及专家分化的促进。

怜星夜思:

1、CoE 中提到的“免费午餐”加速,具体是指哪些方面的提升?这种提升的背后机制是什么?
2、CoE 的迭代机制如何促进专家分化?这种分化对模型性能的提升有何作用?
3、CoE 与其他提升 LLM 性能的方法(如增加模型层数、扩大专家选择数量)相比,有哪些优势和劣势?

原文内容

机器之心授权发布
作者:王子涵

我们都知道,DeepSeek-R1 的训练过程使用了一种名为专家混合模型(Mixture-of-Experts, MoE)的技术,而当前的 MoE 技术依然还有显著的优化空间。

近日,美国西北大学计算机科学博士生王子涵(Zihan Wang)等人在这个方向上取得了突破,提出了一种名为专家链(CoE的技术。实验表明,CoE 在性能、扩展策略、资源效率和专家使用效率等多个方面都显著超越先前的 MoE 模型。


目前,核心研究者王子涵已经撰写并发布 CoE 的中英文博客并已经在 GitHub 开源相关代码,他也在博客中表示研究论文将在近期发布。以下为相关链接:

  • 代码:https://github.com/ZihanWang314/coe
  • 中文报告:https://sandy-server-87f.notion.site/1ab9bb750b79801bbfebf01ae9a77b3f
  • 英文报告:https://sandy-server-87f.notion.site/Chain-of-Experts-Unlocking-the-Communication-Power-of-MoEs-1ab9bb750b7980048d43e6aab3537cea

机器之心授权转载了其中文报告。

作者简介:王子涵,美国西北大学计算机科学博士一年级学生,导师为 Manling Li。他本科毕业于中国人民大学高瓴人工智能学院,并曾参与过 DeepSeek-V2 模型的开发工作。

引言

我们提出专家链 (Chain-of-Experts,CoE) 架构,一种通过在单层内实现专家间串行通信的创新方法,从根本上改变稀疏神经网络的信息处理方式。

MoE 设计中存在专家间独立处理以及显存需求高的问题。与先前 MoE 独立处理每个 token 不同,CoE 引入迭代机制使专家能够 "沟通",在其他专家的输出之上处理 token。

实验证明 CoE 在多个方面显著超越先前 MoE 模型。性能显著提升,CoE 两次迭代在 Math 任务上将验证 loss 从 1.20 降至 1.12;扩展策略优势,CoE 中扩展两次迭代性能相当于将专家选择数量扩大 3 倍,并优于扩展模型层数;资源效率优化,相似表现下减少了 17.6-42% 的内存需求;专家组合自由度提升了 823 倍;专家使用效率增强,促进了专家间的直接通信和更好的专家分化。这些优势构成了一种罕见的 "免费午餐" 效应,为大规模语言模型的高效扩展开辟了新途径。

Chain-of-Experts:释放 MoE 专家的沟通潜能

大型语言模型(LLMs)不断推动人工智能可能性的边界,但高效扩展这些模型仍然是一个重大挑战。专家混合(Mixture of Experts,MoE)模型作为一种有前景的方法出现,通过每个 token 仅激活部分参数来解决这一挑战,理论上实现更高效的扩展。然而,MoE 模型存在以下局限性:

  1. 独立标记处理:MoE 模型通常并行独立处理 token,专家之间没有沟通。
  2. 内存效率低下:由于具有稀疏激活模式,MoE 整体参数数量较大,需要大量内存资源。

Chain-of-Experts (CoE) 介绍

我们的研究引入了 Chain-of-Experts (CoE),这是一种改变稀疏神经网络处理信息方式的新方法。


Chain-of-Experts 的形式化表述

CoE 的关键创新在于建立沟通性处理机制,超越了先前 MoE 模型中的独立标准处理。我们如何实现这一点?通过在单个层的迭代中将 MoE 输出反馈为多次迭代的输入。

1、先前 MoE 的输出表示

在先前的 MoE 层中,不考虑共享专家,输出可以表示为:


其中 x 是输入,图片 是门控值(路由函数分配给专家图片 的权重),K 是每个 token 选择的专家数量,N 是每层专家总数,图片 是专家 i 的路由参数。
考虑共享专家时,路由函数计算不变,MoE 的输出变为

图片


其中 M 是共享专家的总数,图片是共享专家。

2、CoE 的迭代处理机制

在 CoE 中,我们引入迭代处理机制,可以形式化表示为:


其中 图片  是第 t 次迭代的中间表示,图片 是第 t 次迭代中专家 i 的门控值,C 是迭代的总次数,图片是第 i 个专家,图片 是残差连接指示变量,当使用内残差时图片,否则为0。

考虑到共享专家,可以形式化表示为:


3、门控机制详细说明

参考 DeepSeek-V2 的实现,我们定义门控机制为:


其中,我们为每次迭代使用独立门控,采用不同的路由函数,K/C 是每次迭代选择的专家数量(以保持总计算量不变),图片 是第 t 次迭代中专家 i 的路由参数

方法分析

1、CoE 的优势

这种迭代式专家处理方法具有两个关键优势:

  1. 每次迭代的专家选择由前一次迭代的输出决定,形成专家间的依赖关系和更动态的路由机制
  2. 串行信息可以在迭代过程中累积,实现专家间的直接通信

通过这种方式,CoE 能够在保持计算效率的同时,显著提高模型的表现,特别是在复杂的场景中(如实验采用的数学任务)。

2、路由函数如何影响决策过程

在 CoE 模型中,路由函数图片对决策过程的影响是多层次的:

  1. 动态专家选择:在每次迭代 t 中, 图片基于前一次迭代的输出 图片 来决定当前迭代中哪些专家应该被激活以及它们的权重。
  2. 信息流控制:路由函数控制了信息如何在专家网络中流动,通过在每次迭代中重新评估路由决策,确保信息能够流向最相关的专家。
  3. 适应性处理:随着迭代的进行,路由函数可以调整其路由策略,根据先前迭代的处理结果来优化后续专家的选择。

实验结果与发现

我们采取 DeepSeekV2 结构,在 500M 级别 MoE 下使用 32K Tok 的 batch size 训练 1000 步,完成了一系列实验来验证 CoE 的有效性。单次训练使用一张 H100 约为 30 分钟,使用一张 4090 约为 2 小时。更多实验细节见后。

我们的实验方法命名为图片,例如 CoE-2 (4/64) 代表使用 CoE,循环次数为 2,每次选取 4 个专家,每层一共有 64 个专家。我们在所有实验中设置共享专家的数量为 1,在迭代次数为 2 的情况下,这会提高 5% 左右的计算需求。

效果优势

1、 在算力预算与显存预算相似时,CoE 效果明显更优。

在 Math 任务上进行预训练 (步数 1000),CoE-2 (4/64) 的效果明显优于 MoE (8/64),在相似的算力和内存要求下,将 loss 从 1.20 下降至 1.12,且有更陡峭的下降趋势。


我们进一步在 “dense”(专家 8 选 8)模型上也测试了 CoE,证明了串行处理在 Sparse MoE 上相比 Dense 模型更有效,CoE 是 (Fine-Grained) Sparse MoE 的专属方法。如图所示,采取 2 次序列化处理对 Dense 模型性能没有显著益处。


资源效率

1、在计算量和效果相似的情况下,CoE 可以减小对显存的要求。

例如,CoE-2 (4/48) 的效果与 MoE (8/64) 相近,但使用更少的总专家数量。

如下图所示,loss match 的情况下减小了 17.6% 的显存需求。


(注,我们记录了 GPU memory allocated,与 micro_bsz=1 的时候理论最小显存相关,实际上因为实验中使用了较大的 batch size,使用的显存会更大)

2、在预算相似的情况下,CoE 是更好的计算扩展方式。

我们对比了 CoE 和其他计算扩展方法:拓展模型层数与拓展专家选择个数。

a) 拓展迭代次数 (CoE) > 拓展模型层数

CoE-2 (8/64),4 层 vs MoE (8/64),8 层 / 12 层,8 层 MoE 和 CoE 效果几乎相同,但是对 Memory 要求高 72%,即 CoE 相对节省了 42% memory。


b) 拓展迭代次数 (CoE)> 拓展专家选择个数

CoE-2 (8/64),4 层 vs MoE (16/64) 或 MoE (24/64),4 层,Memory 和 Compute 要求一致,CoE 效果更好。


3、架构设计的关键发现

a. 独立门控机制

独立门控机制可以提升模型性能,能从一定程度上解释专家的分化,表明同一专家在不同迭代阶段处理不同类型的信息。

我们实现了共享门控的 CoE 变种,使用共享的图片 而非 图片,具体而言:
    

发现效果差于 CoE,甚至差于没有拓展规模的 MoE,如下图所示,体现独立门控机制的重要性。
    
b. 残差连接

内残差连接 (inner residual) 比外残差连接 (outer residual) 更有效,这表明每组专家对 token 的串行处理实际上是在提高模型的有效深度,每个专家的处理都在更好地学习残差。

我们实现了外残差连接的变种,将 图片 设置为 0,层内迭代处理结束后再连接残差,具体而言:


发现效果差于 CoE 且与 MoE 相当,如下图所示,体现内残差连接的重要性。


理论观察:免费午餐效应

最显著的是,CoE 或许提供了我们称之为 "免费午餐" 加速。通过重构信息在模型中的流动方式,与以往 MoE 方法相比,我们以更少的计算开销实现了更好的结果。我们认为这种效果可能来自于三个因素:

1. 专家选择的自由度提高。图片,选择的可能性变多

2. CoE 统一了串行处理 (sequential processing) 和专家通信 (expert communication) 两个概念:    
  1. 不同专家之间可以串行处理,提高了 Transformer 的有效深度。两次前向传播送到不同专家时,增强了专家的串行特征 — 处理同一个 token 的路由专家数相同,但是是串行地处理。    
  2. 一个专家在迭代过程中有机会处理一个 token 多次,可能有助于促进专家的分化:一个专家与其他专家合作处理后,可以在后续迭代对 token 进行补充处理。

实验细节

1、数据集

实验使用的数据集为 MetaMathQA (链接:https://huggingface.co/datasets/meta-math/MetaMathQA ),该数据为从 GSM8K 和 MATH 数据集中增强而来,不含网络获取的通用数据。

2、模型配置

我们基于 DeepSeek-V2-Lite 架构,设置总参数为 544MB(不含 embedding)的模型,实现了 CoE 方法,主要配置参数如下:

  • 基础模型参数:隐藏层大小:1024,隐藏层数量:4,注意力头数:8
  • MoE 相关参数:路由专家总数:63,共享专家数量:1,每个 token 选择的专家数量:8 (routed) + 1 (Shared),MoE 中间层大小:704,MoE 层频率:1 (每层都是 MoE 层)
  • CoE 特有参数:迭代次数:2,残差连接方式:内部连接,独立门控机制:开启 (每次迭代使用不同的路由函数)

3、训练设置

  • 批量大小 (batch size):64,序列长度:512,训练步数:1000,优化器:AdamW,学习率:3e-4,学习率调度:10% Warmup,betas: [0.9, 0.95]   weight_decay: 0.01   warmup_steps_ratio: 0.1   clip_grad: 1.0。

4、系统设置

训练采取改版后的 veRL 架构(微调了原版实现),代码参考 https://github.com/ZihanWang314/coe,实验都在多个单张 H100 的服务器上进行。每组实验在 1 小时以内完成。

结论

Chain-of-Experts 代表了高效、高性能语言模型发展的重要一步。通过在稀疏神经网络中实现沟通处理,CoE 解决了当前 MoE 架构中的基本限制,同时以更少的计算需求提供优越的性能。

这项研究为高效扩展语言模型开辟了新途径,可能使先进的人工智能能力更加普惠和可持续。

未来工作

1. 扩展法则研究:提高模型尺寸、预训练步数、批量大小,测试不同数据集等。目前使用数学数据集是因为其推理复杂性具有挑战性,但计划在通用数据集上进行测试。

2. 进一步评估:

  • 测试模型的实际任务表现而非仅限于评估损失
  • 扩展循环次数:目前只测试了循环次数 = 2,探索 3、4 次等是否有效
  • 进一步评估共享专家对 CoE 的作用

3. 架构创新:

  • 基于循环告诉我们一个专家可以使用多次的原理,探索是否可以实现所有层共享专家的 MoE Transformer,并分层选择专家
  • 例如,DeepSeekV2Lite 有 27 层,每层 64 个专家,目前每层选 6 个路由专家有约 7×10⁷ 种组合,而如果每一层过 MoE 时,都从全部 27×64 个专家中选择,一共将有 3×10¹⁶ 种可能的组合

局限性

  1. 虽然理论上 TFLOPs 保持一致,但实际训练时间会略微增加,因为单次迭代选择更少专家减小了矩阵乘法并行度。未来工作可能需要进行底层适配。
  2. 该方法需要从头预训练而不能简单地适配现有模型,限制了大众研究者的应用。
  3. 模型更大时,多节点 EP 通信开销也需要纳入考虑;当前架构基于 DeepSeekV2,与 V3 的模型架构兼容,但 V3 中实现的 MTP、FP8 等训练架构尚未测试,兼容性未知。

这篇博客文章基于我们关于 Chain-of-Experts (CoE) 的研究论文。有关更多技术细节和实验结果,请关注我们即将发布的完整论文。

贡献者

Zihan Wang*
Rui Pan*
Lu Yin*
Manling Li*
Shiwei Liu*

* 共同作者。ZW 和 SL 发起了项目。LY 探索了 MoE 内层处理机制。ZW 提出了串行专家和 CoE 概念,实现了代码并进行了实验。SL 提出了独立门控机制。RP 探索了层间重要性并贡献了数据集。ML 进行了实验指导并提供了云计算服务。ZW 和 ML 准备了报告和可视化材料。

参考文献
https://arxiv.org/pdf/2309.08520 MoE 缩放法则
https://arxiv.org/pdf/2101.03961 Switch Transformer
https://arxiv.org/pdf/2502.05171 循环深度
https://arxiv.org/pdf/1909.11942 ALBERT (密集模型上的循环)
https://arxiv.org/abs/2401.06066 DeepSeekMoE
https://arxiv.org/abs/2405.04434 DeepSeek V2
https://arxiv.org/abs/2412.19437 DeepSeek V3
https://arxiv.org/abs/1512.03385 ResNet

© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]


关于“免费午餐”加速,我的理解是,CoE 通过引入专家间的沟通机制,在没有显著增加计算量的情况下,实现了模型性能的提升。这就像我们团队合作,大家分工合作,效率更高,而不是单打独斗。背后的机制,我感觉文章里提到的专家选择自由度、串行处理和专家分化都挺关键的。

我认为 CoE 的迭代机制促进了专家分化,是因为在每次迭代中,不同的专家会根据前一次迭代的结果选择性地处理信息。这就像一个团队在合作完成一个项目,每个人负责不同的部分,随着项目的进行,每个人在各自负责的部分会越来越专业。这种分化使得每个专家能够更专注于处理特定类型的信息,从而提高了模型的整体效率和性能。

CoE 的迭代机制使得专家在处理信息时能够相互协作和补充,从而促进了专家分化。这种分化就像一个团队中的不同成员各自精通不同的领域,可以共同完成更复杂的任务。分工越明确,效率越高,模型的整体性能也就能得到提升。

我觉得 CoE 的优势在于它在提升性能的同时,对资源的消耗更小,而且它还提升了专家组合的自由度。劣势可能在于它的实现相对复杂一些,需要对模型结构进行较大的改动。

CoE 的“免费午餐”加速指的是在计算成本不变甚至更低的情况下,实现模型性能的提升。它不像传统的模型扩展方法那样需要增加大量的计算资源。这种加速的机制主要在于 CoE 改变了信息在模型中的流动方式,通过专家间的串行通信和动态路由,使得模型能够更有效地利用计算资源,并在更少的迭代次数下达到更好的效果。

我觉得“免费午餐”是指在计算资源消耗基本不变的情况下,CoE 的性能却比 MoE 有了明显的提升。这就像你用同样的时间和精力,却学到了更多知识。其机制在于 CoE 通过迭代和专家间的沟通,让信息流动更有效率,从而更好地利用了现有的计算资源。

关于专家分化,我理解的是,CoE 的迭代机制让每个专家在不同的迭代阶段处理不同类型的信息,久而久之,每个专家就更专注于特定类型的任务,就像我们小组每个人都成了某个领域的专家。这种分化能让模型处理信息更高效,从而提升性能。

CoE 相比增加模型层数和扩大专家选择数量,最大的优势在于资源效率更高,同样的性能下,CoE 需要的内存更少。劣势可能是需要从头训练模型,不像简单的扩展模型参数那样方便。

CoE 的优势在于它能够在不显著增加计算量和内存需求的情况下提升模型性能,并且能够促进专家分化,提高模型的泛化能力。相比之下,增加模型层数和扩大专家选择数量虽然也能提升性能,但往往会带来计算成本和内存消耗的显著增加。CoE 的劣势在于它需要重新训练模型,而增加模型层数和扩大专家选择数量则可以在现有模型的基础上进行微调。