MoH:融合混合专家机制的高效多头注意力模型及其在视觉语言任务中的应用

在深度学习领域,多头注意力机制一直是Transformer模型的核心组成部分,在自然语言处理和计算机视觉任务中取得了巨大成功。然而,研究表明并非所有的注意力头都具有同等重要性,许多注意力头可以在不影响模型精度的情况下被剪枝。基于这一洞察,这篇论文提出了一种名为混合头注意力(Mixture-of-Head attention, MoH)的新架构,旨在提高注意力机制的效率,同时保持或超越先前的准确性水平。

研究的主要目的包括:

1、提出一种动态注意力头路由机制,使每个token能够自适应地选择适当的注意力头。

2、在不增加参数数量的情况下,提高模型性能和推理效率。

3、验证MoH在各种流行的模型框架中的有效性,包括Vision Transformers (ViT)、Diffusion models with Transformers (DiT)和Large Language Models (LLMs)。

4、探索将预训练的多头注意力模型(如LLaMA3-8B)继续调优为MoH模型的可能性。

方法改进

MoH的核心思想

MoH的核心思想是将注意力头视为混合专家机制(Mixture-of-Experts, MoE)中的专家。具体来说,MoH由以下部分组成:

多个注意力头: H = {H1, H2, …, Hh},一个路由器: 激活Top-K个头,MoH的输出是K个选定头的输出的加权和:

其中gi表示路由分数,只有当第i个注意力头被激活时,gi才非零。

主要改进如下

共享头:

指定一部分头为始终保持激活的共享头。

在共享头中巩固共同知识,减少其他动态路由头之间的冗余。

两阶段路由:

路由分数由每个单独头的分数和与头类型相关的分数共同决定。公式如下:

其中hs表示共享头的数量,Ws和Wr分别表示共享头和路由头的投影矩阵。

负载平衡损失:

为避免不平衡负载,应用了负载平衡损失。公式如下:

总训练目标:

总训练损失是任务特定损失和负载平衡损失的加权和:

 L = Ltask + β * Lb

其中β是权衡超参数,默认设置为0.01。

MoH的优势

使每个token能够选择最相关的注意力头,提高推理效率。通过加权求和替代标准求和,增加了注意力机制的灵活性。无需增加参数数量即可提高模型性能。

实验设置

作者在多个流行的模型框架上评估了MoH的性能:

ViT用于图像分类:

在ImageNet-1K数据集上进行训练和评估。使用AdamW优化器,学习率为1e-3,权重衰减为0.05。训练300个epoch,使用余弦学习率调度器。

DiT用于类条件图像生成:

在ImageNet-1K数据集上进行256×256分辨率的类条件图像生成。使用AdamW优化器,固定学习率为1e-4,无权重衰减。使用指数移动平均(EMA)权重,衰减率为0.9999。

从头训练LLMs:

使用Megatron作为训练框架。在RedPajama、Dolma和Pile等公开数据集上进行训练。使用AdamW优化器,批量大小为400万个token,序列长度为2048。

继续调优LLaMA3-8B:

分两个阶段进行:

使用300B个token继续调优原始LLaMA3-8B模型。使用100B个token将调优后的模型转换为MoH模型。

使用AdamW优化器,批量大小为1600万个token,序列长度为8192。

实验结果

ViT图像分类结果

在ImageNet-1K分类基准测试中:

MoH-ViT-B在仅激活75%的注意力头的情况下,达到了84.9%的Top-1准确率。相比之下,基准模型TransNeXt在激活100%的头的情况下,准确率为84.8%。

MoH-ViT模型在减少激活的注意力头数量的同时,仍能保持或略微提升性能。即使在仅激活50%头的情况下,MoH-ViT-B的性能仍与使用全部头的TransNeXt-B相当。MoH方法在不同规模的模型中都表现出良好的适应性。

DiT类条件图像生成结果

在ImageNet-1K 256×256分辨率的类条件图像生成任务中:

MoH-DiT模型在激活90%的注意力头的情况下,持续优于原始DiT模型。然而,当仅激活75%的注意力头时,MoH-DiT模型的表现略逊于激活100%注意力头的DiT模型。

注:FID(Fréchet Inception Distance)越低越好,IS(Inception Score)越高越好。

