大模型面试准备(十三):深入剖析Transformer - 为什么选择自注意力机制?

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。


合集在这里:《大模型面试宝典》(2024版) 正式发布!


本系列文章的初衷是带领大家深入剖析Transformer,逐步揭示其内在机制和工作原理。本系列:为什么选择自注意力机制?

Transformer为了激发使用自注意力机制的动力,考虑了三个理想特性。第一个特性是每一层的总计算复杂度。另一个特性是可以并行化的计算量,这可以通过所需的最小顺序操作数来衡量。第三个特性是网络中长期依赖关系的路径长度。

01 起因:序列转换模型

Transformer出来之前,主流的序列转换模型都基于复杂的循环神经网络(RNN)卷积神经网络(CNN),包含编码器和解码器两部分。当时表现最好的模型还通过注意力机制将编码器和解码器连接起来。

Google Brain 翻译团队通过论文《Attention is all you need》提出了一种全新的简单网络架构——Transformer,它完全基于注意力机制,摒弃了循环和卷积操作

RNN图片

循环神经网络(RNN)、特别是长短时记忆网络(LSTM)和门控循环单元网络(GRU),已经在序列建模和转换问题中牢固确立了其作为最先进方法的地位,这些问题包括语言建模和机器翻译。

图片

使用 RNN/LSTM 简单表示传统编码器-解码器架构

这种架构存在一个显著的缺陷:编码器在将输入序列x1, x2, x3, x4转化为单个向量c的过程中,可能会导致信息丢失。由于所有信息都需被压缩至单一的向量中,这无疑增加了信息损失的风险。同时,解码器在解码过程中,需要从这一单一的向量中提取并解析出所需的信息,这无疑是一项极为复杂的任务。

这种局限性在很大程度上限制了模型的理解能力和性能上限。特别是对于处理长输入序列而言,简单的编码器和解码器结构可能难以应对其复杂性,从而影响了模型的整体表现。

Attention + RNN

与普通的编码器-解码器方法不同,注意力机制有助于查看编码器序列中的所有隐藏状态以进行预测。

基于注意力的架构在每个时间步都会关注每个编码器节点的每个隐藏状态,然后在确定哪个隐藏状态信息更丰富后进行预测。

图片

简单与基于注意力的编码器-解码器架构

注意力机制****已经成为各种任务中强大序列建模和转换模型的重要组成部分,允许模型在不考虑输入或输出序列中距离的情况下建模依赖关系。然而,在大多数情况下,这种注意力机制是与循环网络结合使用的

图片

编码器序列中使用的双向 LSTM 以及注意力权重

Self Attention

Transformer模型架构,它摒弃了循环结构,转而完全依赖注意力机制****来建立输入和输出之间的全局依赖关系

由于自注意力层的计算是基于矩阵乘法的,大部分计算都可以并行化,这样使得Transformer模型允许更多的并行化,并且在八个P100 GPU上仅训练十二小时后,即可达到翻译质量的新水平。

图片

Self- Attention并行计算注意力分数

02 动力:三个理想特性

为了激发Transformer使用自注意力机制的动力,考虑了三个理想特性。第一个特性是每一层的总计算复杂度。另一个特性是可以并行化的计算量,这可以通过所需的最小顺序操作数来衡量。第三个特性是网络中长期依赖关系的路径长度。

自注意力层 vs 循环层 vs 卷积层
图片

表1:对于不同的层类型,最大路径长度、每层复杂度和最小顺序操作数各不相同。其中,n 表示序列长度,d 表示表示维度,k 表示卷积的核大小,r 表示受限自注意力中邻域的大小。

总计算复杂度

在计算复杂度方面,当序列长度n小于表示维度d时,自注意力层比循环层更快,这在机器翻译中先进模型所使用的句子表示中通常是这种情况,例如单词片段和字节对表示。

卷积层通常比循环层更昂贵,高出k倍。然而,可分离卷积可以大大降低复杂度,降至O(k · n · d + n · d^2)。即使k = n,可分离卷积的复杂度也等于我们模型中采用的自注意力层和逐点前馈层的组合。

结论:自注意力层的总计算复杂度更低,计算速度更快。

可并行化计算量

由于自注意力层的计算是基于矩阵乘法的,大部分计算都可以并行化。这使得它在处理长序列时能够高效地利用硬件资源。

循环层的计算是顺序的,因为每个时间步的输出都依赖于前一个时间步的输出。因此,循环层的并行化能力相对较差,特别是在处理长序列时。

