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

SoftMoE:From sparse to soft mixtures of experts

Soft MoE是一种全可微分的稀疏Transformer架构,旨在解决传统稀疏混合专家模型(Sparse Mixture of Experts, MoEs)在训练稳定性、扩展专家数量、微调效果等方面的问题。Soft MoE通过软分配机制,将输入标记的不同加权组合传递给每个专家,而不是像传统MoE那样进行硬分配。这种方法避免了传统MoE中的标记丢失和专家不平衡问题,同时保持了MoE在推理成本较低的情况下扩展模型容量的优势。

在这里插入图片描述

From:ICLR 2024
Paper:https://arxiv.org/pdf/2308.00951
Code:https://github.com/google-research/vmoe

文章目录

  • 研究动机
    • 传统稀疏混合专家模型(Sparse Mixture of Experts, MoEs)的局限性
    • 全可微分模型的需求
    • 推理效率的提升
  • 研究方法
    • 算法概述
    • 算法步骤
      • 1. 输入标记的加权平均(槽的生成)
      • 2. 专家处理槽
      • 3. 输出标记的加权平均(槽的组合)
    • 算法特性
      • 1. 全可微分
      • 2. 无标记丢失和专家不平衡
      • 3. 推理效率
      • 4. 稀疏性与密集性
    • 实现细节
  • 实验效果
    • 实验设置
      • 1. 数据集
      • 2. 模型架构
      • 3. 训练设置
    • 实验结果
      • 1. 训练Pareto前沿
      • 2. 长时间训练的效果
      • 3. 推理时间优化
      • 4. 模型扩展性测试
      • 5. 多模态任务表现
    • 实验分析
      • 1. Soft MoE的软分配机制
      • 2. 长时间训练的效果
      • 3. 推理效率

研究动机

传统稀疏混合专家模型(Sparse Mixture of Experts, MoEs)的局限性

尽管稀疏MoE在扩展模型容量方面表现出色,能够在不显著增加训练或推理成本的情况下提升性能,但它们也存在一些显著的问题:

  • 训练不稳定:稀疏MoE在训练过程中容易出现不稳定现象,尤其是在大规模模型中。
  • 标记丢失:传统MoE在路由过程中可能会丢弃某些标记,导致模型无法处理这些标记,影响性能。
  • 专家不平衡:某些专家可能会处理过多的标记,而其他专家则处理较少,导致资源分配不均。
  • 扩展性问题:传统MoE在扩展专家数量时面临挑战,尤其是在需要处理大量标记的情况下。
  • 微调效果不佳:传统MoE在微调过程中表现不如预期,难以充分利用预训练模型的潜力。

图1:Sparse MoE 和 Soft MoE 的区别:左:Sparse MoE,给每个 Expert 分配一定的输入 token。右:Soft MoE,给每个 Expert 分配的是所有输入 token 的加权平均值

全可微分模型的需求

传统MoE的路由机制通常是离散的,涉及复杂的优化问题(如线性规划、最优传输等),这些方法虽然有效,但往往难以实现全可微分,限制了模型的优化和扩展能力。因此,研究者希望设计一种全可微分的路由机制,以简化训练过程并提高模型的稳定性。

推理效率的提升

尽管稀疏MoE在训练过程中能够节省计算资源,但在推理阶段,传统MoE的性能提升并不总是与计算成本的增加成正比。研究者希望通过设计一种新的路由机制,能够在保持高性能的同时,进一步降低推理成本。

研究方法

算法概述

Soft MoE的核心思想是通过软分配机制,将输入标记的不同加权组合传递给每个专家,而不是像传统MoE那样进行硬分配。具体来说,Soft MoE通过计算所有输入标记的加权平均值(称为“槽”),并将这些槽分配给不同的专家进行处理。每个专家只处理一部分槽,而不是直接处理输入标记。

算法步骤

Soft MoE通过计算所有输入标记的加权平均值来实现软分配,每个专家处理这些加权平均值中的一个子集。具体来说,Soft MoE使用softmax函数计算分配权重,并将这些权重应用于输入标记和输出标记,从而实现全可微分的路由机制。
在这里插入图片描述

