前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >原创 | 一文读懂Transformer

原创 | 一文读懂Transformer

作者头像
数据派THU
发布于 2022-07-12 03:42:08
发布于 2022-07-12 03:42:08
4.5K00
代码可运行
举报
文章被收录于专栏:数据派THU数据派THU
运行总次数:0
代码可运行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
作者:陈之炎
本文约3500字,建议阅读7分钟Transformer 是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。

主流的序列到序列模型是基于编码器-解码器的循环或卷积神经网络,注意力机制的提出,优化了编解码器的性能,从而使得网络性能达到最优。利用注意力机制构建出新的网络架构Transformer, 完胜了循环或卷积神经网络。Transformer 是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。Transformer可以并行训练,训练时间更短。

1 Transformer的模型架构

序列到序列模型采用的是编码器-解码器结构,编码器将输入序列(,,……,映射成符号表示z=(,,……,,根据给定的Z ,解码器生成输出序列(,,……,,在每一个步长里,模型利用前一个步长中生成的向量和该步长的输入,生成输出符号。

Transformer模型架构如图1-1所示,编码器-解码器结构采用堆叠的多头注意力机制加全连接层,图中左边的是编码器结构,右边的是解码器结构:

图 1-1    堆叠的编码器-解码器结构(来源:网络)

编码器:编码器由6个相同的块结构堆叠而成 N=6,每个块结构进一步分成两个子层:即一个多头的自注意力机制和一个前馈网络全连接层,在块中的每一个子层之后,增加一个归一化层(Add&Norm),每个子层的输出均为归一化的LayerNorm(x + Sublayer(x)),包括词嵌入层,模块中所有子层的输出的维数均为512,即 = 512。

解码器:同理,解码器也由6个相同的块结构堆叠而成 N=6,每个块结构在编码器两个子层的基础之上,增加了第三个子层,即增加了一个多头自注意力子层。与编码器类似,在块中的每一个子层之后,增加一个归一化层(Add&Norm)。在解码器端,对解码器堆栈中的自注意力子层进行了修改,以防止位置编码和后续位置编码相关,通过这种掩蔽,确保了对位置i的预测只能依赖于小于i的位置的已知输出。

2 Self-attention 自注意力机制

Attention 函数将三元组Q(Query)、K(Key)、V(Value) 映射成输出,其中三元组Q(Query)、K(Key)、V(Value)和输出均为向量,输出是V(Value)的加权和,其中的权重是Q(Query)和K(Key)对应的组合计算出来的数值。

1)带缩放的点积注意力机制Scaled dot-product attention

带缩放的点积注意力机制(Scaled dot-product attention )的公式如下:

在上面公式中Q和K中的向量维度都是,V的向量维度是

,计算所有K向量和Q向量的点积,分别除以

,并应用一个Softmax函数来获得这些值的权重。实际上在self-Attention中,

,为了方便将Attention的计算转化为矩阵运算,论文中采用了点积的形式求相似度。常见的计算方法除了点积还有MLP网络,但是点积能转化为矩阵运算,计算速度更快。

两个最常用的注意力函数是:加注意力函数(Additive Attention)和点积注意力函数(Dot-product Attention)。除了

的缩放因子外,带缩放的点积注意力机制采用的是点积注意力函数,加注意力函数使用具有单个隐含层的前馈网络来计算兼容性函数。虽然这两者在理论复杂度上相似,但点积注意力函数更快,更节省空间,因为它可以使用高度优化的矩阵乘法码来实现。而对于

较小的值,这两种机制的性能相似,但在不加大更大

的值的情况下,加注意力函数优于点积注意力函数。对于较大的

值,点积相应变大,将Softmax函数推到梯度极小的区域。为了抵消这种影响,我们通过

来缩放点积。

Transformer模型在三处采用了多头注意力机制:

  • 在编码器-解码器注意力层,Q值来自上一个解码器层,K值和V值来自编码器的输出,从而使得解码器的每一个位置信息均和输入序列的位置信息相关,这种架构模仿了序列到序列模型编解码器注意力机制。
  • 编码器中包括自注意力层,在自注意力层中,Q 值、K值和V值均来自编码器上一层的输出,编码器中的位置信息参与到前一层的位置编码中去。
  • 同理,解码器中的自注意力机制使得解码器中的位置信息均参与到所有位置信息的解码中去。

2)全连接前馈网络

在Transfomer编码器-解码器架构的每一块中,除了包含多头注意力机制外,还包含一个全连接前馈网络,全连接前馈网络层包含两次ReLU激活函数的线性变换。

不同层之间的全连接前馈网络的参数各不相同,模型输入输出的维度是512 = 512, 层内部的维度是2048 ,即= 2048。

3)嵌入和Softmax

