当前位置: 首页 > news >正文

【文献阅读】Mixture of Lookup Experts

ICML2025

摘要

专家混合模型(MoE)在推理过程中仅激活部分专家,使得模型即使在参数规模扩大时仍能保持较低的推理 FLOPs 和延迟。然而,由于 MoE 动态选择专家,所有专家均需加载到 VRAM 中。其庞大的参数规模仍限制了部署,而仅在需要时将专家加载到 VRAM 的卸载策略会显著增加推理延迟。为解决这一问题,我们提出 Lookup 专家混合模型(MoLE),这是一种在通信和 VRAM 使用方面均高效的新型 MoE 架构。在 MoLE 中,专家在训练期间为前馈网络(FFNs),以嵌入层的输出作为输入。推理前,这些专家可重新参数化为基于输入 id 检索专家输出的查找表(LUTs),并卸载到存储设备。因此,推理期间无需执行专家计算,而是直接根据输入 id 检索专家计算结果并加载到 VRAM,从而通信开销可忽略不计。实验表明,在相同 FLOPs 和 VRAM 使用情况下,MoLE 的推理速度与稠密模型相当,显著快于采用专家卸载的 MoE,同时性能与 MoE 持平。代码:GitHub - JieShibo/MoLE: [ICML 2025 Spotlight] Mixture of Lookup Experts

1. 引言

缩放定律表明,在有足够训练数据的情况下,大语言模型(LLMs)的性能随模型规模增大而提升(Kaplan 等人,2020)。然而,更大的 LLM 也会导致推理速度变慢,从而降低用户体验。因此,LLM 的架构越来越关注专家混合模型(MoE)(Jiang 等人,2024;Dai 等人,2024)。MoE 模型使用多个前馈网络(FFNs)作为专家,并采用路由器确定需要激活的专家子集,而非激活整个模型。这使得模型能够在保持大量参数的同时保持较低的计算成本。

尽管 MoE 降低了计算成本,但参数数量并未减少。这意味着推理期间的 VRAM 需求仍然过高。例如,尽管 Mixtral-8×7B(Jiang 等人,2024)模型一次仅激活 130 亿参数,但其总参数数达 460 亿,无法以 FP16 精度加载到单个 80GB 的 A100 GPU 中。现有方法(Eliseev & Mazur,2023;Xue 等人,2024;Shen 等人,2022)通过将专家卸载到更大的存储设备(如 CPU 内存、磁盘或云存储)并在每个推理步骤按需加载所选专家来减少 VRAM 使用。然而,这种方法存在两个缺点:

i)由于专家选择由路由器动态决定,每个推理步骤必须将不同的专家加载到 VRAM 中。大量参数的频繁传输会显著增加推理延迟,如图 1 所示。

ii)由于单个步骤内不同样本选择不同专家,仅加载部分专家可能无法满足批量生成的需求。

图1. 在相同4.1亿激活参数的情况下,MoE在性能上优于稠密模型,但会带来显著的VRAM使用量。如果卸载专家推理延迟将会增加。我们的MoLE在不增加模型VRAM使用量或解码延迟的情况下,保持了具有竞争力的性能。 

为解决上述问题,我们提出 Lookup 专家混合模型(MoLE),一种新型 LLM 架构。MoLE 在训练和推理阶段具有不同的结构。训练期间,MoLE 与 MoE 类似,包含路由器和多个专家。但与 MoE 中专家以中间特征为输入不同,MoLE 的专家以嵌入标记(即嵌入层的输出)为输入。此外,MoLE 允许所有专家同时激活。训练后,MoLE 不直接用于推理,而是经历一系列重参数化。由于嵌入层的输出对于特定输入 id 是固定的,专家的输入仅有有限选择,等于模型的词汇量大小。因此,对于嵌入层中的每个标记,我们预计算所有专家对应的输出,创建替换原始专家的查找表(LUTs)。