1. 输入标记的加权平均(槽的生成)

  • 输入标记:假设输入标记为一个矩阵 X ∈ R m × d \mathbf{X} \in \mathbb{R}^{m \times d} XRm×d,其中 m m m 是标记的数量, d d d 是每个标记的维度。

  • 槽的生成:Soft MoE通过计算所有输入标记的加权平均值来生成槽。具体来说,每个槽是所有输入标记的加权平均值,权重由一个softmax函数计算得出。

    计算公式如下: D i j = exp ⁡ ( ( X Φ ) i j ) ∑ i ′ = 1 m exp ⁡ ( ( X Φ ) i ′ j ) \mathbf{D}_{ij} = \frac{\exp((\mathbf{X} \boldsymbol{\Phi})_{ij})}{\sum_{i'=1}^{m} \exp((\mathbf{X} \boldsymbol{\Phi})_{i'j})} Dij=i=1mexp((XΦ)ij)exp((XΦ)ij)其中, D \mathbf{D} D 是分配权重矩阵, Φ ∈ R d × ( n ⋅ p ) \boldsymbol{\Phi} \in \mathbb{R}^{d \times (n \cdot p)} ΦRd×(np) 是可训练的参数矩阵, n n n 是专家的数量, p p p 是每个专家处理的槽的数量。

    生成的槽矩阵为 X ~ = D ⊤ X \tilde{\mathbf{X}} = \mathbf{D}^{\top} \mathbf{X} X~=DX 其中, X ~ ∈ R ( n ⋅ p ) × d \tilde{\mathbf{X}} \in \mathbb{R}^{(n \cdot p) \times d} X~R(np)×d 是所有槽的矩阵。

2. 专家处理槽

  • 专家函数:每个专家是一个多层感知机(MLP),记为 f i f_i fi,用于处理分配给它的槽。
  • 槽的处理:每个专家处理其对应的槽,生成输出槽矩阵 Y ~ \tilde{\mathbf{Y}} Y~
    Y ~ i = f ⌊ i / p ⌋ ( X ~ i ) \tilde{\mathbf{Y}}_{i} = f_{\lfloor i/p \rfloor}(\tilde{\mathbf{X}}_{i}) Y~i=fi/p(X~i)
    其中, ⌊ i / p ⌋ \lfloor i/p \rfloor i/p 表示第 i i i 个槽对应的专家。

3. 输出标记的加权平均(槽的组合)

  • 输出标记的生成:每个输出标记是所有输出槽的加权平均值,权重同样由softmax函数计算得出。

    计算公式如下: C i j = exp ⁡ ( ( X Φ ) i j ) ∑ j ′ = 1 n ⋅ p exp ⁡ ( ( X Φ ) i j ′ ) \mathbf{C}_{ij} = \frac{\exp((\mathbf{X} \boldsymbol{\Phi})_{ij})}{\sum_{j'=1}^{n \cdot p} \exp((\mathbf{X} \boldsymbol{\Phi})_{ij'})} Cij=j=1npexp((XΦ)ij)exp((XΦ)ij) 其中, C \mathbf{C} C 是组合权重矩阵。

    最终的输出标记矩阵为: Y = C Y ~ \mathbf{Y} = \mathbf{C} \tilde{\mathbf{Y}} Y=CY~ 其中, Y ∈ R m × d \mathbf{Y} \in \mathbb{R}^{m \times d} YRm×d 是所有输出标记的矩阵。

算法特性

1. 全可微分

Soft MoE的所有操作都是连续且全可微分的,这使得模型可以通过标准的反向传播算法进行训练,避免了传统MoE中离散路由机制带来的优化困难。

2. 无标记丢失和专家不平衡

由于每个槽都是所有输入标记的加权平均值,Soft MoE不会出现标记丢失或专家不平衡的问题。每个标记都会以某种权重参与到所有槽的计算中,而每个专家处理的槽数量是固定的。

