24个Transformer模型高效魔改变体盘点,无bug拿来即用

目前我们对Transformer模型的研究已经很全面了,关于它的复现成果也非常多,但都比较零散,不成系统,而且缺乏对Transformer改进变体的详细梳理,这对我们改模型写代码很不友好。

所以我今天特地帮大家整理了Transformer各组件的魔改方法以及创新思路,每种方法的来源论文以及复现代码都放上了,代码超级简洁,相信能给同学们提供不少灵感。

篇幅原因,论文和代码只做简单介绍,就不详细展示了,需要的同学看文末

精确注意力

论文:FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness

「简介:」FlashAttention是一种新的算法,它使得Transformer模型(一种广泛用于自然语言处理的深度学习模型)在处理长文本序列时能够更快且更节省内存。这个算法通过优化GPU内存的使用来减少内存读写次数,从而提高了计算效率。实验结果表明,使用FlashAttention训练的模型不仅训练速度更快,而且能够处理更长的文本序列,提高了模型的性能和能力。

通过持久内存增强自注意力机制

论文:Augmenting Self-attention with Persistent Memory

「简介:」论文介绍了一种新的模型,它仅由注意力层组成,用于增强自注意力机制。传统的Transformer网络包含两个连续的模块:前馈层和自注意力层。自注意力层允许网络捕捉长期依赖关系,通常被认为是Transformer成功的关键因素。基于这一直觉,作者提出了一种新模型,该模型通过增加持久内存向量来增强自注意力层,这些向量在前馈层中起到了类似的作用。由于有了这些向量,可以在不降低Transformer性能的情况下去除前馈层。评估结果显示,该模型在标准的字符级和单词级语言建模基准测试中带来了好处。

记忆transformer

论文:Memory Transformer

「简介:」作者描述了一种名为Memory Transformer的模型,它通过增加可训练的记忆组件来改进传统的Transformer模型。这种记忆增强的神经网络(MANNs)能够学习简单的算法,如复制或反转,并且可以通过反向传播成功地训练在从问答到语言建模的多样化任务上,其性能超越了复杂度相当的RNN和LSTM。在这个工作中,作者提出了对Transformer基线的几种扩展:(1)增加记忆标记来存储非局部表示;(2)为全局信息创建记忆瓶颈;(3)用专门的层控制记忆更新。

改善自注意力的规范化

论文:Transformers without Tears: Improving the Normalization of Self-Attention

「简介:」论文介绍了三种改进Transformer模型训练的方法。第一种是使用预规范化残差连接,可以不用预热直接用大学习率训练。第二种是用一个参数进行ℓ2规范化,这样可以训练得更快,效果也更好。第三种是固定词嵌入的长度,这也有助于提高性能。这些改进在小资源语言对上的实验表明,它们能够提高模型的收敛速度和翻译质量。但在大资源语言对上,预规范化可能会降低性能。

均方根层归一化

论文:Root Mean Square Layer Normalization

「简介:」RMSNorm是一种新的层归一化方法,它通过计算输入的根均方值来进行归一化。这种方法与传统的LayerNorm相比,具有更简单的计算过程,因此更高效。RMSNorm能够提供与LayerNorm相当的性能,同时减少模型的运行时间。实验表明,在多个任务和网络架构上,RMSNorm的性能与LayerNorm相当,但运行时间减少了7%~64%。

GLU变体改进Transformer

论文:GLU Variants Improve Transformer

「简介:」论文介绍了门控线性单元(GLU)的变体,它们通过使用不同的非线性(甚至是线性)函数来替代传统的sigmoid函数。作者在Transformer模型的前馈子层中测试了这些GLU变体,并发现其中一些变体比通常使用的ReLU或GELU激活函数能够提升模型的质量。

ReLU²

论文:Primer: Searching for Efficient Transformers for Language Modeling

「简介:」本文介绍了一种更高效的变压器模型——Primer,它通过在自注意力机制中进行简单的修改来减少训练成本。实验显示,Primer能够在不同计算规模下提升性能,并且在大规模参数配置下显著降低训练成本。例如,Primer在5亿参数的T5架构上将训练成本降低了4倍。此外,Primer能够在不同的代码库中使用,无需额外调整就能加速训练。

显式稀疏Transformer

论文:Explicit Sparse Transformer: Concentrated Attention Through Explicit Selection

「简介:」论文提出了一种名为显式稀疏 Transformer(Explicit Sparse Transformer)的新模型,旨在解决自注意力机制在提取上下文中不相关信息时可能遇到的问题。通过显式选择最相关的片段,该模型能够提高对全局上下文的注意力集中度。在一系列自然语言处理和计算机视觉任务上的实验结果表明,显式稀疏 Transformer在模型性能上具有优势。

对话式注意力

论文:Talking-Heads Attention