推理期间,MoLE 展现出以下优势:

  • 免计算专家:专家从前馈网络重参数化为查找表,无需任何计算。每个专家仅需一次查找操作。
  • 低 VRAM 开销和通信延迟:尽管查找表的大小远大于模型本身,但其可完全卸载到存储设备。推理期间,由于每个专家的输出与输入标记数量相同,将查找结果加载到 VRAM 所需的通信量可忽略不计,从而避免推理延迟增加。
  • 批量生成友好:传统专家卸载方法在批量生成期间会引入额外的 VRAM 使用和通信延迟,因为批次中的不同样本可能选择不同专家。MoLE 仅传输预计算的专家输出,使其通信开销即使在批量生成时仍可忽略不计。

通过大量实验,我们在 1.6 亿、4.1 亿和 10 亿参数规模下验证了 MoLE 的有效性。如图 1 所示,在计算成本和 VRAM 使用相当的情况下,MoLE 显著优于稠密模型,同时保持相同的推理速度。与采用专家卸载的 MoE 相比,MoLE 实现了更好的性能和显著更快的推理速度。

2. 相关工作

2.1 专家混合模型

MoE 的概念最初由 Jacobs 等人(1991);Jordan & Jacobs(1994)提出,并通过后续研究(Collobert 等人,2002;Rasmussen & Ghahramani,2001;Shahbaba & Neal,2009;Eigen 等人,2014;Theis & Bethge,2015;Deisenroth & Ng,2015;Aljundi 等人,2017;Shazeer 等人,2017)得到广泛探索和发展。

MoE 假设模型的不同部分(即专家)专注于不同任务或封装不同类型的知识。在此范式中,仅激活与给定输入相关的专家,使模型能够扩展容量,同时保持计算成本可控,并充分利用多个专家的专业知识

随着 LLM 规模的扩大,降低计算开销成为关键焦点,这导致其在基于 Transformer 的 LLM 中的应用(Lepikhin 等人,2021),使 MoE 成为广泛使用的架构。最近,一系列工业规模的大语言模型已发布,包括 Mixtral(Jiang 等人,2024)和 DeepSeek-MoE(Dai 等人,2024)。

2.2 专家卸载

卸载技术通常在 GPU 内存不足时将部分模型参数转移到 CPU 内存或磁盘。然而,当前主流卸载框架(如 Zero-Infinity(Rajbhandari 等人,2021))专为稠密 LLM 设计,按需逐层加载模型参数。这种方法忽略了 MoE 模型的稀疏激活特性,导致不必要地加载未激活的专家。

在此基础上,一些研究提出了专家卸载,这是一种专为 MoE 模型稀疏激活特性设计的参数卸载形式(Eliseev & Mazur,2023;Xue 等人,2024)。这些方法将非专家权重和部分专家缓存存储在 VRAM 中,而将其余专家卸载到 CPU 内存或磁盘并按需加载。

尽管有效,现有专家卸载技术仍存在高延迟问题。后续研究包括优化预取技术和缓存替换策略以加速推理速度(Shen 等人,2022),设计更适合预取的 MoE 架构(Hwang 等人,2024),或采用其他模型压缩技术减少预取延迟(Yi 等人,2023)。

3. Lookup 专家混合模型

3.1 预备知识

首先,我们简要介绍 MoE 的结构及其在推理期间面临的挑战。

对于 MoE,每个专家通常为 FFN 模块。如图 2(左)所示,MoE 层包含 N 个经路由的专家,表示为\(\{FFN_j\}_{j=1}^N\),以及一个线性路由器,表示为\(\{r_j\}_{j=1}^N\)。某些模型可能还引入始终激活的共享专家 FFN_shared。

给定输入标记\(h \in \mathbb{R}^d\),MoE 层的输出标记\(h' \in \mathbb{R}^d\)计算如下:\(G = \text{ArgTopK}(\{h \cdot r_j\}_{j=1}^N)\)\(\{g_j\}_{j \in G} = \text{SoftMax}(\{h \cdot r_j\}_{j \in G})\)\(h' = \sum_{j \in G} (g_j \cdot FFN_j(h)) + FFN_{\text{shared}}(h) + h\) 其中,G 表示激活专家的索引,\(g_i\)表示第 i 个专家的门控值。

图2. MoLE示意图。在训练阶段,MoLE与MoE在两个关键结构方面存在差异:\(i\) MoLE中的路由专家以嵌入标记作为输入;\(ii\) MoLE中的所有专家均被激活。在推理阶段,MoLE中的路由专家被重参数化为零计算、卸载的查找表(LUTs)。为简化图示,注意力层的归一化层和残差连接已省略。 

