AAAI 2024|ETH轻量化Transformer最新研究,浅层MLP完全替换注意力模块提升性能

news2025/4/23 14:39:29

ecc4628a6ae04b43a355113a0d29ca7b.png

论文题目: Rethinking Attention: Exploring Shallow Feed-Forward Neural Networks as an Alternative to Attention Layers in Transformers
论文链接: https://arxiv.org/abs/2311.10642
代码仓库: GitHub - vulus98/Rethinking-attention: My implementation of the original transformer model (Vaswani et al.). I've additionally included the playground.py file for visualizing otherwise seemingly hard concepts. Currently included IWSLT pretrained models.

目前,在大型语言模型(LLMs)和AIGC的双重浪潮席卷之下,AI迎来了前所未有的发展机遇。一时间,深度模型训练框架、AI算力等等已经成为社区的热点话题。作为LLMs和AIGC的基础算法backbone,Transformer模型已经成为目前最为关键的基础研究方向,对Transformer现有的注意力机制原理进行探索,并提出优化简化的方案,是目前研究的热点。

本文介绍一篇来自苏黎世联邦理工学院(ETH Zurich)的最新Transformer优化工作,目前该文已被人工智能顶级会议AAAI 2024录用。本文的核心出发点是,能否使用更加轻量经济的前馈神经网络(MLP)来替代Transformer中笨重的自注意力层,并通过知识蒸馏的方式使用原始模块进行迁移训练,作者将优化后的模型称为”attentionless Transformers“。作者在IWSLT2017等数据集上的实验验证了attentionless Transformer可以达到与原始架构相当的性能,同时进行了一系列消融实验表明,如果正确的配置参数,浅层MLP完全具有模拟注意力机制的潜力。

01. 引言

Vaswani等人在2017年发表的Transformer结构[1]从根本上改变了sequence-to-sequence建模任务的格局,从那时起,Attention Is All You Need。此外,原始Transformer论文还为机器翻译这一基础NLP任务设定了全新的基准(使用BLEU分数作为评价指标)。后续有很多工作对Transformer结构的原理进行探索,人们认为,Transformer的注意力机制能够在时序数据中建立长期依赖关系,使其能够关注序列中的每个元素,这是之前的网络架构在没有大量计算开销的情况下难以实现的效果。为了进一步缩小注意力机制的资源消耗,本文作者提出了一个大胆的设想,能否直接用更轻量的浅层MLP来模拟注意力机制的计算,虽然缺乏在理论上的推理证明,但本文通过实验表明,这种替代方式是完全有效的。

02. 本文方法

原始的Transformer架构由一系列的编码器和解码器块堆叠而成。其中编码器层有一个自注意力块,而解码器层包含自注意力块和交叉注意力块。本文针对注意力块提出了四种不同程度的MLP替换模式,这四种替换模式如下图所示。

(1)注意力层替换(Attention Layer Replacement,ALR):仅用MLP替换多头注意力(MHA)块,保留残差连接和归一化层

(2)残差连接替换的注意力层(Attention Layer with Residual Connection Replacement,ALRR):MHA模块以及残差连接被MLP替换,这种方式可以直接消除 Transformer 中的残差连接

(3)注意力头分离替换(Attention Separate heads Layer Replacement,ASLR):ALR的变体,该方法用单独的MLP替换MHA模块的每个单独头

(4)编码器层替换(Encoder Layer Replacement,ELR):完全使用MLP替换编码器层。

ede0f3f3c0b645bfbc44a26bf938cfc6.png

其中 ALR 和 ALRR 的设计灵感是将注意力层的性能提升与残差连接的性能提升分离开来,而ASLR则是用来模拟多头注意力层中每个单独头的操作,即直接使用MLP来代替多头注意力(MHA)。而ELR作为最高的抽象级别,直接将整个编码器块替换为MLP网络,这本质上颠覆了原始编码器架构,将Transformer转换为纯MLP结构。这种替换方式对模型整体参数规模的影响非常显著,下表展示了以上四种方式在XS、S、M和L四种尺寸下的参数大小。