和其它序列到序列的模型相类似,Transformer模型利用词嵌入技术将输入标记和输出标记转化为维度为的向量,采用可训练的线性变换和Softmax函数,将解码器的输出变换成待预测的下一个标记的概率。在Transformer模型中,两个嵌入层和Softmax层之间共享权重矩阵。

3 位置编码Positional Encoding

由于Transformer模型中既没有递归,也没有卷积,需要获得输入序列精准的位置信息的话,必须插入位置编码。位置编码精准地描述了输入序列中各个单词的绝对和相对位置信息,即在编码器-解码器的底部输入嵌入中注入“位置编码”,位置编码和输入嵌入有相同的维度,所以二者可以实现相加运算,位置编码方式可以有多种,在Transformer模型中采用的是频率不同的三角函数:

其中pos 是位置,i是维数,也就是说,位置编码的每个维数都对应于一个正弦曲线。波长从2π到10000·2π的几何变化。之所以选择这个函数是因为假设它使得模型很容易地学习相对位置,对于任何固定偏移量k,

可以表示为

的线性函数。

首先,将自注意力机制和循环卷积网络(RNN )和卷积神经网络(CNN)进行对比,比较它们在变长序列

从三个因素来考量采用自注意力机制:首先是每一层计算的复杂程度;其次,是可以并行计算的计算量,用对序列操作的最小数目表示;第三,是网络中最长相关路径的长度。在序列学习任务中,对长序列相关性的学习是关键性的难点问题,前向和后向信号路径的长度往往是影响学习效率的关键因素,输入和输出序列之间的位置越短,前向和后向信号路径则越短,更容易学习到长序列的依赖关系,通过对比网络中输入输出序列位置的最长通路路径,来回答为什么采用自注意力机制来搭建Transformer模型。

 表 3-1  不同层序列操作的的最大路径长度、每层的复杂性和最小操作数

如表3-1所示 :不同层序列操作的的最大路径长度、每层的复杂性和最小操作数。n是序列长度,d是表示维数,k是卷积的核大小,r是受限自注意力中的邻域的大小。在表3-1中,自注意力机制通过

操作将序列的位置信息关联起来,而RNN则需要对序列进行

次操作。从计算的复杂程度来看,当序列长度n小于表示向量的维度d 时,在机器翻译任务中性能能达到最优。为了提高超长输入序列的计算性能,限制自注意力中的邻域r的大小,从而会使得最长相关路径的长度变为

卷积核维度为k 的单卷积层无法实现所有输入和输出位置信息的连接,所以要求有

层卷积层堆叠,使得最长相关路径的长度变长。通常,CNN的训练成本比RNN的训练成本要高。

从表3-1中的对比还可以看出,自注意力机制在复杂程度、并行计算的计算量和网络中最长相关路径的长度三方面均占有优势。

4 Transformer 模型的训练

4.1训练数据和批次大小

在标准的WMT2014英语-德语数据集上进行训练,这个数据集包括大约450万个句子数据对。句子采用字节对编码进行编码,源-目标词汇表中共享大约37000个标记。对于英语-法语,使用了更大的WMT2014英语-法语数据集,由3600万个句子组成,并将标记分割为32000词汇。句子对按近似的序列长度排列在一起。每个训练批都包含一组句子对,其中包含大约25000个源标记和25000个目标标记。

4.2 硬件配置

使用8 NVIDIAP100 GPU上训练了Transfomer模型,使用超参数的基本模型,每个训练步长大约需要花费0.4秒的时间,对基本模型总共训练了10万步或12个小时。对于大模型,步长时间为1.0秒,大模型训练了30万步(3.5天)。

