Transformers

论文("Attention Is All You Need")总结:
题为《Attention Is All You Need》的论文介绍了一种名为Transformer的新型网络架构,该架构完全基于注意力机制,消除了对循环或卷积神经网络的需求。作者提出这种架构作为现有序列转换模型的替代方案。与传统模型相比,Transformer模型在质量、并行化能力和训练时间方面表现出卓越的优势。
论文首先讨论了循环神经网络(RNN)在序列建模和语言建模、机器翻译等序列转换任务中的突出地位。然而,RNN存在顺序计算和并行化受限的问题,尤其是在处理较长序列时。注意力机制已与RNN结合使用,以模拟序列中位置之间的依赖关系。作者提出了Transformer作为一种完全依赖注意力机制的模型架构,从而提高了并行化能力和性能。
论文介绍了Transformer模型的架构及其组件,包括编码器和解码器堆栈。编码器由多层自注意力机制和位置感知全连接网络组成。解码器除了编码器层外,还在编码器输出上引入了多头注意力。Transformer中使用的注意力函数被描述为缩放点积注意力,它计算查询和键之间的兼容性以获得加权值。
作者强调了Transformer模型相对于现有方法的优势,例如降低了计算复杂度和提高了并行化能力。他们进行了机器翻译任务的实验,证明Transformer在翻译质量方面优于以前的模型。Transformer在WMT 2014英德和英法翻译任务中取得了最先进的结果,同时训练时间显著减少。
此外,作者还展示了Transformer模型通过成功应用于英语成分句法分析(包括大量和有限的训练数据),对其他任务也具有良好的泛化能力。他们详细描述了模型的架构、训练过程和评估指标。
总之,该论文介绍了Transformer模型作为序列转换任务的新颖架构。通过利用注意力机制并消除对循环或卷积网络的依赖,Transformer实现了性能、并行化能力和训练效率的提高。实验结果验证了Transformer在机器翻译任务上的有效性,并创造了新的最先进结果。
解释:
Transformer神经网络是一个强大的深度学习模型,由Vaswani等人在2017年的里程碑式论文《Attention Is All You Need》中提出。它彻底改变了自然语言处理(NLP)领域,此后已应用于各种其他领域。Transformer架构基于注意力的概念,使其能够捕捉长距离依赖并在一系列任务中实现最先进的性能。
Transformer神经网络的应用
机器翻译:Transformer在机器翻译任务中取得了令人瞩目的成果,例如将文本从一种语言翻译成另一种语言。它能够捕捉长距离依赖并处理可变长度输入序列,使其非常适合此任务。
文本生成:Transformer可用于生成连贯且与上下文相关的文本。它已应用于生成新闻文章、对话系统和故事生成等任务。
摘要和文档理解:Transformer的注意力机制使其能够关注文档或文本的重要部分,从而有效地完成文本摘要、文档分类和情感分析等任务。
语音识别:Transformer也已应用于自动语音识别任务,将口语转换为书面文本。它在该领域也显示出有希望的结果。
问答:Transformer理解和生成文本的能力使其在问答系统中非常有用。它可以处理问题和上下文段落并生成相关答案。
图像识别:虽然主要设计用于NLP任务,但Transformer也已在计算机视觉任务中找到应用。它可以通过将图像视为一系列块来适应图像识别任务。
在Transformer神经网络(TNN)出现之前,循环神经网络(RNN)常用于顺序处理任务,包括机器翻译。然而,RNN的特点是处理速度慢、准确性有限,并且难以处理大型数据集。
RNN的工作原理: 旨在处理序列数据,其中当前输入不仅取决于当前状态,还取决于先前的输入和状态。
假设我们有这句话“I work at the university.”,我们想将其翻译成阿拉伯语“انا اعمل في الجامعة”。
在翻译任务中,RNN逐个分析每个单词(“I”、“work”、“at”、“the”、“university”),并在每个步骤更新隐藏状态。每个时间步的输出都受到当前单词和隐藏状态的影响,隐藏状态捕获了先前单词的历史信息。最终输出是阿拉伯语的翻译单词序列(“انا”、“اعمل”、“في”、“الجامعة”)。
RNN的问题:
- 处理长序列时计算缓慢
- 梯度消失或梯度爆炸
- 难以获取很久以前的信息
确实,RNN往往速度慢,并且难以处理大型数据集,这可能导致潜在的混淆或处理大量数据的困难。然而,
Transformer神经网络(TNN)在论文《Attention is all you Need》中引入了一项突破性的解决方案,称为“自注意力”。这项创新解决了这些问题,并为GPT、Bert、LLama、Stable Diffusion等后续发展铺平了道路。
本节将深入探讨论文中描述的Transformer神经网络的细节:
主流的序列转换模型基于复杂的循环或卷积神经网络,其中包括一个编码器和一个解码器。性能最佳的模型还通过注意力机制连接编码器和解码器。我们提出了一种新的简单网络架构Transformer,它完全基于注意力机制,完全摒弃了循环和卷积。在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时更易于并行化,并且训练时间显著减少。我们的模型在WMT 2014英德翻译任务中实现了28.4 BLEU,比现有最佳结果(包括集成模型)提高了2 BLEU以上。在WMT 2014英法翻译任务中,我们的模型在8个GPU上训练3.5天后,达到了41.8 BLEU的新单模型最先进水平,这仅是文献中最佳模型训练成本的一小部分。我们表明,Transformer通过成功应用于英语成分句法分析(包括大量和有限的训练数据),对其他任务也具有良好的泛化能力。
1 引言 循环神经网络,特别是长短期记忆网络[13]和门控循环网络[7],已牢固确立为序列建模和转换问题(如语言建模和机器翻译[35, 2, 5])中最先进的方法。此后,无数的努力继续推动循环语言模型和编码器-解码器架构的边界[38, 24, 15]。循环模型通常根据输入和输出序列的符号位置进行计算。通过将位置与计算时间步长对齐,它们生成一系列隐藏状态ht,作为前一个隐藏状态ht-1和位置t的输入的函数。这种固有的顺序性排除了训练示例内部的并行化,这在序列长度较长时变得至关重要,因为内存限制限制了跨示例的批量处理。最近的工作通过分解技巧[21]和条件计算[32]在计算效率方面取得了显著改进,同时在后一种情况下也提高了模型性能。然而,顺序计算的基本限制仍然存在。注意力机制已成为各种任务中引人注目的序列建模和转换模型不可或缺的一部分,允许建模依赖关系而不考虑它们在输入或输出序列中的距离[2, 19]。然而,除了少数情况[27],此类注意力机制都与循环网络结合使用。在这项工作中,我们提出了Transformer,这是一种模型架构,它放弃了循环,而是完全依赖于注意力机制来绘制输入和输出之间的全局依赖关系。Transformer允许显著更多的并行化,并且在8个P100 GPU上训练短短十二小时后,就可以在翻译质量上达到新的最先进水平。
模型架构:
大多数具有竞争力的神经序列转换模型都采用编码器-解码器结构[5, 2, 35]。在这种结构中,编码器将符号表示的输入序列(x1, ..., xn)映射到连续表示序列 z = (z1, ..., zn)。给定z,解码器随后逐个生成符号的输出序列(y1, ..., ym)。在每个步骤中,模型都是自回归的[10],在生成下一个符号时,将先前生成的符号作为额外输入。
详细解释:
首先,我们有左侧的架构,即“编码器”,右侧是“解码器”
- 输入嵌入
输入序列被转换为固定维度的嵌入,通常由词嵌入和位置编码组成。词嵌入捕获每个单词的语义含义。
- 而位置编码则使用正弦和余弦波指示单词在序列中的位置。
为什么使用三角函数?
正弦和余弦等三角函数自然地表示一种模型可以识别为连续的模式,因此模型更容易看到相对位置。通过观察这些函数的图,我们也可以看到一个有规律的模式,因此我们可以假设模型也会看到它。
编码器和解码器
Transformer模型由编码器和解码器组成。编码器和解码器都由多个层组成。每个层有两个子层:多头自注意力机制和前馈神经网络。编码器: 编码器接收输入序列并通过多层自注意力和前馈网络进行处理。它根据整个序列捕获每个单词的上下文信息。
解码器: 解码器逐词生成输出序列,关注编码输入序列的相关部分。它还包括一个额外的注意力机制,称为“编码器-解码器注意力”,帮助模型在解码过程中关注输入。
自注意力机制
首先,什么是自注意力: 它是Transformer模型的核心,自注意力机制。它允许输入序列中的每个单词关注所有其他单词,捕捉它们的相关性和影响,通过查看每个单词与句子中所有单词(包括它自己)的相似性和重要性来工作。
其次是机制
- 编码器块中的多头注意力: 在捕获不同类型的信息和学习单词之间不同关系方面发挥着关键作用。它允许模型同时关注输入序列的不同部分,并学习相同输入的不同表示。
解码器块中的掩码多头注意力: 与编码器块中的多头注意力相同,但这次是针对翻译句子,用于确保在解码过程中,每个单词只能关注它之前的单词。这种掩码阻止模型访问未来信息,这对于逐步生成输出序列至关重要。
解码器块中的多头注意力: 与编码器块中的多头注意力作用相同,但发生在输入句子和翻译句子之间,用于捕捉输入序列和生成输出序列之间的不同关系。它允许解码器关注编码器输出的不同部分,并学习上下文的多个表示。
两个块中的前馈: 它只是一个前馈神经网络,但在这篇论文中,神经元的数量是2048。
加和归一化。
自注意力机制:
Transformer模型的核心是自注意力机制。它允许输入序列中的每个单词关注所有其他单词,捕捉它们的相关性和影响。自注意力为每个单词计算三个向量:查询(Query)、键(Key)和值(Value)。
- 查询(Q):每个单词作为查询来计算注意力分数。
- Q:我在寻找什么。
- 键(K):每个单词作为键来确定它与其他单词的相关性。
- K:我能提供什么。
- 值(V):每个单词作为值对注意力加权和做出贡献。
- 我实际提供什么。
使用以下公式计算每个单词的注意力向量: 自注意力通过计算查询和键的点积(经过缩放),然后应用softmax函数来获得注意力权重。这些注意力权重决定了每个单词值对当前单词的重要性。
输出:
解码器的最后一层是一个线性投影,然后是softmax激活函数。它在词汇表上产生一个概率分布,允许模型通过从该分布中采样来生成输出词。
Softmax:
Softmax函数是一种数学函数,它将K个实数向量转换为K个可能结果的概率分布。它是逻辑函数向多维的推广,并用于多项式逻辑回归。Softmax函数常作为神经网络的最后一个激活函数,用于将网络的输出归一化为预测输出类别的概率分布。标准(单位)softmax函数的公式如下:
线性层
将嵌入再次转换为单词(它只有权重,没有偏置。)
训练:
研究中的注释和术语:
- 输入矩阵(序列,dmodel)
- 嵌入词。
- 位置编码。
- 自注意力。
- 查询、键值。
- 序列到序列(seq2seq)。
- 循环神经网络。
- 卷积神经网络。
- LTM。
- GNN。
- 编码器。
- 解码器。
- 多头注意力。
- 自回归。
- seq2seq(翻译)。
- seq2vec(句子分类)。
- 自然语言处理。
- Stable Diffusion。
- 翻译器。
- N:层数。
- dmodel:单词长度。
- dff:FFN中神经元的数量。
- h:多头注意力。
- dk:键、查询、值的长度。
- Pdrop:丢弃一个块的概率。
- BLEU:衡量标准,值越高越好
- PPL:衡量标准,值越高越差。
链接:
引用:
@article{Gumaan2024transformers,
title = "Transformer Model?",
author = "Gumaan, Esmail",
blog = "https://huggingface.co/blog/Esmail-AGumaan/",
year = "2024",
month = "June",
url = "https://huggingface.co/blog/Esmail-AGumaan/attention-is-all-you-need#transformers"
}