「简介:」本文介绍了一种称为“对话式注意力”的多头部注意力变体,它在softmax操作之前和之后引入了跨注意力头维度的线性投影。这种方法只增加了少量额外参数和适度的额外计算量,但在遮盖语言建模任务上取得了更好的困惑度,同时在迁移学习到语言理解和问答任务时也获得了更高的质量。

多查询注意力

论文:Fast Transformer Decoding: One Write-Head is All You Need

「简介:」本文提出了一种称为多查询注意力的变体,它通过在所有不同的注意力“头”之间共享键和值,大幅减小了这些张量的大小,从而降低了增量解码的内存带宽需求。实验证明,这种模型确实可以更快地解码,并且与基线相比只有轻微的质量下降。

注意力上的注意力

论文:Attention on Attention for Image Captioning

「简介:」本文提出了一种新的注意力机制,称为注意力上的注意力(AoA),用于改善图像字幕生成。这种机制帮助解码器更好地理解注意力结果与查询之间的相关性,从而减少误导性结果。将AoA应用于图像字幕模型后,该模型在MS COCO数据集上达到了新的最优性能。

通过重新排序子层来改进Transformer

论文:Improving Transformer Models by Reordering their Sublayers

「简介:」论文研究了Transformer网络中子层的不同排序对性能的影响。通过实验发现,改变自注意力和前馈子层的顺序可以在某些情况下提高模型的表现。提出了一种新的排列方式,称为三明治Transformer,它在一些语言建模任务上表现出了更好的性能,并且没有增加额外的参数、内存或训练时间。但是,这种新的排序方式并不适用于所有任务,因此需要进一步研究任务特定的子层排序以获得更好的结果。

Macaron Net

论文:Understanding and Improving Transformer From a Multi-Particle Dynamic System Point of View

「简介:」论文从多粒子动态系统的角度提出了对Transformer架构的新理解,将其数学上解释为一种数值常微分方程(ODE)求解器。通过这种视角,作者提出用Strang-Marchuk分裂方案替代Lie-Trotter分裂方案,以降低局部截断误差,并设计出一种新的网络结构——Macaron Net。实验结果表明,Macaron Net在监督和非监督学习任务上都优于传统的Transformer模型。

T5的简化相对位置编码

论文:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

「简介:」论文通过引入一个统一的框架,将所有基于文本的语言问题转换为文本到文本的格式,探索了自然语言处理(NLP)中迁移学习技术的全景。通过系统研究比较了预训练目标、架构、无标签数据集、迁移方法和其它因素在数十个语言理解任务上的表现。结合从探索中获得的洞见和大规模“Colossal Clean Crawled Corpus”数据,我们在摘要、问答、文本分类等多个基准测试中取得了最先进的结果。

残差注意力

论文:RealFormer: Transformer Likes Residual Attention

「简介:」本文提出了RealFormer,这是一种简单通用的技术,用于创建残差注意力层Transformer网络,它在包括掩码语言建模、GLUE、SQuAD、神经机器翻译、WikiHop、HotpotQA、自然问题和OpenKP等广泛的任务上显著优于传统的Transformer及其变体(如BERT、ETC等)。

增强递归

论文:ERNIE-Doc: A Retrospective Long-Document Modeling Transformer

「简介:」本文提出了ERNIE-Doc,一种基于递归Transformer的文档级语言预训练模型。通过回顾性馈送机制和增强的递归机制,ERNIE-Doc能够捕获完整文档的上下文信息,并且具有更长的有效上下文长度。作者通过一个额外的文档感知的段重排目标来预训练ERNIE-Doc,以明确学习段落之间的关系。在英文和中文的文档级任务上进行了各种实验,ERNIE-Doc在WikiText-103上将困惑度的语言建模结果提高到了16.8。

门控残差

论文:Stabilizing Transformers for Reinforcement Learning

「简介:」由于自注意力架构能有效地整合长时序信息和大规模数据,在NLP领域取得了突破性的成功。这种能力也可用于部分可观察的强化学习(RL)领域,但标准的Transformer架构很难优化。作者提出了对原始Transformer进行修改,以提高其稳定性和学习速度。这种修改后的架构名为Gated Transformer-XL(GTrXL),在具有挑战性的记忆环境中超过了LSTMs,并在多任务DMLab-30基准套件上取得了最先进的成绩。

ALiBi 位置嵌入

论文:TRAIN SHORT, TEST LONG: ATTENTION WITH LINEAR BIASES ENABLES INPUT LENGTH EXTRAPOLATION

「简介:」本文探讨了Transformer模型如何处理比训练时更长的序列。研究发现,通过改变位置表示方法,模型能够实现外推。作者提出了一种新的、更高效的位置表示方法——带线性偏差的注意力(ALiBi)。这种方法不需要添加位置嵌入到词嵌入中,而是通过对注意力分数施加与距离成比例的惩罚来引入位置信息。实验表明,使用ALiBi训练的模型能够在较短的序列上训练,并成功外推到更长的序列,同时训练速度更快,内存使用更少。