这些结果揭示了以下几点:

在小型模型(DiT-S/2)中,MoH-DiT在激活90%头的情况下能够略微提升性能。对于大型模型(DiT-XL/2),MoH-DiT在各项指标上都显示出明显的优势。作者认为,图像生成任务对注意力头的依赖似乎比图像分类任务更强,这可能是由于需要捕捉更细粒度的像素级关系。

从头训练LLMs的结果

在多个语言任务基准测试中:

MoH-LLM-S在仅激活50%的注意力头的情况下,达到了45.4%的平均准确率。相比之下,基线模型在激活100%的注意力头的情况下,平均准确率为43.9%。

这表明MoH在大语言模型训练中也能有效提高性能和效率。

MoH-LLM在大多数任务中都能够在减少激活头数的同时保持或提升性能。在某些任务(如SciQ和TruthfulQA)上,MoH-LLM显示出明显的优势。对于较小的模型(LLM-S),激活50%的头似乎比激活75%的头效果更好,这可能是由于起到了一定的正则化作用。

继续调优LLaMA3-8B的结果

在14个基准测试中:

MoH-LLaMA3-8B在仅使用75%的注意力头的情况下,达到了64.0%的平均准确率。这比原始LLaMA3-8B模型高出2.4个百分点。

这一结果证明,预训练的多头注意力模型可以成功地继续调优为MoH模型,大大提高了MoH方法的适用性。

MoH-LLaMA3-8B在大多数任务上都超越了原始LLaMA3-8B模型,特别是在CEVAL、CMMLU和TruthfulQA等任务上表现突出。在某些任务(如PIQA和NQ)上,MoH-LLaMA3-8B的性能略有下降,这可能是由于这些任务对特定类型的知识更为敏感。

总体而言,MoH-LLaMA3-8B在仅使用75%注意力头的情况下,平均性能提升了2.4个百分点,这是一个显著的改进。

MoH-LLaMA3-8B在继续调优过程中的性能演变

消融实验

作者进行了一系列消融实验,以评估MoH中各个组件的重要性:

这些结果表明:

共享头机制显著提升了模型性能,可能是因为它有效捕捉了常见知识。两阶段路由进一步微调了性能,提供了更灵活的注意力分配策略。

作者还探讨了共享头比例对性能的影响:

这表明模型性能在较广范围的共享头比例下保持稳定,为实际应用提供了灵活性。

最后作者对MoH模型中注意力头的使用情况进行了深入分析。如图3所示,不同类别和任务主题的注意力头分配存在显著差异。

这表明:

MoH模型能够根据不同的任务类型自适应地分配注意力资源。某些头可能专门处理特定类型的信息或特征。这种动态分配机制使得参数利用效率高于标准的多头注意力。

讨论与未来方向

MoH与MoA的比较

作者指出了MoH与之前提出的Mixture-of-Attention (MoA) 方法的几个关键区别:

动机不同:MoH旨在提高注意力机制的效率和性能,而不增加参数数量。MoA则更类似于MoE,目标是在保持推理成本低的同时扩展模型参数。

方法学差异

MoH引入了共享头和两阶段路由来增强标准MoE方法。MoH证明了预训练的多头注意力模型可以继续调优为MoH模型,大大提高了其适用性。MoA直接将多头注意力与MoE结合,并且由于采用共享键和值,必须从头训练。

应用范围:MoH在多个模型框架(ViT、DiT、仅解码器LLMs)和任务上进行了验证,而MoA仅在编码器-解码器架构的语言任务上进行了验证。

局限性与未来工作

  1. 异构注意力头:探索在MoH框架中使用不同隐藏大小的注意力头。
  2. 更低的激活率:目前MoH使用50%~90%的注意力头就能超越多头注意力。未来工作可以尝试进一步降低激活率。
  3. 多模态输入:研究MoH在处理不同模态输入(如视觉和文本)时的注意力模式。
  4. 更多下游任务:在更广泛的任务中评估MoH的性能,如音频处理和多模态任务。
  5. 更大规模模型:将MoH扩展到参数量超过8B的更大模型中。

总结