e034d37069604ea9aa7960b1ff179b26.png

作者以ALRR模式作为样例,首先训练了原始6层编码器和6层解码器的Transformer模型作为MLP网络的教师模型,为了提高训练速度,作者将原始嵌入长度从512减少到128,这样做对模型BLEU分数的影响并不大,但其需要的计算需求会显著降低,此时模型的训练和推理流程如下图所示,使用其他三种模式的训练流程与此类似。

016a7d3a5ee14cd7899d53a784f9ed2d.png

在进行知识蒸馏之前,需要从原始Transformer模型中提取中间激活值,并且对其进行额外的调整,如下图所示,首先需要在每个注意力层中将句子的输入单词表示转换为由输入表示提取的值的线性组合,随后,MLP网络需要将句子的串联单词表示作为输入,并在一次前向传播中生成更新的单词表示作为输出。为了处理不同长度的输入句子,作者直接将所有句子填充到最大固定长度,并用零屏蔽填进行占位。

c2edb629d748445fb13bd2e6b8ab5ebb.png

当模型蒸馏结束后,直接将ALRR简化块插入到Transformer架构中替换之前的冗余层,在替换时,需要考虑对编码器中的注意力层和解码器的注意力层进行区别处理,主要区别在于,解码器中的MLP替换网络需要遵循因果Mask机制,即只有句子中前面的单词才能影响当前单词的语义,而编码器中的替换不需要考虑这一点。

03. 实验效果

本文的实验主要在 IWSLT2017 数据集上进行,该数据集提供了多个语言翻译子集,包括法语-英语(F2E)、英语-法语(E2F)、德语-英语(G2E)和英语-德语(E2G)子集,这些子集平均含有 200000 个训练句子和 1000 个测试句子。翻译后的评价指标选取BLEU分数,BLEU可以衡量模型输出结果与人类专家翻译的直观比较,下表展示了基线Transformer模型(原始模型)在四个翻译子集上的平均效果。

c8b5a5e933584c57864cda9bc4b42dd4.png

随后作者将本文提出的四种MLP替换模式一一进行了实验,下表首先展示了ALR(仅替换多头注意力层)模式的实验结果,其中“Enc”代表编码器,“Dec”代表解码器,“SA”代表自注意力,“CA”代表交叉注意力,E-D代表同时对编码器和解码器进行替换。从表中可以分析得出,在ALR模式下,“Dec CA”(解码器中的交叉注意力)的BLEU分数较低。

9274cb7ede4a4886858360b606629418.png

下表展示了其他三种模式:ALRR、ASLR和ELR替换后的实验效果,由于这三种模式不涉及对解码器注意力层的替换,因此模型的整体表现较好。

8f349e25ffaa42968a6e4fb30b03f0aa.png

下图展示了四种替换模式与原始基线Transformer模型的BLEU分数差距,与基线相比,所有提出的替换模式都取得了有竞争力的结果,在四种替换模式中,ELR 表现最差,这是由于ELR的构建过于简单

e583031bfb1f4734a437eefcc508a172.png

此外,作者还对ALR替换模式在Transformer中的各种替换位置进行了消融实验,如下图所示。ALR在解码器自注意力层中的替换展现出了较好的性能,而在交叉注意力块的表现较差,作者分析造成这种现象的原因是ALR简单的前向传播结构缺乏描述交叉注意力中复杂的映射交互能力,因此,目前想直接使用MLP完全替换交叉注意力层仍然无法实现,同时还有一个缺陷,当使用ALR替换时,模型将只能接受固定长度的序列作为输入,而失去原本的灵活性

7c41ce7ff5f7467bb595ef2e602b0519.png