MoE 的计算效率在于,在公式(3)中仅涉及 k 个经路由的专家。然而,在公式(1)完成前,无法确定需要参与的专家。这意味着要么需要在 VRAM 中存储所有专家,要么在计算完公式(1)后临时将所需的 k 个专家加载到 VRAM 中。

然而,这两种解决方案均存在部署挑战。以 Mixtral-8×7B 为例,其包含 32 个 MoE 层,每层 8 个专家,但每个标记仅激活 2 个专家。尽管每个标记仅激活 130 亿参数,总参数数达 460 亿,以 FP16 精度部署至少需要 92GB VRAM。

若选择临时加载,每个专家大小为 1.76 亿,单个解码步骤加载所需专家需传输高达 113 亿参数。若卸载到 CPU 内存,使用 PCIe 4.0×16 的 A100 GPU 每步仍会产生 0.7 秒的传输延迟。卸载到磁盘则会导致每步超过 10 秒的不可接受延迟。

更重要的是,由于专家选择由路由器动态决定,当批量大小 > 1 时,不同样本选择的专家极可能不同。这需要将所有选定专家(批量大小较大时可能为所有专家)加载到 VRAM 中,不仅增加 VRAM 使用,还进一步加剧通信延迟。

专家需要加载到 VRAM 的原因在于它们参与依赖 GPU 的计算。换言之,若专家无需计算,则无需加载,从而避免显著的通信开销。为解决这一问题,我们引入 MoLE,其专家在推理中可重参数化为免计算的 LUTs

3.2 训练阶段

如图 2 所示,训练期间,MoLE 与 MoE 结构类似,包含 N 个经路由的专家\(\{FFN_j\}_{j=1}^N\)和线性路由器\(\{r_j\}_{j=1}^N\)。具体而言,MoLE 还包含共享专家 FFN_shared,其对任何输入始终激活,且不接受路由器的加权。

由于专家在训练后将转换为 LUTs,MoLE 与 MoE 的区别如下:首先,LUT 免计算,无需稀疏激活以降低计算成本,因此 MoLE 激活所有专家,而非仅前 k 个专家。路由器的计算为:\(\{g_j\}_{j=1}^N = \text{SoftMax}(\{h \cdot r_i\}_{i=1}^N)\)

其次,由于 LUT 本质上是有限输入-输出对的映射,将专家重参数化为 LUT 的关键在于确保其输入仅有有限可能。为此,MoLE 使用嵌入层的输出(即嵌入标记)作为专家的输入。训练后,嵌入层仅与输入 id 相关,意味着专家的输入限于有限集合