卷积层的卷积操作也可以并行化,尤其是在处理图像数据时。然而,与自注意力层相比,卷积层的并行化能力可能受到卷积核大小和步长的限制。

结论:自注意力层的可并行化计算量更大。

最小顺序操作数

同样由于自注意力层的计算是基于矩阵乘法的,因此其最小顺序操作数通常较低。尽管自注意力机制需要计算所有元素之间的注意力分数,但这一过程可以通过矩阵运算高效地实现。

循环层的最小顺序操作数相对较高,因为它需要逐个处理序列中的元素。每个元素的处理都依赖于前一个元素的状态,这导致了顺序操作的增加。

卷积层的最小顺序操作数取决于卷积层的配置和步长。在卷积操作中,虽然每个位置的输出可能依赖于输入的一个局部区域,但整个卷积过程仍然可以在一定程度上并行化,从而减少顺序操作的数量。

结论:自注意力层的最小顺序操作数更低。

03 结果:WMT 2014 翻译任务

在WMT 2014 翻译任务中,Transformer模型在English-to-German和English-to-French翻译任务上取得了优于之前最先进模型的BLEU分数,且其训练成本仅为这些模型的一小部分。这显示了Transformer在处理大规模翻译任务时的高效性和优越性。

图片

表2:与之前的最新模型相比,Transformer在English-to-German和English-to-French的newstest2014测试中实现了更高的BLEU分数,同时训练成本却仅为前者的一小部分。

英语到德语

在WMT 2014英语到德语的翻译任务上,Transformer模型比之前报道的最佳模型(包括模型组合)高出2.0以上的BLEU分数,建立了新的最佳BLEU分数记录,达到了28.4。该模型训练过程在8个P100 GPU上持续了3.5天,训练成本只是这些竞争模型的一小部分。

结论:基于自注意力层的Transformer模型等分最高。

英语到法语

在WMT 2014英语到法语的翻译任务上,Transformer模型取得了41.0的BLEU分数,超越了所有之前发布的单一模型,而且训练成本仅为之前最佳模型训练成本的四分之一以下。用于英语到法语训练的Transformer模型使用的丢弃率Pdrop为0.1,而不是0.3。

结论:基于自注意力层的Transformer模型等分最高。

04 展望:充满期待的多模态

Transformer 在序列转换模型取得了突破性进展,同时对基于注意力模型的未来充满期待,并计划将它们应用于其他任务。 例如:计划将Transformer扩展到涉及非文本输入和输出模态的问题,并研究局部、受限的注意力机制,以有效地处理如图像、音频和视频等大型输入和输出。

Lukasz Kaiser(Transformer八子之一,设计和实现tensor2tensor,取代早期代码库,改进结果,加速研究。),离开Google加入OpenAI,深度参与了GPT系列大模型开发,见证了充满期待的多模态逐渐成为现实。

图片

文本生成-ChatGPT

图片

ChatGPT是一个基于GPT(Generative Pre-trained Transformer)技术的聊天型人工智能模型,而GPT系列模型正是基于Transformer架构的。

ChatGPT通过预训练的方式从大量的语料中学习到通用的语言表示,然后通过微调来适应特定的任务。这使得ChatGPT能够理解用户输入的问题或指令,从中提取关键信息并做出相应的响应,从而提供自然流畅的对话体验。

图片

图片生成-DALL-E

图片

Dall-E是一款专注于图像生成领域,它能够将文本描述转化为高质量、富有创意的图像。这一功能得以实现,很大程度上依赖于Transformer架构。

在Dall-E中,Transformer模型被用于学习如何从文本描述中生成相应的图像标记。在生成图像时,Dall-E会接收一个文本描述作为输入,并根据训练好的Transformer模型生成一系列图像标记。

图片

深入剖析Transformer - 为什么选择自注意力机制?

Sora模型是一种文本到视频的生成模型,采用了扩散型变换器(Diffusion Transformer)作为其基础架构,这是一种结合了Transformer架构和扩散模型的深度学习模型。

Sora模型利用Transformer架构的并行化处理能力,提高了生成视频的效率。这使得Sora模型能够处理复杂的场景、角色表情和镜头运动,甚至在单个生成的视频中创建多个镜头和角色,同时保持角色和视觉风格的一致性。

图片

05 总结

本文全面概述了Transformer为什么选自注意力机制。因为自注意力机制能更好地处理长序列,计算起来简单,能并行计算,顺序操作更少。在翻译任务中,基于自注意力层的Transformer模型做得很好,还更省钱。同时,GPT已经将自注意力机制和Transformer模型用在更多地方,比如处理图片和视频,将多模态的展望成为现实。

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值