作者还提到,如果能够在对MLP替换层进行知识蒸馏的基础上,引入更加高级的参数搜索策略(例如使用贝叶斯优化)进一步优化MLP层的超参数,有可能会提升模型整体的性能,同时可以进一步缩减MLP替换层的参数量。此外,另一个潜在的研究方向就是对MLP层进行针对性设计,使其模拟交叉注意力模块中的复杂建模能力。

04. 总结

本文介绍了一种简单直接的Transformer架构优化方法,以Transformer模型中的核心操作自注意力(SA)和交叉注意力层(CA)为优化目标,直接使用简单高效的MLP层进行替换。根据替换抽象程度和模型参数缩减规模,作者提出了四种替换模式:ALR、ALRR、ASLR和ELR,然后通过知识蒸馏技术将原始Transformer模型的拟合能力迁移到这些轻量化的MLP层中。作者通过在基础NLP翻译基准上的实验表明,Transformer模型完全可以在Attention Free的情况下正常运作,但是需要保留原始的交叉注意力层。

参考

[1] Vaswani, A.; Shazeer, N.; Parmar, N.; Uszkoreit, J.; Jones, L.; Gomez, A. N.; Kaiser, L.; and Polosukhin, I. 2017. Attention Is All You Need. arXiv:1706.03762.


关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区 

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

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

相关文章

【Redis】非关系型数据库之Redis的增删改查