3. 推理效率

Soft MoE的计算复杂度主要取决于槽的数量,而不是专家的数量。通过合理设置槽的数量,Soft MoE可以在不显著增加计算成本的情况下扩展模型容量。此外,Soft MoE避免了传统MoE中复杂的排序或top-k操作,从而提高了推理效率。

4. 稀疏性与密集性

尽管Soft MoE的每个槽是所有输入标记的加权平均值,但每个专家只处理一部分槽,因此它仍然具有稀疏性。与密集Transformer不同,Soft MoE的每个专家只处理输入标记的一个子集,而不是所有标记。

实现细节

归一化

为了避免softmax函数在模型维度较大时退化为one-hot向量,Soft MoE在计算分配权重和组合权重时,对输入标记和参数矩阵进行了L2归一化。具体来说,输入标记和参数矩阵分别被归一化为单位范数,并通过一个可训练的标量进行缩放。
在这里插入图片描述

算法伪代码

以下是Soft MoE层的简单JAX实现伪代码:
在这里插入图片描述

实验效果

Soft MoE在多个视觉任务中表现出色,尤其是在大规模数据集上的预训练和微调任务中。其全可微分的软分配机制解决了传统稀疏MoE中的训练不稳定、标记丢失和专家不平衡问题,同时保持了推理效率和模型容量扩展的优势。实验结果表明,Soft MoE为大规模模型训练提供了一种高效且稳定的解决方案,特别是在多模态学习和大规模预训练任务中具有广泛的应用潜力。

实验设置

1. 数据集

  • JFT-4B:一个包含超过40亿张图像的私有数据集,涵盖29,000个类别。实验中使用该数据集进行预训练,并在预训练过程中评估模型的上游验证精度(JFT-4B Precision-at-1)和ImageNet 10-shot精度。
  • ImageNet-1k:用于微调和评估模型在ImageNet验证集上的精度。
  • WebLI:一个包含10亿张图像和对应文本描述的私有数据集,用于多模态任务的预训练。

2. 模型架构

  • Dense Transformers (ViT):包括ViT-Small (S), ViT-Base (B), ViT-Large (L), 和 ViT-Huge (H)。
  • Sparse MoEs:包括Tokens Choice和Experts Choice路由机制的稀疏MoE模型。
  • Soft MoE:本文提出的全可微分稀疏MoE模型,替换Transformer中的部分MLP块。

3. 训练设置

  • 训练步数:300k步(部分模型训练更长时间,如4M步或9M步)。
  • 批量大小:4096。
  • 学习率调度:倒数平方根学习率调度(inverse square root schedule),带有线性预热和冷却阶段。
  • 分辨率:224x224(部分实验使用更高分辨率)。

实验结果

1. 训练Pareto前沿

实验首先比较了不同模型在训练成本(FLOPs和TPUv3训练时间)与性能(JFT-4B Precision-at-1和ImageNet 10-shot精度)之间的权衡。结果表明,Soft MoE在所有训练成本预算下均优于密集Transformer和传统稀疏MoE。

  • Soft MoE的优势:在相同的训练成本下,Soft MoE的性能显著优于ViT和Tokens Choice/Experts Choice稀疏MoE。例如,Soft MoE B/16在训练时间和FLOPs相近的情况下,性能超过了ViT H/14。
  • 扩展性:Soft MoE能够有效利用大量专家参数,而不会显著增加计算成本。
    在这里插入图片描述

2. 长时间训练的效果

为了进一步验证Soft MoE的性能,实验对部分模型进行了长时间训练(4M步或9M步)。结果表明,Soft MoE在长时间训练后仍然保持了显著的性能优势。

  • Soft MoE S/16:在长时间训练后,性能超过了ViT B/16,且训练成本显著降低。
  • Soft MoE B/16:在长时间训练后,性能接近ViT H/14,但推理速度更快,FLOPs更低。
  • Soft MoE L/16:在长时间训练后,性能超过了ViT H/14,且推理速度更快。
    在这里插入图片描述
    在这里插入图片描述