MoH作为多头注意力的改进版本,在多个任务和模型框架中展现出了卓越的性能和效率。通过引入动态路由机制、共享头和两阶段路由等创新,MoH能够在减少激活头数的同时保持或提升模型性能。特别是MoH能够成功地应用于预训练模型的继续调优,这大大增强了其实用性。

作者认为MoH为开发更先进和高效的基于注意力的模型奠定了坚实的基础,有望在学术研究和工业应用中产生深远影响。未来的工作将进一步探索MoH的潜力,包括在更多样化的任务、更大规模的模型和多模态场景中的应用。

https://avoid.overfit.cn/post/41a8250d1e4c420cafb23ecfb07b073d

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

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

相关文章

GoFly快速开发框架集成ZincSearch全文搜索引擎-ZincSearch是ElasticSearch轻量级替代搜索引擎

前言 我们在项目开发中会遇到如下业务场景: 1. 电子商务:实现商品搜索与推荐、价格监控。 2. 日志分析:进行系统日志分析和网络流量监控。 3. 社交媒体:内容搜索与发现以及用户行为分析。 4. 企业知识管理:进行知识搜…

Excel:Cells(Rows.Count, 1).End(xlUp).Row和Cells(Rows.Count, 1).End(xlUp)有什么区别

Cells(Rows.Count, 1).End(xlUp).Row 和 Cells(Rows.Count, 1).End(xlUp) 是 VBA 中用于定位 Excel 工作表中单元格的两种不同用法。以下是它们的区别: 1. Cells(Rows.Count, 1).End(xlUp).Row 功能: 这个表达式返回的是一个行号(Long 类型&#xff09…

聚类算法的代码解析与实现

谱聚类算法的代码解析与实现 本文将对一个基于未归一化拉普拉斯矩阵的谱聚类算法进行详细解析。该算法的实现源自 SpeechBrain 项目,适用于语音片段的聚类,例如语音分离、说话人识别等任务。我们将逐步分析代码的每个部分,并解释其背后的数学…

DS快速排序和归并排序的非递归实现(16)

文章目录 前言一、快排的非递归实现二、归排的非递归实现总结 前言 打破递归桎梏,迎接迭代解放! 一、快排的非递归实现 我们要替代递归,就要用到迭代或者循环,也就是说,其核心思想是不变的,只是换一种方式来…

使用 CDN 后 Apache 的日志记录客户真实 IP

经常搭建网站服务器的都知道,在给站点使用了 CDN 后 Web 应用的日志记录里就会只记录 CDN 节点 IP 了,这就没法看到真实客户请求 IP,对于日志分析、运维日常维护来说就有点儿麻烦了,今天明月结合在五洛云服务器上搭建的Apache环境…

ElementPlus-Table表格-单选--TypeScript进阶篇

今天看个例子&#xff0c;这个例子是ElementPlus的组件Table表格下面的单选 <template> <el-table ref"singleTableRef" :data"tableData" highlight-current-row style"width: 100%" current-change"hand…

探索C嘎嘎:模版初阶

前言&#xff1a; 小编在前文讲述了C的内存管理&#xff0c;下面我们来开始继续探索C&#xff0c;开启C又一个重要的内容&#xff0c;模版初阶的详解&#xff0c;代码时间到&#xff01; 目录 1.泛型编程 1.1.引子 1.2.泛型编程 2.函数模版 2.1.函数模版的概念 2.2.函数模版的格…

基于知识图谱的电子元器件问答系统

你还在为寻找电子元器件的相关信息头疼吗&#xff1f;作为一名程序员或电子工程师&#xff0c;在项目中经常需要快速查询电子元件的属性或关联关系。今天给大家介绍一个可以大大提升工作效率的神器——基于知识图谱的电子元器件问答系统。这不仅是你学习和工作的好帮手&#xf…

解读华为云Kuasar多沙箱容器技术,带来更强隔离性和安全性

摘要&#xff1a;沙箱技术的引入&#xff0c;为容器提供了更强的隔离性和安全性&#xff0c;成为云原生技术的重要组成部分。 本文来源 《华为云DTSE》第五期开源专刊&#xff0c;作者&#xff1a;华为云云原生开源团队研发工程师。 近年来&#xff0c;云原生容器技术飞速发展&…

1.5 ROS架构

到目前为止&#xff0c;我们已经安装了ROS&#xff0c;运行了ROS中内置的小乌龟案例&#xff0c;并且也编写了ROS小程序&#xff0c;对ROS也有了一个大概的认知&#xff0c;当然这个认知可能还是比较模糊并不清晰的&#xff0c;接下来&#xff0c;我们要从宏观上来介绍一下ROS的…

详解Java之异常

目录 防御式编程 捕获异常 基础语法 示例1 【不处理异常】 示例2 【使用try catch捕获异常】 示例3 【catch只能处理对应的异常】 示例4 【catch可以有多个】 示例5 【可以用一个catch捕获所有异常】 示例6 【finally一定会执行】 示例7 【使用try回收资源】 示例8 …

【iOS】YYModel

目录 什么是YYModel &#xff1f; 如何使用YYModel &#xff1f; 最简单的Model 与网络请求结合 属性为容器类的Model 白名单和黑名单 Model的嵌套 结语 什么是YYModel &#xff1f; YYModel是一个用于 iOS 和 macOS 开发的高性能的模型框架&#xff0c;主要用于对象和…

Lua条件语句

软考鸭微信小程序 过软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 在Lua编程语言中&#xff0c;条件语句是控制程序执行流程的关键工具。它们允许开发者根据特定条件的真假来执行不同的代码块&#xff0c;从而实现复杂的逻辑…

STM32+DHT11温湿度传感器(含完整代码)

DHT11是一款常用的数字温湿度传感器&#xff0c;它通过单总线与微控制器通信&#xff0c;输出数字信号&#xff0c;使得数据采集和处理变得简单。本文将详细介绍如何使用STM32微控制器驱动DHT11传感器&#xff0c;并提供完整的代码实现。 DHT11传感器简介 DHT11传感器包含一个…

MYSQL的SQL优化

SQL优化是提高数据库查询性能的核心步骤&#xff0c;尤其在处理大规模数据时&#xff0c;SQL查询优化至关重要。优化的目标是减少查询执行时间、降低数据库服务器负载&#xff0c;并使系统在高并发场景下运行更加高效。SQL优化涉及从数据库设计、索引使用、查询重构、配置参数调…

鸿蒙网络编程系列24-Web组件与应用互操作示例

1. APP内嵌网页与应用互操作概述 在通常的APP开发中&#xff0c;经常会采用内嵌网页的形式&#xff0c;通过网页来展现丰富的动态内容&#xff0c;虽少了很多原生开发的功能&#xff0c;但是这么做无可厚非&#xff0c;毕竟APP需要适配的系统平台很多&#xff0c;比如安卓、苹…

mysql 主从安装

登录看第二篇 WINDOWS系统搭建MYSQL 8.0主从模式_windows mysql8.0.34主从配置-CSDN博客 Windows下MySQL8.0最新版本超详细安装教程_windowsserver安装mysql8.0-CSDN博客 启动两个服务 可执行文件路径一致问题解决&#xff1a; windows&#xff0c;同一台机器安装两个mysq…

【HarmonyOS NEXT】权限申请及应用设置页跳转

关键词&#xff1a;鸿蒙、程序访问控制、定位、应用详情页、startability、want 在app开发过程中&#xff0c;常进行系统权限的申请以提供设备访问或个性化功能&#xff08;如扫一扫、城市定位、剪贴板等&#xff09;&#xff0c;从而保障应用功能的完整性&#xff0c;那么本期…

Jupyter notebook和Conda使用

Jupyter notebook和Conda使用 文章目录 Jupyter notebook和Conda使用AnacondaJupyter notebook简介页面使用技巧编写格式自动补全查看函数文档魔术命令远程访问交互式 Anaconda Anaconda是一个开源的Python发行版本&#xff0c;其包含了conda、Python等180多个科学包及其依赖项…

stm32实现esp8266连接到TCP服务器(二)未完

1.2 连接到TCP Server 1.2.1 使用网络助手&#xff0c;设立TCP服务器 ​ 编辑 1.2.2 连接服务器 ATCIPSTART"TCP","192.168.1.18",8080 //指令&#xff0c;注意双引号逗号都要半角(英文)输入 CONNECT //结果&#xff1a;成功 OK //结果&#xff1a;成功 …