夹层范数

论文:CogView: Mastering Text-to-Image Generation via Transformers

「简介:」本文提出了CogView,一个具有40亿参数的Transformer模型,结合了VQ-VAE标记器,用以解决通用领域中的文本到图像生成问题。这个问题不仅需要一个强大的生成模型,还需要跨模态理解能力。作者还展示了针对各种下游任务的微调策略,例如风格学习、超分辨率、文本-图像排名和时尚设计,以及稳定预训练的方法,例如消除NaN损失。

ResiDual架构

论文:ResiDual: Transformer with Dual Residual Connections

「简介:」论文提出了一种新的Transformer架构——ResiDual,它结合了Post-LN和Pre-LN的连接方式,避免了各自的局限性。理论上,ResiDual避免了梯度消失问题;实证上,它在多个机器翻译任务中表现优于Post-LN和Pre-LN。因此,ResiDual可以作为AI模型的基础架构。

Normformer

论文:NormFormer: Improved Transformer Pretraining with Extra Normalization

「简介:」Pre-LayerNorm Transformer在预训练中遇到了梯度幅度不匹配的问题,可以通过添加归一化和缩放操作来解决。这增加了微小的计算成本,但显著提高了预训练和下游任务性能。对于 GPT3-Medium 架构,添加 NormFormer 可以更快达到最佳性能,并显著提高零样本性能。对于掩码语言建模,NormFormer 平均提高了 GLUE 性能。

余弦相似注意力

论文:Query-Key Normalization for Transformers

「简介:」低资源语言翻译是一个具有挑战性但社会价值高的NLP任务。在最近针对这一设置调整Transformer规范化的工作基础上,作者提出了QKNorm,一种修改注意力机制的规范化技术,使得softmax函数不易受到任意饱和的影响,同时不牺牲表达能力。具体来说,作者在将查询和键矩阵相乘之前,沿着头部维度对它们应用ℓ2规范化,然后用一个可学习的参数进行放大,而不是除以嵌入维度的平方根。

遗忘因果掩码

论文:Towards Better Few-Shot and Finetuning Performance with Forgetful Causal Language Models

「简介:」本文提出了一种提高大型语言模型性能的简单方法,即在训练时随机掩盖一些过去的词汇。这种方法被称为遗忘因果掩码(FCM),它可以帮助模型更好地学习语言表示,从而在少样本学习和微调任务上取得更好的效果。

动态位置偏差

论文:CrossFormer: A Versatile Vision Transformer Hinging on Cross-scale Attention

「简介:」作者提出了跨尺度嵌入层(CEL)和长短距离注意力(LSDA)。一方面,CEL将每个嵌入与不同尺度的多个补丁混合,为自注意力模块本身提供跨尺度特征。另一方面,LSDA将自注意力模块分为短距离和长距离两个部分,这不仅降低了计算负担,而且还保持了嵌入中的小尺度和大尺度特征。通过上述两种设计,作者实现了跨尺度注意力。此外,作者提出了一种动态位置偏差,使流行的相对位置偏差适用于可变大小的图像。依靠跨尺度注意力模块,作者构建了一个通用的视觉架构,称为CrossFormer,它适应可变大小的输入。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“24变体”获取论文+复现代码

码字不易,欢迎大家点赞评论收藏

  • 29
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
训练一个 Transformer 模型来进行图像分类是可行的,但需要一些前置知识和步骤。下面是一个简单的流程: 1. 确定数据集:首先需要确定要使用哪个数据集进行训练和测试。在这个任务中,您需要一个包含六类图像的数据集。 2. 数据预处理:对于图像分类任务,通常需要将图像转换为数字张量。您可以使用 MATLAB 的图像处理工具箱来完成这个任务。还可以使用数据增强技术来增加数据集的大小和多样性。 3. 构建 Transformer 模型:您可以使用 MATLAB 的深度学习工具箱中的 Transformer 层来构建您的模型。您可以参考 Transformer 论文中的模型结构,或者查看现有的 Transformer 模型实现。 4. 训练模型:使用您的数据集和构建的模型来训练模型。您可以使用 MATLAB 的深度学习工具箱中的训练函数来训练模型。在训练过程中,您可能需要进行超参数调整和模型调整。 5. 测试模型:一旦您的模型训练完成,您可以使用测试数据集来测试模型的性能。您可以使用 MATLAB 的深度学习工具箱中的测试函数来测试模型。 6. 模型部署:一旦您的模型经过测试并且达到了预期的性能水平,您可以将其部署到生产环境中。在 MATLAB 中,您可以使用深度学习工具箱中的代码生成器来生成 C++ 代码,并将其嵌入到您的应用程序中。 以上是一个基本的流程,但实际上在每个步骤中都有很多细节需要处理。如果您需要更详细的信息,请参考 MATLAB 的文档和深度学习教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值