探索多头混合专家(MH-MoE)模型的先进架构

在深度学习领域,大型模型如大型语言模型(LLMs)和大型多模态模型(LMMs)因其在各个领域的有效性而受到广泛关注。然而,这些模型在训练和推理时面临着巨大的计算成本。为了解决这一问题,研究者们提出了稀疏混合专家(Sparse Mixtures of Experts,简称SMoE)模型,它通过增加模型容量来提升性能,同时保持计算成本的稳定。尽管取得了成功,SMoE模型仍存在专家激活率低和缺乏对单个token内多重语义概念的细粒度分析能力的问题。针对这些问题,本文提出了一种新的模型——多头混合专家(Multi-Head Mixture-of-Experts,简称MH-MoE),并在多个任务上验证了其有效性。

(a) 在XNLI数据集上SMoE模型中专家激活的分布情况。图中显示了SMoE模型中有大量未激活的“死亡”专家(暗色区域),而MH-MoE模型显著增加了这些专家的使用率。(b) 通过将来自语义丰富区域的子token分配给更多不同的专家,MH-MoE展示了更细粒度的理解能力。亮度表示该区域的子token被分配给了更多不同的专家。

为了进一步提升大型容量模型性能,通过增加参数数量来扩大这些模型的规模。但这样做会导致模型尺寸极大,显著降低推理速度,限制了它们的实用性。作为替代方案,SMoE模型在保持计算成本的同时实现了模型的可扩展性,通过在每个构建块中包含并行前馈神经网络(即专家),并通过路由器有策略地激活特定输入token的不同专家,从而实现了显著的效率提升。

MH-MoE架构和工作流程

MH-MoE的工作流程。
这一流程揭示了MH-MoE如何有效地利用多头机制来增强模型对数据的理解能力

Figure 2中我们可以看到MH-MoE模型如何通过其创新的多头机制来增强对视觉和语言数据的理解。这种设计使得MH-MoE能够从不同角度捕捉和解释信息,从而在各种任务中实现更高的性能和更细粒度的理解。MH-MoE模型的这种能力,为处理复杂的视觉-语言任务提供了强大的支持,也为未来的研究和应用开辟了新的可能性。

对于视觉数据,MH-MoE的工作流程开始于将输入图像分割成多个区域,这些区域被称为patches。每个patch包含了图像中的一部分信息,可以是像素值或其他特征表示。MH-MoE模型中的不同头(heads)被路由(routed)到不同的专家(experts),每个专家负责处理特定的信息。

不同的头被分配去捕捉图像patches内部的不同细节方面以及patches之间的关系。例如,一个头可能专注于捕捉纹理信息,而另一个头可能专注于捕捉形状或颜色信息。通过这种方式,每个专家可以专注于图像的一个特定方面,从而使得整个模型能够从多个角度理解和解释视觉数据。

对于语言数据,MH-MoE模型的多头机制同样发挥着关键作用。不同的头被用于捕捉不同语言中假同源词(false cognates)的变化上下文,或者是同一语言中多义词(polysemous words)的不同含义。

例如,在处理英语和意大利语的数据时,一个头可能会专注于理解在两种语言中看起来相似但实际上含义不同的词汇(如英语中的“camera”和意大利语中的“camera”)。另一个头可能会处理同一语言中具有多种含义的多义词,如英语中的“bank”可以指代金融机构,也可以指代河岸。

通过这种多头并行处理机制,MH-MoE能够更细致地捕捉语言数据中的细微差别,并在模型中为每个词汇的不同含义建立更为精确的表示。MH-MoE模型的这种设计不仅适用于单一模态的数据,还能够处理多模态数据,即将视觉信息和语言信息结合起来。在多模态场景下,模型可以同时利用对视觉细节和语言上下文的理解,以更全面地捕捉和解释输入数据。

MH-MoE核心创新的多头机制能够显著提升模型的表示能力和灵活性。首先,MH-MoE接收输入序列,并将其通过一个多头层进行处理。这一步骤涉及到将每个token分割成多个子token,这一分割操作不仅增加了模型处理信息的粒度,还允许模型从不同的角度捕捉输入数据的特征:每个token根据多头机制被分割成h个子token,这些子token在保持原有序列顺序的同时,被重新排列形成一个新特征空间。