4.3 优化器

采用Adam 优化器,参数设置为h β1 = 0.9, β2 = 0.98,并依据下述公式调整学习率:

对应于第一个warmup_steps训练步长,学习率线性增加,在后续步长中,学习率随着步长的平方根成正比例下降,其中,warmup_steps =4000。

4.4 正则化

在训练过程中采用了三种正则化方法:

残差Dropout:在添加子层的输入和归一化之前,将Dropout机制应用于每个子层的输出,同时在编码器-解码器堆叠的嵌入过程和位置编码过程中加入Dropout机制,

= 0.1。

4.5 训练结果

机器翻译

在WMT2014英德翻译任务中,Transformer (big)比之前报告的最佳模型(包括集成)高出2.0多个BLEU,获得BLEU分数为28.4。该模型的配置列于表5-2的底部。在8个P100 GPU 上进行训练需要3.5天。甚至基本模型也超过了所有之前发布的模型和集合,训练成本也大幅度缩减。

在WMT2014年英法翻译任务中Transformer (big)获得了BLEU分值为 41.0分,优于之前发布的所有其它模型,训练成本降低 1/4。

表4.5-1 在英德和英法翻译任务中Transformer模型的BLUE 分值和其它模型BLUE 分值的对比(来源:网络)

表4.5-1同时将翻译质量和训练成本与其他模型架构的翻译质量和训练成本进行了比较。通过比较训练时间、所使用的GPU的数量以及对每个GPU5的持续单精度浮点容量的估计来估计用于训练模型的浮点操作的数量。

为了评估Transformer模型是否可以推广到其他任务,在英语选区解析上进行了实验。这个任务提出了具体的挑战:输出受到强大的结构约束,且长度远远长于输入。此外,RNN序列对序列模型还无法在小数据体系中获得最为先进的结果。

通过在宾夕法尼亚州《华尔街日报》的数据集上训练了大约40K句子,数据模型为

的4层Transformer。此外,还在半监督设置下训练它,使用更大的高置信度和伯克利解析器语料库,大约1700万语句。对《华尔街日报》的设置使用了16K标记词汇,对半监督的设置使用了32K标记词汇。

结论:Transformer是采用自注意力机制的序列到序列模型,在编码器-解码器架构的神经网络中,用多头自注意力机制取代了RNN 层。对于翻译任务,Transformer的训练速度可以比基于循环层或卷积层的体系架构要快得多。关于2014WMT英德语和WMT2014英法翻译任务,实现了不错的性能。在前一项任务中,Transformer模型的性能甚至优于之前报告的所有其它模型。

作者简介

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习自然语言处理(NLP)方面积累有一定的经验。

编辑:于腾凯

校对:林亦霖

数据派研究部介绍

数据派研究部成立于2017年初,以兴趣为核心划分多个组别,各组既遵循研究部整体的知识分享实践项目规划,又各具特色:

算法模型组:积极组队参加kaggle等比赛,原创手把手教系列文章;

调研分析组:通过专访等方式调研大数据的应用,探索数据产品之美;

系统平台组:追踪大数据&人工智能系统平台技术前沿,对话专家;

自然语言处理组:重于实践,积极参加比赛及策划各类文本分析项目;

制造业大数据组:秉工业强国之梦,产学研政结合,挖掘数据价值;

数据可视化组:将信息与艺术融合,探索数据之美,学用可视化讲故事;

网络爬虫组:爬取网络信息,配合其他各组开发创意项目。

