加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Transformer模型有多少种变体?复旦邱锡鹏教授团队做了全面回顾

发布时间:2021-06-18 16:23:26 所属栏目:业界 来源:互联网
导读:自 2017 年 6 月谷歌发布论文《Attention is All You Need》后,Transformer 架构为整个 NLP 领域带来了极大的惊喜。在诞生至今仅仅四年的时间里,Transformer

自 2017 年 6 月谷歌发布论文《Attention is All You Need》后,Transformer 架构为整个 NLP 领域带来了极大的惊喜。在诞生至今仅仅四年的时间里,Transformer 已经成为自然语言处理领域的主流模型,基于 Transformer 的预训练语言模型更是成为主流。

 

随着时间的推移,Transformer 还开始了向其他领域的跨界。得益于深度学习的发展,Transformer 在计算机视觉(CV)和音频处理等许多人工智能领域已然杀疯了,成功地引来了学界和业界研究人员的关注目光。到目前为止,研究者已经提出了大量且种类驳杂的 Transformer 变体(又名 X-former),但是仍然缺失系统而全面的 Transformer 变体文献综述。

 

去年,谷歌发布的论文《Efficient Transformers: A Survey》对高效 Transformer 架构展开了综述,但主要关注 attention 模块的效率问题,对 Transformer 变体的分类比较模糊。

 

近日,复旦大学计算机科学技术学院邱锡鹏教授团队对种类繁多的 X-former 进行了综述。首先简要介绍了 Vanilla Transformer,提出 X-former 的新分类法。接着从架构修改、预训练和应用三个角度介绍了各种 X-former。最后概述了未来研究的一些潜在方向。

 

论文链接:

https://arxiv.org/pdf/2106.04554.pdf

 

回顾 Transformer 的发展

Transformer 最初是作为机器翻译的序列到序列模型提出的,而后来的研究表明,基于 Transformer 的预训练模型(PTM) 在各项任务中都有最优的表现。因此,Transformer 已成为 NLP 领域的首选架构,尤其是 PTM。除了语言相关的应用,Transformer 还被用于 CV、音频处理,甚至是化学和生命科学。由于取得了成功,过去几年研究者又提出了各种 Transformer 变体(又名 X-former)。这些 X-former 主要从以下三个不同的角度改进了最初的 Vanilla Transformer

 

模型效率。应用 Transformer 的一个关键挑战是其处理长序列时的效率低下,这主要是由于自注意力(self-attention)模块的计算和内存复杂度。改进的方法包括轻量级 attention(例如稀疏 attention 变体)和分而治之的方法(例如循环和分层机制);

 

模型泛化。由于 Transformer 是一种灵活的架构,并且对输入数据的结构偏差几乎没有假设,因此很难在小规模数据上进行训练。改进方法包括引入结构偏差或正则化,对大规模未标记数据进行预训练等;

 

模型适配。这一系列工作旨在使 Transformer 适应特定的下游任务和应用程序。

 

虽然可以根据上述角度来组织 X-former,但许多现有的 X-former 可能会解决一个或几个问题。例如,稀疏 attention 变体不但降低了计算复杂度,而且在输入数据上引入了结构先验以缓解小数据集上的过度拟合问题。因此,主要根据 X-former 改进 Vanilla Transformer 的方式进行分类更加有条理:架构修改、预训练和应用。考虑到本次综述的受众可能来自不同的领域,研究者主要关注的是通用架构变体,仅简要讨论了预训练和应用方面的具体变体。

 

Vanilla Transformer

架构

 

Vanilla Transformer 是一个序列到序列的模型,由一个编码器和一个解码器组成,二者都是相同的块 组成的堆栈。每个编码器块主要由一个多头 self-attention 模块和一个位置前馈网络(FFN)组成。为了构建更深的模型,每个模块周围都采用了残差连接,然后是层归一化模块。与编码器块相比,解码器块在多头 self-attention 模块和位置方面 FFN 之间额外插入了 cross-attention 模块。此外,解码器中的 self-attention 模块用于防止每个位置影响后续位置。

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读