3. 推理时间优化

实验还评估了Soft MoE在推理时间上的优势。结果表明,Soft MoE在推理速度上显著优于密集Transformer。

  • Soft MoE B/16:推理速度比ViT H/14快10倍,FLOPs减少5倍。
  • Soft MoE L/16:推理速度比ViT H/14快2倍,FLOPs减少2倍。
    在这里插入图片描述

4. 模型扩展性测试

实验研究了不同专家数量和槽数量对模型性能和推理速度的影响。结果表明,Soft MoE在增加专家数量时,性能持续提升,而推理速度几乎保持不变。

  • Soft MoE的扩展性:增加专家数量可以显著提升性能,而不会显著增加推理成本。
  • 传统稀疏MoE的局限性:增加专家数量会导致推理速度显著下降,且性能提升有限。
    在这里插入图片描述

5. 多模态任务表现

实验还验证了Soft MoE在多模态任务中的表现。通过在WebLI数据集上进行图像-文本对比学习,结果表明,Soft MoE在多模态任务中同样表现出色。

  • Soft MoE L/16:在ImageNet和CIFAR-100的零样本评估中,性能超过了ViT L/16。
  • Soft MoE的优势:在多模态任务中,Soft MoE能够更好地利用专家参数,提升图像-文本对齐的效果。

---
在这里插入图片描述

实验分析

1. Soft MoE的软分配机制

实验通过可视化和定量分析,验证了Soft MoE的软分配机制的有效性。结果表明,Soft MoE能够避免标记丢失和专家不平衡问题,且每个标记都能以某种权重参与到所有槽的计算中。

  • 标记贡献分布:大多数标记对槽的贡献较为均匀,少数标记贡献较大。
  • 专家贡献分布:不同专家对输出标记的贡献存在差异,表明专家参数并非冗余。

2. 长时间训练的效果

实验表明,Soft MoE在长时间训练后仍然保持了稳定的性能提升,且训练成本相对较低。这表明Soft MoE在长时间训练中具有良好的扩展性和稳定性。

3. 推理效率

实验结果表明,Soft MoE在推理速度上显著优于密集Transformer和传统稀疏MoE。通过避免复杂的排序或top-k操作,Soft MoE能够以较低的推理成本实现高性能。


http://www.kler.cn/a/449305.html

相关文章:

  • 数据库系统原理:数据恢复与备份策略
  • 【RAG实战】Prompting vs. RAG vs. Finetuning: 如何选择LLM应用选择最佳方案
  • MyBatis 中常用标签
  • 玩转OCR | 探索腾讯云智能结构化识别新境界
  • 叉车作业如何确认安全距离——UWB测距防撞系统的应用
  • 【经验总结】AUTOSAR架构下基于TJA1145收发器偶发通信丢失不可恢复问题分析
  • Postman集合转JMeter脚本
  • AI应用-本地模型实现AI生成PPT(简易版)
  • C++ 函数编程题
  • 远程医疗:科技助力健康触手可及
  • linux socket编程之udp_dict_serve服务端--引入配置文件
  • 阿里云技术公开课直播预告:基于阿里云 Elasticsearch 构建 AI 搜索和可观测 Chatbot
  • python学习——洛谷 [NOIP1998 提高组] 拼数 两种方法
  • 盒子模型(内边距的设置)
  • 计算机组成原理的学习笔记(6)-- 存储器·其一 SRAM/DRAM/ROM/主存储器的初步认识
  • 学习threejs,scene.overrideMaterial全局材质效果
  • pycharm无法识别conda环境(已解决)
  • Jmeter对图片验证码的处理【超详细】
  • Html:点击图标链接发起QQ临时会话
  • 【LeetCode每日一题】——415.字符串相加
  • 【C++——迭代器】
  • 安科瑞能源物联网平台在老旧小区用电安全改造中的应用与优势
  • HTML+CSS+JS制作汽车网站(内附源码,含5个页面)
  • LLM与金融
  • Python绘制图表
  • SpringBoot3-第一篇(快速入门)