接下来,这些子token被送入一个门控函数,该函数计算每个子token被路由到不同专家的门控值。每个专家可以视为一个独立的前馈神经网络,负责处理分配给它的子token。在这个阶段,模型只会激活具有最高门控分数的前k个专家,这样的设计旨在提高计算效率并减少不必要的计算负担。

经过专家网络处理后,子token被重新整合回原始token的形式。这一整合过程确保了模型输出的维度与输入保持一致,从而无需在后续的非并行层中引入额外的计算成本。

典型的SMoE层和提出的MH-MoE层的结构。MH-MoE层引入了额外的两个多层感知机层,即多头层和合并层,以及在这两个MLP之间的Token-Splitting-Merging (TSM)操作

MH-MoE的训练目标旨在最小化两个主要的损失函数:目标任务损失和辅助负载平衡损失。

目标任务损失(Task Specific Loss):这个损失函数与MH-MoE设计学习的具体任务相关。例如,在预训练阶段,如果任务是语言模型预测下一个词,那么损失函数将基于语言模型损失来计算。

负载平衡损失(Load Balancing Loss):由于在SMoE模型中经常会出现专家负载不平衡的问题,MH-MoE通过引入负载平衡损失来解决这一问题。该损失函数计算每个专家被分配的子token数量,并鼓励模型更均匀地分配任务给所有专家,从而提高模型的整体效率和可扩展性。

总的训练目标是联合最小化这两个损失函数,其中负载平衡损失的权重由超参数α控制。通过这种方式,MH-MoE不仅能够学习执行特定的任务,还能够确保模型的内部组件(即专家)得到有效和均衡的利用。

MH-MoE通过其创新的多头机制和训练目标,有效地提升了模型的性能和可扩展性,同时保持了计算成本的可控性。这些设计选择使得MH-MoE成为一个在多个任务上都具有潜力的强大模型。

模型性能评估

研究者采用了与X-MoE相同的Transformer解码器架构,并根据MH-MoE的设计调整了超参数,如头数(heads)和专家数量(experts)。

研究者报告了在不同预训练任务上的验证困惑度曲线和最终困惑度值。这些任务包括英语聚焦的语言建模、多语言语言建模和掩蔽多模态建模。困惑度是衡量语言模型性能的关键指标,它反映了模型预测下一个词的能力。研究者观察到,随着训练的进行,MH-MoE的困惑度始终低于基线模型,这表明MH-MoE在语言表示学习方面更为有效。增加专家数量时,MH-MoE的困惑度进一步降低,显示了模型在利用更多专家时的性能提升。

在训练阶段,针对三个预训练任务(英语聚焦的语言建模、多语言语言建模和遮蔽多模态建模)的验证数据集上的困惑度。图中显示了Dense、X-MoE和MH-MoE模型的困惑度趋势

研究者在多个下游任务上评估了MH-MoE的有效性。这些任务包括零样本基准测试、跨语言自然语言推理和视觉-语言任务。在这些任务中,MH-MoE展现了卓越的性能,无论是在理解语言的细微差别还是在整合视觉信息方面。研究者通过这些评估验证了MH-MoE模型在实际应用中的泛化能力和实用性。

在LLM评估工具下,不同模型在语言理解任务上的准确率/准确率归一化得分

研究者通过逐步移除MH-MoE中的不同组件,展示了每个组件的功能和重要性。这些组件包括多头层(multi-head layer)、合并层(merge layer)和Token-Splitting-Merging(TSM)操作。消融研究的结果揭示了MH-MoE中每个部分对整体性能的贡献,证明了MH-MoE设计的每一部分都是提升模型性能不可或缺的。

表5展示了不同头数h下,MH-MoE模型的性能比较
表6展示了MH-MoE中MLP层和Token-Splitting-Merging (TSM)操作的消融研究结果
表7展示了不同MLP层数n下,MH-MoE模型的性能比较

MH-MoE模型的深入评估

为了深入理解MH-MoE模型的性能优势,研究者进行了一系列的分析实验,旨在验证模型在细粒度理解能力方面的提升。

研究者首先关注了MH-MoE模型中专家的激活情况。通过可视化手段,他们观察了每个专家在不同层次上的激活频率。结果显示,与X-MoE相比,MH-MoE实现了更密集的专家激活,这表明MH-MoE能够更有效地利用其专家网络。这种激活模式的改变显著减少了未被激活的“死亡”专家数量,从而提高了模型的整体表达能力。