点击文末“阅读原文”,报名数据派研究部志愿者,总有一组适合你~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派THUID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”加入组织~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Attension is All You Need 论文笔记
主流的序列转换模型(dominant sequence transduction models)都是基于复杂的递归神经网络或者卷积神经网络,包括一个编码器(encoder)和一个解码器(decoder)
Mezereon
2020/06/23
6250
Attension is All You Need 论文笔记
通吃BERT、GPT-2,用TF 2.0实现谷歌破世界纪录的机器翻译模型Transformer
Transformer是谷歌在2017年提出的一个革新性的NLP框架,相信大家对那篇经典论文吸睛的标题仍印象深刻:Attention Is All You Need。
新智元
2019/08/20
8830
通吃BERT、GPT-2,用TF 2.0实现谷歌破世界纪录的机器翻译模型Transformer
神经网络算法 —— 一文搞懂Transformer !!
本文将从 Transformer的本质、Transformer的原理 和 Transformer架构改进三个方面,搞懂Transformer。
JOYCE_Leo16
2024/03/22
32.3K0
神经网络算法 —— 一文搞懂Transformer !!
Transformer 原理解析
本文是对 Transformer 原始论文( Attention Is All You Need )的解读。
口仆
2020/08/17
1.7K1
Transformer 原理解析
想研究BERT模型?先看看这篇文章
序列转换方式由基于复杂递归神经网络(RNN)和卷积神经网络(CNN)的编码器和解码器模型主导。表现最佳的模型也只是通过一个注意力机制来连接了编码器和解码器。我们提出一个新的简单网络架构——Transformer。相比表现最佳的模型,该架构仅仅基于注意力机制,完全摒弃了递归和卷积。从两个机器翻译任务的实验结果显示,Transformer的效果更优秀,同时有更好的并行性,显著的减少了训练的时间。我们的模型在WMT2014年发布的“英-德”翻译任务上达到了28.4 BLEU【注解1】,超越了该任务上现有的最好的记录2个BLEU,包括总体效果。在英-法翻译任务上,我们的模型在8块GPU上训练了3.5天,并创造了单模型最好BLEU分数——41.8。相比文献中的最佳模型,这个训练成本不高。Transformer在其它任务上也有好的泛化能力,我们将其应用于English constituency parsing(英语成分句法分析),无论在大量的训练数据上还是有限的训练数据上都获得了成功。
AI粉嫩特工队
2019/09/23
8290
想研究BERT模型?先看看这篇文章
Transformer架构
Transformer架构是一种深度学习模型,主要用于自然语言处理任务。它由Google在2017年提出,其核心思想是通过自注意力(Self-Attention)机制,使模型能够同时处理多个位置的输入,从而更好地捕捉输入数据中的长距离依赖关系。
七条猫
2024/09/15
4740
Transformer架构
Transformer 工作原理
Transformer 是一种基于 自注意力机制(Self-Attention) 的深度学习模型架构,最初用于自然语言处理(NLP),但现已扩展到计算机视觉、语音处理等领域。以下是 Transformer 的工作原理及其核心机制的详细说明:
Linux运维技术之路
2025/02/04
4110
Transformer 工作原理
AI生成中Transformer模型
在深度学习中,有很多需要处理时序数据的任务,比如语音识别、文本理解、机器翻译、音乐生成等。
Dlimeng
2023/12/20
7590
AI生成中Transformer模型
一文理解透Transformer
"Attention Is All You Need"是一篇于2017年发表的开创性论文,首次介绍了Transformer模型。
double
2024/04/11
2.6K0
一文理解透Transformer
一文搞懂 Transformer 工作原理 !!
本文将从单头Attention工作原理、多头Attention工作原理、全连接网络工作原理三个方面,实现一文搞懂Transformer的工作原理。
JOYCE_Leo16
2024/03/19
3.2K0
一文搞懂 Transformer 工作原理 !!
【谷歌机器翻译破世界纪录】仅用Attention模型,无需CNN和RNN
【新智元导读】 谷歌在机器翻译上的一项最新研究:仅使用注意力机制构建模型,不需要CNN和RNN。作者称,在机器翻译上这一模型效果超越了当下所有公开发表的机器翻译模型,在BLUE上取得创纪录的成绩。训练速度和效率上: 8 颗 P100 GPU 上3.5 天完成训练。该研究可以看成是对Facebook此前机器翻译突破的回应:不久前,Facebook发布了基于卷积神经网络的方法,取得了当时最高准确度,并且速度是谷歌基于循环神经网络(RNN)系统的9倍。 谷歌大脑、谷歌研究院和多伦多大学学者合作的一项新研究称,使用
新智元
2018/03/28
1.1K0
【谷歌机器翻译破世界纪录】仅用Attention模型,无需CNN和RNN
Transformer图解
Transformer正在席卷自然语言处理领域。 这些令人难以置信的模型正在打破多项 NLP 记录并推动最先进的技术发展。 它们被用于许多应用程序,如机器语言翻译、会话聊天机器人,甚至为更好的搜索引擎提供动力。
xiangzhihong
2023/12/27
3650
Transformer图解
【AI 进阶笔记】注意力机制及 Transformer 讲解
在自然语言处理(NLP)领域,长久以来我们一直依赖于序列到序列(Seq2Seq)模型来解决翻译、文本生成等问题。传统上,RNN(循环神经网络)和 LSTM(长短期记忆网络)是最常见的模型。然而,这些模型的计算过程非常依赖顺序,无法并行化,因此在处理长序列时效率低下。今天,我们将深入研究一种全新的架构——Transformer,它彻底改变了这个局面。
繁依Fanyi
2025/03/26
3650
一文看懂AI的 Transformer 架构!
转换器,一种将输入序列转换或更改为输出序列的神经网络架构。它们通过学习上下文和跟踪序列组件之间的关系来做到这一点。例如,请考虑以下输入序列:“天空是什么颜色的?” 转换器模型会使用内部数学表示法来识别颜色、天空和蓝色这三个词之间的相关性和关系。利用这些知识,它会生成输出:“天空是蓝色的。”
JavaEdge
2024/07/22
2.1K0
一文看懂AI的 Transformer 架构!
图解Transformer(完整版)!
审稿人:Jepson,Datawhale成员,毕业于中国科学院,目前在腾讯从事推荐算法工作。
Datawhale
2020/11/06
1.6K0
图解Transformer(完整版)!
【调研】详解Transformer结构——Attention Is All You Need
        Transformer是一个完全依赖自注意力的面向sequence to sequence任务的NLP模型,由谷歌大脑在17年的论文《Attention is all you need》中首次提出。它抛弃了传统的CNN和RNN神经网络,整个网络结构完全由Attention机制以及前馈神经网络组成,它解决了RNN长期依赖和无法并行化以及CNN缺失全局特征等问题。(尽管LSTM等门机制的结构一定程度上缓解了长期依赖的问题,但是对于特别长期的依赖现象,LSTM依旧无能为力。)