该层的计算为:\(h' = \sum_{j=1}^N (g_j \cdot FFN_j(e)) + FFN_{\text{shared}}(h) + h\) 其中,\(e = \text{Embedding}(i) \in \mathbb{R}^d\)为嵌入标记,i 表示输入 id。

所有专家在训练期间均被激活接收梯度,因此无需添加任何辅助损失以防止崩溃或维持训练稳定性。与稠密模型一样,MoLE 仅使用语言建模的交叉熵损失进行训练。

3.3 推理阶段

训练后,MoLE 可像其他 LLM 一样直接用于推理。但为进一步降低 VRAM 开销,可对专家进行重参数化。对于每个可能的输入 id i,预计算专家 FFN_j 的输出:\(v_j^i = FFN_j(\text{Embedding}(i)) \in \mathbb{R}^d\)

实际中,仅需以嵌入层权重作为 FFN_j 的输入进行一次前向传播,即可获得所有 i 的\(v_j^i\)。第 l 层的 LUT 项可表示为:\(\text{LUT}_l = \{\{v_j^i\}_{j=1}^N\}_{i=1}^{|\mathcal{V}|}\) 其中,\(|\mathcal{V}|\)表示词汇量大小。

重参数化后,LUT 卸载到存储设备,MoLE 层的计算可表示为:\(h' = \sum_{j=1}^N (g_j \cdot v_j^i) + FFN_{\text{shared}}(h) + h\)

MoLE 中 LUT 的输入为输入 id,即不包含上下文信息。这是确保专家可重参数化的权衡,但并不意味着专家层不贡献上下文相关知识。

首先,路由器和共享专家仍以中间特征为输入,意味着它们可访问上下文信息。其次,专家层的输出是后续注意力层输入的一部分,使专家能够影响后续注意力的行为。这使专家能够调整模型处理不同上下文中相同单词的方式,从而仍增强模型能力。

3.4 复杂度分析

考虑以基于 MLP 的 FFNs 为专家的 MoE 层。设经路由专家的隐藏层维度为\(D_r\),共享专家的隐藏层维度为\(D_s\)。当单个标记作为输入时,该 MoE 层的 FLOPs 可计算为:\(\text{FLOPs}_{\text{MoE}} = 4d(kD_r + D_s)\) 其中忽略了路由器和归一化层。

为节省 VRAM,假设所有经路由专家均被卸载,则卸载的参数数量为:\(\text{OffParam}_{\text{MoE}} = 2dND_r\)

在最坏情况下,推理期间需要将当前标记路由到的 k 个专家加载到 VRAM 中,每步加载的参数数量为:\(\text{LoadParam}_{\text{MoE}} = 2dkD_r\)

对于 MoLE,由于专家转换为免计算的 LUTs,其 FLOPs 可计算为:\(\text{FLOPs}_{\text{MoLE}} = 4dD_s\)

卸载的 LUT 中包含的参数数量为:\(\text{OffParam}_{\text{MoLE}} = dN|\mathcal{V}|\)

每个推理步骤中,仅需将公式(8)中的所有\(v_j^i\)加载到 VRAM,因此加载的参数数量仅为:\(\text{LoadParam}_{\text{MoLE}} = dN\)

我们在表 1 中总结了所有这些比较。由于\(|\mathcal{V}|\)通常为数万量级(例如,Mixtral 的\(|\mathcal{V}|=3.2万\)(Jiang 等人,2024),Pythia 的\(|\mathcal{V}|=5万\)(Biderman 等人,2023)),且\(D_r\)根据模型规模从数千到数万不等,MoE 和 MoLE 的卸载参数数量不会相差一个数量级。然而,MoLE 中每个标记加载的参数数量仅为 MoE 中每个标记加载参数数量的一小部分 —— 通常小数百甚至数千倍。

4. 实验

4.1 实验设置

模型架构。如表 2 所示,我们实现了激活参数计数为 1.6 亿、4.1 亿和 10 亿的模型。对于稠密模型,我们基本遵循 Pythia(Biderman 等人,2023)的设置。

对于 MoE 模型,我们采用类似 Mixtral 的配置,无共享专家并激活前 2 个经路由专家,因为 Muennighoff 等人(2024)建议共享专家会导致性能下降。

为确保激活参数数量与稠密模型相同,MoE FFNs 的隐藏维度设置为稠密模型 FFNs 隐藏维度的一半。

对于 MoLE 模型,由于经路由专家在推理期间无需计算,我们使用与稠密模型 FFNs 相同的 FFNs 作为共享专家,以保持与稠密模型相同的 FLOPs。

对于经路由专家,由于其隐藏维度在推理期间不影响模型架构,为简单起见,将其设置为与共享专家相同。我们实现了具有 10 和 34 个专家的 MoE,以及具有 4 和 16 个专家的 MoLE 进行比较。

数据与分词器。我们在去重后的 Pile 数据集(Gao 等人,2021)的 1000 亿标记子集上训练所有模型,使用 Pythia 采用的 GPT-NeoX 分词器,词汇量为 5 万。

超参数。我们遵循 Pythia 使用的学习率设置,具体而言,激活参数为 1.6 亿的模型使用\(6.0×10^{-4}\),激活参数为 4.1 亿和 10 亿的模型使用\(3.0×10^{-4}\)。对于 MoE 模型,z-loss 和负载平衡损失的系数分别设置为 0.001 和 0.01,如 Muennighoff 等人(2024)所建议。

基准。我们使用 lm-evaluation-harness 包进行评估。使用的基准包括 ARC-C(Clark 等人,2018)、ARC-E(Clark 等人,2018)、BoolQ(Clark 等人,201

我们使用 lm-evaluation-harness 包进行评估。使用的基准包括 ARC-C(Clark 等人,2018)、ARC-E(Clark 等人,2018)、BoolQ(Clark 等人,2019)、HellaSwag(Zellers 等人,2019)、PIQA(Bisk 等人,2020)、RACE(Lai 等人,2017)、SIQA(Sap 等人,2019)和 LAMBADA(Paperno 等人,2016)。对于所有这些基准,我们报告零样本准确率。

卸载设置。为衡量不同模型在 VRAM 受限环境中的部署效率,我们对 MoE 和 MoLE 均应用卸载策略,确保其 VRAM 使用与具有相同激活参数数量的稠密模型一致。对于 MoE 模型,我们采用专家卸载策略,仅在 VRAM 中存储激活专家的参数和所有非专家参数。

在每个推理步骤中,若所需激活专家不在 VRAM 中,则从存储设备加载到 VRAM,替换先前加载的专家。对于 MoLE,我们卸载 LUT,同时将其他参数存储在 VRAM 中。

4.2 主要结果

如表 3 所示,MoE 和 MoLE 均显著优于稠密基线模型。在五组具有相同训练参数数量的 MoLE 和 MoE 模型比较中,MoLE 在五组中的四组平均准确率优于 MoE。值得注意的是,对于激活参数为 1.6 亿、4.1 亿和 10 亿的 MoLE-16E,每个标记加载的参数数量分别仅为 MoE 的约 1/1500、1/2000 和 1/2000。这表明 MoLE 可在显著降低通信开销的同时保持优异性能,使其能够卸载到较低层级的存储设备。

模型卸载参数(B)每标记加载参数(M)ARC-CARC-EBoolQHellaSwagPIQARACESIQALAMBADA平均
1.6 亿激活参数(VRAM 内)
稠密模型0B0M20.345.957.129.764.029.437.826.238.8
MoE-10E0.3B57M21.749.551.632.066.830.639.131.040.3
MoLE-4E1.8B0.037M21.948.560.731.265.129.438.431.140.8
MoE-34E1.0B57M20.550.057.534.567.328.639.936.441.8
MoLE-16E7.4B0.15M22.448.660.332.768.330.938.633.341.9
4.1 亿激活参数(VRAM 内)
稠密模型0B0M21.850.856.833.866.529.639.236.241.8
MoE-10E1.0B201M24.153.554.537.169.030.840.841.543.9
MoLE-4E4.9B0.098M22.054.861.135.969.630.940.142.244.6
MoE-34E3.4B201M25.057.059.739.971.532.340.447.146.6
MoLE-16E19.7B0.39M23.657.060.937.670.832.040.243.545.7
10 亿激活参数(VRAM 内)
稠密模型0B0M24.156.952.837.669.531.639.143.144.3
MoE-10E2.7B537M25.957.853.840.772.033.641.348.046.6
MoLE-4E6.6B0.26M25.558.861.739.871.732.140.948.347.4

我们注意到,MoLE 中 LUT 的大小是 MoE 中卸载专家大小的 2.4 至 7.4 倍。然而,由于这些参数卸载到可扩展的大型存储设备,我们认为 LUT 的存储开销仍在可接受范围内。

具体而言,随着模型规模增大,LUT 的比例也相应降低。在激活参数为 10 亿的模型上,MoLE-4E 的 LUT 大小与 MoE 中的专家大小相当。

4.3 消融实验

训练损失。与 MoE 不同,MoLE 是完全可微的模型,因此在训练期间不会遇到路由器崩溃或不稳定等问题。因此,我们不使用任何额外的辅助损失。

为说明这一点,我们尝试添加 MoE 的负载平衡损失和 z-loss。如表 4 所示,添加这些损失后,模型性能下降。这是因为额外损失导致模型的优化目标与推理需求不一致,产生负面影响。

训练损失ARC-CARC-EBoolQHellaSwagPIQARACESIQALAMBADA平均
仅 LM 损失(我们的方法)22.448.660.332.768.330.938.633.341.9
LM 损失 + 负载平衡损失21.250.860.232.466.531.537.733.141.7
LM 损失 + 负载平衡损失 + z-loss20.750.551.732.567.730.838.232.540.6

专家数量和规模。我们实验了不同的专家规模和数量。如表 5 所示,当专家的隐藏维度从 d 增加到 4d 时,模型性能提升。然而,进一步将维度增加到 16d 导致性能饱和。这是因为增加专家规模不影响推理期间重参数化的模型或 LUT 的大小。这表明,固定大小的 LUT 中嵌入的知识随着专家规模的增加达到饱和,即没有 “免费的午餐”—— 专家规模的进一步增加不会带来额外的性能提升。

与规模增加不同,专家数量的增加导致性能持续提升,表明一定程度的可扩展性。同时,LUT 的大小和传输的参数数量也将成比例增加。

Dr训练参数(B)卸载参数(B)每标记加载参数(M)ARC-CARC-EBoolQHellaSwagPIQARACESIQALAMBADA平均
7680.4B7.4B0.15M20.648.158.731.466.930.338.731.940.8
30721.1B7.4B0.15M22.448.660.332.768.330.938.633.341.9
122883.8B7.4B0.15M21.852.458.133.167.629.238.732.341.7
N训练参数(B)卸载参数(B)每标记加载参数(M)ARC-CARC-EBoolQHellaSwagPIQARACESIQALAMBADA平均
20.3B0.9B0.02M19.548.257.730.264.729.538.129.439.7
40.4B1.8B0.04M21.948.560.731.265.129.438.431.140.8
80.6B3.7B0.07M19.450.560.232.066.429.937.432.641.1
161.1B7.4B0.15M22.448.660.332.768.330.938.633.341.9
322.0B14.7B0.29M21.853.159.033.568.430.738.833.042.3

架构设计。为确保经路由专家可重参数化,我们将经路由专家的输入从中间特征改为嵌入标记。直观上,此修改意味着专家仅接收原始词特征,无上下文相关信息,可能导致模型性能下降。但另一方面,由于重参数化的专家在推理阶段无需计算,我们可在保持模型推理 FLOPs 不变的同时激活所有专家,这有助于补偿上述性能损失。为对此进行消融研究,我们训练了以下从 MoE-10E(1.6 亿激活参数)演化而来的模型变体:

  • 完全激活:激活 MoE-10E 的所有专家,导致激活参数数量从 0.16B 增加到 0.39B,同时丢弃所有辅助损失。
  • 重新配置:基于上述模型,将专家从 10 个经路由专家修改为 1 个共享专家和 4 个经路由专家,此外,专家的隐藏维度增加到原始大小的两倍,总参数数量保持不变。
  • 嵌入作为输入:基于上述模型,将经路由专家的输入改为嵌入标记。
  • 重参数化:基于上述模型,将经路由专家重参数化为 LUTs,推理期间激活参数数量恢复为 0.16B,该模型称为 MoLE-4E。

如表所示,使用嵌入标记作为经路由专家的输入仅导致 0.7 的性能下降,但带来显著优势,即使专家可重参数化,允许激活所有专家。完全激活的 MoE 相比前 2 个专家的 MoE 性能提升 1.5,导致 MoLE 整体性能优于 MoE。

模型训练参数(B)推理中激活参数(B)ARC-CARC-EBoolQHellaSwagPIQARACESIQALAMBADA平均
MoE-10E0.39B0.16B21.749.551.632.066.830.639.131.040.3
+ 完全激活0.39B0.39B21.650.258.633.366.830.539.633.541.8
+ 重新配置0.39B0.39B21.548.758.032.767.531.138.533.741.5
+ 嵌入作为输入0.39B0.39B21.948.560.731.265.129.438.431.140.8
+ 重参数化 = MoLE-4E0.39B0.16B21.948.560.731.265.129.438.431.140.8
4.4 效率

我们使用 Huggingface 的 transformers 包在 NVIDIA V100 GPU 上测量具有 4.1 亿激活参数的模型的每步解码延迟。由于参数加载的具体速度在很大程度上受底层实现影响,我们基于 V100 的最大 PCIe 带宽 16GB/s 估计加载参数的延迟。对于 MoE 模型,当批量大小为 1 时,前一解码步骤中激活的专家保留在 VRAM 中。当批量大小大于 1 时,每层从前一解码步骤中激活的专家中随机保留两个在 VRAM 中。如果当前步骤中激活的专家与 VRAM 中的专家重叠,则不会重新加载。在此设置下,批量大小为 1、8 和 32 时,MoE-10E 每步加载的专家平均数量分别为 1.6、6.7 和 8.0,MoE-34E 分别为 1.9、12.3 和 27.4。输入长度固定为 512。

如图 3 所示,MoLE 的延迟与稠密模型相当,而 MoE 的延迟显著高于稠密模型。随着批量大小增加,加载的专家数量也增加,进一步增加 MoE 的延迟,但 MoLE 的延迟几乎没有增加。

4.5 减小 LUT 大小

尽管 MoLE 相比 MoE 在卸载场景中显著减少数据传输,但其存储占用较大。虽然存储空间可能不如 VRAM 受限,减小 LUT的大小仍可减轻部署负担。为解决这一问题,我们进行了一项简单的 LUT 压缩实验。我们对 FP16 的 LUT 应用训练后量化,将其量化为 NF4 和 NF3(Dettmers 等人,2023)数据类型,量化的标记块大小分别为 768 和 128。如表 8 所示,模型性能仅有轻微损失,而存储负担和传输数据大小分别减少至原始大小的 25.3% 和 19.5%。这表明 LUT 仍包含显著冗余,具有进一步压缩的潜力。我们将此作为未来工作。

图3. 解码延迟。我们对MoE使用了专家卸载策略。条形图的浅色部分表示由加载操作导致的延迟。

LUT 精度卸载参数大小每秒加载参数大小ARC-CARC-EBoolQHellaSwagPIQARACESIQALAMBADA平均
FP163.5GB72KB21.948.560.731.265.129.438.431.140.8
NF40.9GB18KB21.548.561.731.364.729.638.630.940.9
NF30.7GB14KB22.348.159.831.065.328.938.530.140.5

5. 结论

在本文中,我们通过提出 MoLE 这一新型语言模型架构,解决了 MoE 的高内存消耗和加载延迟问题。MoLE 将专家的输入限制为有限集合(嵌入标记),使专家可在推理前重参数化为 LUTs,从而避免加载专家参数。MoLE 在下游任务上表现出有竞争力的结果,同时在推理速度上显著优于采用专家卸载的 MoE。这项工作为设计适合边缘设备的语言模型提供了新方向。未来研究可探索更多样化的离散空间和专家架构。

影响声明
本文推动了 LLM 的发展,其具有潜在的社会影响,包括对偏见、错误信息和可及性的担忧。随着该领域的发展,持续的伦理监督和跨学科合作至关重要。

http://www.xdnf.cn/news/664435.html

相关文章:

  • 语音识别技术在人工智能中的应用
  • 03 环境变量和标签
  • 电子元器件散热方式
  • 医院门户网站群改版技术白皮书
  • 如何调试CATIA CAA程序导致的CATIA异常崩溃问题
  • Vue 3 核心知识点全览
  • 电子电气架构 -- 第五代汽车电子电气(E/E)架构的两种主导实施方式
  • c++ 二叉搜索树(BinarySearchTree)
  • 晚期NSCLC临床试验终点与分析策略
  • 【力扣】关于链表索引
  • 初识LangChain
  • Visual Studio 调试中 PDB 与图像不匹配
  • STM32F103_Bootloader程序开发03 - 启动入口与升级模式判断(boot_entry.c与boot_entry.h)
  • JetsonHacksNano RealSense自动安装脚本文件解析
  • 公链开发全生态:技术架构、生态构建与未来图景
  • 环境配置相关问题以及解决方案
  • JavaScripts 常见误区
  • 小刚说C语言刷题—1152 - 求n个数的最大值和最小值
  • mybatis-plus动态分页
  • ARM架构
  • 密钥分发与公钥证书
  • 工厂方法模式之Factory Method(工厂方法)
  • Python网络编码——聊天小工具
  • 2025年中国ERP软件前十名对比:选型指南与适用场景的分析
  • 数控滑台技术革新:提升生产效率的关键
  • [浏览器]缓存策略机制详解
  • (12)Quarkus 编译时增强原理
  • GIS局部放电图绘制指南
  • UE 骨骼模型 会没有face index的原因
  • IPv6能自动分配地址,就不需要DHCP服务器了吗?