目录 一、Redis的数据类型分类 二、Redis的字符串类型string 三、Redis的列表list 四、Redis的哈希hash 五、Redis的无序集合set 六、Redis的有序集合zset 七、Redis的通用命令 一、Redis的数据类型分类 通常Redis的数据类型有五大基础类型 String(字符串&am…

解决Unexpected record signature 0X9maven 资源过滤

解决Unexpected record signature: 0X9|maven 资源过滤 记录问题:我们有个需求是根据excel模版导出一个excel表。我们的项目是SpringBoot,所以理所当然的把这个模版文件放到了,resources文件夹中。但是在导出文件的时候却遇到了invalid code …

关于tex中的表格设置

文章目录 控制表格列宽和行高控制表格列宽的同时实现居中tex中多表格排列单元格的合并与分割对单个单元格进行操作 控制表格列宽和行高 将下面的代码放在table环境内,放在tabular环境外 调整表格宽度和高度: \resizebox{\textwidth}{2cm}{%第一个{}是表…

Linux之静态库和动态库

目录 一、前言 二、对于库的理解 三、静态库 四、动态库 五、动静态库的加载 一、前言 在之前,我们讲了静态库和动态库,详情请跳转:静态库和动态库 下面我们将从工程师的角度,去了解静态库和动态库的形成过程,以…

EndNote快速上手

前言:用EndNote主要就是为了方便管理文章引用的文献,所以本篇就是针对EndNote在文章中引用文献需要的技巧,然后本文用的是EndNoteX9。 EndNote快速上手 创建文献资料库创建文献分组导入文献手动输入文件导入在线搜索 修改文献信息去重文献删除…

火出圈的ChatGPT,在地学、地球科学领域的强大应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

一篇文章带你了解Redis的发展史

Redis 是一个开源的内存数据存储和处理系统,它在过去的几十年中经历了重大的发展和演进。以下是 Redis 的发展历程概述: 早期阶段(2000年代初至中期):在这个时期,网站的访问量通常较低,单个数据…

在Colab上测试Mamba

我们在前面的文章介绍了研究人员推出了一种挑战Transformer的新架构Mamba 他们的研究表明,Mamba是一种状态空间模型(SSM),在不同的模式(如语言、音频和时间序列)中表现出卓越的性能。为了说明这一点,研究人员使用Mamba-3B模型进行了语言建模…

MyBatis第二课,灰度发布,@Results注解,使用xml书写mysql

目录 打印MyBatis的日志配置: 灰度发布:指发布环境,比如发布环境有200台机器,发布的时候是一批一批的机器的发布 2.删除与修改 使用Results注解,这样就和上面的别名一个意思,column是数据库的列 自动转驼峰&#…

ubuntu的动图截屏怎么做

在Ubuntu系统中,你可以通过以下步骤来截取动图(即屏幕录制并转换为GIF格式): 1,首先,你需要安装一些必要的工具。打开终端并输入以下命令以安装gtk-recordmydesktop(用于录制屏幕)、mplayer&am…

【快速解决】保姆级Anaconda安装教程

目录 第一步 ​编辑第二步 ​编辑第三步 第四步 第五步 第六步 ​编辑 第七步 第八步 第九步 第一步 在anaconda清华大学开源软件镜像站下载anaconda。点击这里进入 我这里选的是windows-x86_64。 第二步 下载好以后进行安装 第三步 第四步 第五步 选择…

VR全景博物馆——让博物馆“火起来”

不管是十里洋场的繁华、还是红岩革命的英勇,博物馆一直都拥有着丰富的历史沉淀和文化底蕴,通过VR全景拍摄制作技术,我们可以随时随地穿越空间,去切身体验那些历史人物的经历。 传统的实体博物馆受限于地理位置和布局,使…

Google cloud认证必备

Google cloud认证 ​这个可以走代理合作 ​价格优美 ​通过保证

线上问题整理

JVM 案例 案例一:服务器内存不足,影响Java应用 问题: 收到报警,某Java应用集群中一台服务器可用内存不足,超过报警阈值。 排查过程: 首先,通过Hickwall查看该应用各项指标,发现无论…

如何创建一个pytorch的训练数据加载器(train_loader)用于批量加载训练数据

Talk is cheap,show me the code! 哈哈,先上几段常用的代码,以语义分割的DRIVE数据集加载为例: DRIVE数据集的目录结构如下,下载链接DRIVE,如果官网下不了,到Kaggle官网可以下到: 1. 定义DriveDataset类&…

Qt OpenGL - 网格式的直角坐标系

Qt OpenGL - 网格式的直角坐标系 引言一、绘制3D网格1.1 绘制平行于y轴的线段1.2 绘制平行于三个轴的线段1.3 绘制不同的3D网格 二、网格式的直角坐标系三、参考链接 引言 在OpenGL进行3D可视化,只绘制三条坐标轴略显单薄,而绘制网格形式的坐标系则能更清…

更换为mainwindow.ui更新工程架构

文章目录 前言一、新建带mainwindow.ui的工程1.新建工程2. 添加工程模块添加opencv的库3.添加资源3.1工程上添加资源3.2引用资源 4.添加曲线文件4.1 复制关键文件到新工程4.2 新进显示曲线的ui带.h的为了方面名字取一样4.3添加曲线显示控件4.4 添加工具 5. 添加曲线.h文件内容6…

大数据深度学习ResNet深度残差网络详解:网络结构解读与PyTorch实现教程

文章目录 大数据深度学习ResNet深度残差网络详解:网络结构解读与PyTorch实现教程一、深度残差网络(Deep Residual Networks)简介深度学习与网络深度的挑战残差学习的提出为什么ResNet有效? 二、深度学习与梯度消失问题梯度消失问题…

Apache-Common-Pool2中对象池的使用方式

最近在工作中,对几个产品的技术落地进行梳理。这个过程中发现一些朋友对如何使用Apache的对象池存在一些误解。所以在写作“业务抽象”专题的空闲时间里,本人觉得有必要做一个关于对象池的知识点和坑点讲解。Apache Common-Pool2 组件最重要的功能&#…

nvm安装高版本Nodejs报错

文章概叙 之前使用1.1.17版本的nvm,切换使用18的Nodejs的时候报错,经过短暂的思考,决定使用1.1.12的nvm的无聊故事。 吐槽 今天的故事比较无奈,由于某些原因,现在需要做rn的开发,至于为啥不是flutter&am…