小锋学长生活大爆炸
2022/10/28
1.4K0
解析广泛应用于NLP的自注意力机制(附论文、源码)
本文基于深度学习的注意力(Attention)机制与你分享一些学习总结。 近年来,注意力(Attention)机制被广泛应用到基于深度学习的自然语言处理各个任务中,之前我对早期注意力机制进行过一些学习总结 [1]。 随着注意力机制的深入研究,各式各样的 Attention 被研究者们提出。在 2017年 6 月 Google 机器翻译团队在 arXiv 上放出的 Attention is All You Need [2] 论文受到了大家广泛关注,自注意力(self-attention)机制开始成为神经网络
数据派THU
2018/06/12
1.3K0
小白看得懂的图解Transformer
Trasnformer可以说是完全基于自注意力机制的一个深度学习模型,因为它适用于并行化计算,和它本身模型的复杂程度导致它在精度和性能上都要高于之前流行的RNN循环神经网络
算法进阶
2023/10/23
2K0
小白看得懂的图解Transformer
BERT大火却不懂Transformer?读这一篇就够了
编者按:前一段时间谷歌推出的BERT模型在11项NLP任务中夺得SOTA结果,引爆了整个NLP界。而BERT取得成功的一个关键因素是Transformer的强大作用。谷歌的Transformer模型最早是用于机器翻译任务,当时达到了SOTA效果。Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行。并且Transformer可以增加到非常深的深度,充分发掘DNN模型的特性,提升模型准确率。在本文中,我们将研究Transformer模型,把它掰开揉碎,理解它的工作原理。
大数据文摘
2019/01/23
1.1K0
BERT大火却不懂Transformer?读这一篇就够了
【DL】Self-Attention与Transformer
答:编码器-解码器(Encoder-Decoder)模型最初是由Cho等提出应用在机器翻译中。由于在机器翻译中是文本到文本的转换,比如将法语翻译成英语,Sutskever等也称编码器-解码器模型为序列到序列学习(Seq2Seq)。
yuquanle
2020/02/25
1.1K0
相关推荐
Attension is All You Need 论文笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验