随着模型头部数量的增加,观察到专家激活频率也随之增加。这意味着,当模型分配更多的头部时,它能更好地分配任务给不同的专家,进一步增强了模型的表示能力。

在增加专家数量时,X-MoE和MH-MoE在上游困惑度和下游任务性能上的变化

研究者进一步分析了MH-MoE在处理语言数据中的多义词和假同源词时的性能。通过使用GPT-4 API来识别这些复杂词汇,研究者发现MH-MoE的多头机制能够将这些词汇的子token分配给更多不同的专家。这种分配策略使得模型能够从不同的角度捕捉和理解每个词汇的多重含义,从而提高了对语言细微差别的敏感性。

比较了来自多义词和假同源词(P&F tokens)与非P&F tokens的子token分配多样性

在图像数据方面,研究者分析了模型在训练过程中如何对不同区域的语义信息进行处理。他们发现,随着训练的进行,MH-MoE倾向于将来自图像中复杂纹理区域的子token分配给更多样的专家。这种策略使得模型能够更细致地理解图像中的视觉信息,尤其是在处理包含丰富语义信息的区域时。

在不同训练步骤下,从视觉数据中不同区域分割出的子token的分配多样性变化

MH-MoE模型通过引入多头机制,不仅实现了更密集的专家激活,而且显著提升了模型对语言和视觉数据中复杂概念的理解能力。MH-MoE的实现简单直观,且无需额外的计算成本,这使得它可以轻松地与其他SMoE框架集成,进一步提高性能。

MH-MoE模型的提出和验证,展示了通过创新的模型设计和训练策略,可以有效提升深度学习模型的性能和应用范围。随着进一步的研究和开发,MH-MoE模型有望在未来的AI领域发挥更加重要的作用,为解决复杂的实际问题提供更加强大和灵活的解决方案。

论文链接:https://arxiv.org/abs/2404.15045

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/24109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多分类混淆矩阵详解

⭐️ 前言 在机器学习和数据科学中,混淆矩阵(Confusion Matrix)是一个重要的工具,用于评估分类模型的性能。特别是在多分类问题中,混淆矩阵能够清晰地展示模型在每个类别上的预测结果。以下是对多分类混淆矩阵的详细解…

IDEA下项目发送到Gitee

一、首先在Gitee创建一个仓库(什么都不选,这是最简单的方式,否则需要 pull push等一些操作,我嫌麻烦) 二、按图点击(创建存储区,选择你要上传的项目) 三、按图点击后正常文件名会变绿…

python中关于函数的两种链式调用

函数之间的嵌套调用之函数的返回值就是另一个函数的参数 用一个函数的返回值作为另一个函数的参数。 如上图所示,将is0dd(10)的结果交给print函数来执行。 如上图所示,也是一个链式调用的案例,先将add(x&a…

gitlab之cicd的gitlab-runner cicd实践-rpm离线安装

目录 概述资源官方资源离线资源 操作环境验证gitlab-runner安装注意事项重启向gitlab注册CICD流程测试 概述 gitlab此文使用rpm离线安装的方式,使用 gitlab-runner dockerfile构建运行环境: 如有兴趣可以参考这篇文章   gitlab选择 docker-compose 执行…

关于JavaScript技术的基础内容汇总

目录 JavaScript 基础知识1. JavaScript 基本语法2. 变量和常量3. 数据类型4. 运算符5. 控制结构6. 函数7. 对象8. 数组9. 事件处理10. DOM 操作 JavaScript 基础知识 学习 JavaScript(简称 JS)是前端开发的重要组成部分,它是一种动态的、弱…

GIGE 协议摘录 —— GVCP 协议(二)

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 —— 设备发现(一) GIGE 协议摘录 —— GVCP 协议(二) GIGE 协议摘录 —— GVSP 协议(三) GIGE 协议摘录 —— 引导寄存器(四) GIGE 协议…

新品!和芯星通全系统全频高精度板卡UB9A0首发

6月6日,和芯星通发布了UB9A0全系统全频高精度GNSS板卡,主要应用于CORS站、便携基站、GNSS全球监测跟踪站等。延续了上一代产品高质量原始观测量的特点,UB9A0在性能和稳定性方面均表现出众。 UB9A0基于射频基带及高精度算法一体化的GNSS SoC芯…

新能源汽车内卷真相

导语:2025年,我国新能源汽车总产能预计可达3661万辆,如此产能如何消化? 文 | 胡安 “这样卷下去不是办法,企业目的是什么?是盈利,为国家作贡献,为社会作贡献。我们应该有大格局&…

问题:1、彩色餐巾可以渲染就餐气氛,下列说法错误的是 #知识分享#其他

问题:1、彩色餐巾可以渲染就餐气氛,下列说法错误的是 A.如艳红、大红餐巾给人以庄重热烈的感觉; B.橘黄、鹅黄色餐巾给人以高贵典雅的感觉; C.湖蓝色在夏天能给人以凉爽、舒适之感&#xff1…

大数据之HDFS磁盘扩容(linux磁盘扩容)

之所以扩容,是因为当前大数据平台已经接入了不同来源的数据,当执行mapreduce任务时,会发生磁盘爆满,导致hdfs爆红 具体扩容方案如下: 1、查看云磁盘分区情况 fdisk -l . 可以从图看出: /dev/vda 数据盘磁盘容量为21.5GB,包含/dev/vda1分区 /dev/vdb 数…

【大模型】Ollama+open-webui/Anything LLM部署本地大模型构建RAG个人知识库教程(Mac)

目录 一、Ollama是什么? 二、如何在Mac上安装Ollama 1. 准备工作 2. 下载并安装Ollama 3. 运行Ollama 4. 安装和配置大型语言模型 5. 使用Ollama 三、安装open-webui 1. 准备工作 2. Open WebUI ⭐的主要特点 3. Docker安装OpenWebUI,拉去太慢…

大学信息资源管理试题及答案,分享几个实用搜题和学习工具 #职场发展#微信

人工智能技术的发展正逐渐改变着我们的生活,学习如何运用这些技术将成为大学生的必备素养。 1.彩虹搜题 这是个微信公众号 算法持续优化,提升搜题效果。每一次搜索都更精准,答案更有价值。 下方附上一些测试的试题及答案 1、在SpringMVC配…

k8s-pod参数详解

目录 概述创建Pod编写一个简单的Pod添加常用参数为Pod的容器分配资源网络相关Pod健康检查启动探针存活探针就绪探针 作用整个Pod参数配置创建docker-registry 卷挂载 结束 概述 k8s中的pod参数详解。官方文档   版本 k8s 1.27.x 、busybox:stable-musl、nginx:stable-alpine3…

【RabbitMQ基础】-RabbitMQ:初识MQ[1]

简介 RabbitMQ (高性能的异步通讯组件) RabbitMQ是一个开源的消息队列中间件,它实现了高级消息队列协议(AMQP)标准。它是一种可靠、可扩展、灵活和可插拔的解决方案,用于处理异步消息传递和事件驱动系统。…

《广告数据定量分析》读书笔记之统计原理2

3.相关分析:描述的是两个数值变量间关系的强度。(两个数值型变量之间的关系) (1)图表表示:散点图 (2)衡量关系强度指标:相关系数r。 (r的取值为-1到 1&…

.net 下的身份认证与授权的实现

背景 任何一个系统,都需要对于底层访问的页面和接口进行安全的处理,其中核心就是认证和授权。 另外一个问题就是在实际编程过程中,我们的代码有不同的模式,不同的分层或者在不同的项目之中,如何在不同的地方取得用户…

Python画图(多图展示在一个平面)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

各平台对象存储

一、阿里云对象存储 官方文档:https://help.aliyun.com/zh/oss/getting-started/getting-started-with-oss?spma2c4g.11186623.0.0.299a646c6nWWcW 1.引入maven 官网:https://help.aliyun.com/zh/oss/developer-reference/java-installation?spma2c…

小白学linux | 使用正则表达式审计ssh登录ip地址

Ubuntu /var/log/auth.log记录了所有与身份验证相关的事件,包括SSH登录尝试 grep -i "failed password" /var/log/auth.log | \awk {if($11 ~/^[0-9]\.[0-9]\.[0-9]\.[0-9]$/)print $11 ; else print $13} | \uniq -c | sort -nr -k1 RedHat系发行版 /va…

AI大模型,普通人如何抓到红利?AI+产品经理还有哪些机会

前言 随着人工智能技术的飞速发展,AI大模型正逐渐渗透到我们的工作和生活中,为普通人带来了前所未有的便利和机遇。然而,如何有效地抓住这些红利,让AI大模型为我们所用,成为了许多人关注的焦点。 对于普通人而言&…