您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
一文搞懂 Transformer(总体架构 & 三种注意力层)
 
作者:AllenTang
   次浏览      
 2024-7-1
 
编辑推荐:
本文将从Transformer的本质、Transformer的原理、Transformer的应用三个方面,带您一文搞懂Transformer(总体架构 & 三种注意力层)。希望对你的学习有帮助。
本文来自于微信公众号架构师带你玩转AI,由火龙果软件Linda编辑,推荐。

本文将从Transformer的本质、Transformer的原理、Transformer的应用三个方面,带您一文搞懂Transformer(总体架构 & 三种注意力层)。

Transformer

一、Transformer的本质

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

注意力机制是全部所需

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

Transformer vs RNN

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

RNN LSTM GRU

RNN编码器-解码器架构存在一个显著的缺陷:处理长序列时,会存在信息丢失。

编码器在转化序列x1, x2, x3, x4为单个向量c时,信息可能丢失。因为所有信息被压缩到这一个向量中,增加了信息损失的风险。解码器从这一向量中提取信息也很复杂。

RNN编码器-解码器架构

注意力机制:一种允许模型在处理信息时专注于关键部分,忽略不相关信息,从而提高处理效率和准确性的机制。它模仿了人类视觉处理信息时选择性关注的特点。

注意力机制

当人类的视觉机制识别一个场景时,通常不会全面扫描整个场景,而是根据兴趣或需求集中关注特定的部分,如在这张图中,我们首先会注意到动物的脸部,正如注意力图所示,颜色更深的区域通常是我们最先注意到的部分,从而初步判断这可能是一只狼。

注意力机制

Q、K、V:注意力机制通过查询(Q)匹配键(K)计算注意力分数(向量点乘并调整),将分数转换为权重后加权值(V)矩阵,得到最终注意力向量。

Q、K、V计算注意力分数

注意力分数的价值:量化注意力机制中某一部分信息被关注的程度,反映了信息在注意力机制中的重要性。

注意力分数的价值

Transformer的本质:Transformer是一种基于自注意力机制的深度学习模型,为了解决自然语言处理中的序列到序列(sequence-to-sequence)问题而设计的。

相较于RNN模型,Transformer模型具有2个显著的优势。

优势一:处理长序列数据。Transformer采用自注意力机制,能够同时处理序列中的所有位置,捕捉长距离依赖关系,从而更准确地理解文本含义。而RNN模型则受限于其循环结构,难以处理长序列数据。

优势二:实现并行化计算。由于RNN模型需要依次处理序列中的每个元素,其计算速度受到较大限制。而Transformer模型则可以同时处理整个序列,大大提高了计算效率。

Transformer vs RNN

二、Transformer的原理

编码器-解码器架构:Encoder-Decoder架构是自然语言处理(NLP)和其他序列到序列(Seq2Seq)转换任务中的一种常见框架。

这种架构的核心思想是将输入序列编码成一个固定大小的向量表示,然后利用这个向量来生成输出序列。

RNN编码器-解码器架构

机器翻译:机器翻译就是典型Seq2Seq模型,架构包括编码器和解码器两部分。能实现从一个序列到另外一个序列的映射,而且两个序列的长度可以不相等。

机器翻译

Transformer的架构:Transformer也遵循编码器-解码器总体架构,使用堆叠的自注意力机制和逐位置的全连接层,分别用于编码器和解码器,如图中的左半部分和右半部分所示。

Transformer的架构

Encoder编码器:Transformer的编码器由6个相同的层组成,每个层包括两个子层:一个多头自注意力层和一个逐位置的前馈神经网络。在每个子层之后,都会使用残差连接和层归一化操作,这些操作统称为Add&Norm。这样的结构帮助编码器捕获输入序列中所有位置的依赖关系。

Encoder(编码器)架构

Decoder解码器:Transformer的解码器由6个相同的层组成,每层包含三个子层:掩蔽自注意力层、Encoder-Decoder注意力层和逐位置的前馈神经网络。每个子层后都有残差连接和层归一化操作,简称Add&Norm。这样的结构确保解码器在生成序列时,能够考虑到之前的输出,并避免未来信息的影响。

Decoder(解码器)架构

编码器与解码器的本质区别:在于Self-Attention的Mask机制。

编码器与解码器的本质区别

Transformer的核心组件:Transformer模型包含输入嵌入、位置编码、多头注意力、残差连接和层归一化、带掩码的多头注意力以及前馈网络等组件。

Transformer的核心组件

输入嵌入:将输入的文本转换为向量,便于模型处理。

位置编码:给输入向量添加位置信息,因为Transformer并行处理数据而不依赖顺序。

多头注意力:让模型同时关注输入序列的不同部分,捕获复杂的依赖关系。

残差连接与层归一化:通过添加跨层连接和标准化输出,帮助模型更好地训练,防止梯度问题。

带掩码的多头注意力:在生成文本时,确保模型只依赖已知的信息,而不是未来的内容。

前馈网络:对输入进行非线性变换,提取更高级别的特征。

Transformer的核心组件

Transformer的3种注意力层:在Transformer架构中,有3种不同的注意力层(Self Attention自注意力、Cross Attention 交叉注意力、Causal Attention因果注意力)

编码器中的自注意力层(Self Attention layer):编码器输入序列通过Multi-Head Self Attention(多头自注意力)计算注意力权重。

解码器中的交叉注意力层(Cross Attention layer):编码器-解码器两个序列通过Multi-Head Cross Attention(多头交叉注意力)进行注意力转移。

解码器中的因果自注意力层(Causal Attention layer):解码器的单个序列通过Multi-Head Causal Self Attention(多头因果自注意力)进行注意力计算

Transformer的3种注意力层

先了解一些概念:Scaled Dot-Product Attention、Self Attention、Multi-Head Attention、Cross Attention、Causal Attention

Scaled Dot-Product Attention和Multi-Head Attention

Scaled Dot-Product Attention(缩放点积注意力):输入包括维度为dk的查询(queries)和键(keys),以及维度为dv的值(values)。我们计算查询与所有键的点积,每个点积结果都除以√dk,然后应用softmax函数,以得到注意力分数。

体现如何计算注意力分数,关注Q、K、V计算公式。

Scaled Dot-Product Attention(缩放点积注意力)

Self Attention(自注意力):对同一个序列,通过缩放点积注意力计算注意力分数,最终对值向量进行加权求和,从而得到输入序列中每个位置的加权表示。

表达的是一种注意力机制,如何使用缩放点积注意力对同一个序列计算注意力分数,从而得到同一序列中每个位置的注意力权重。

Self Attention(自注意力)

Multi-Head Attention(多头注意力):多个注意力头并行运行,每个头都会独立地计算注意力权重和输出,然后将所有头的输出拼接起来得到最终的输出。

强调的是一种实操方法,实际操作中我们并不会使用单个维度来执行单一的注意力函数,而是通过h=8个头分别计算,然后加权平均。这样为了避免单个计算的误差。

Multi-Head Attention(多头注意力)

Cross Attention(交叉注意力):输入来自两个不同的序列,一个序列用作查询(Q),另一个序列提供键(K)和值(V),实现跨序列的交互。

Cross Attention(交叉注意力)

Causal Attention(因果注意力):为了确保模型在生成序列时,只依赖于之前的输入信息,而不会受到未来信息的影响。Causal Attention通过掩盖(mask)未来的位置来实现这一点,使得模型在预测某个位置的输出时,只能看到该位置及其之前的输入。

Causal Attention(因果注意力)

疑问一:图中编码器明明写的是Multi-Head Attention,怎么就说是Self Attention?

编码器的Self Attention

疑问一解答:Scaled Dot-Product Attention、Self Attention、Multi-Head Attention实际上说的是同一件事,从不同维度解答如何获取同一个序列中每个位置的注意力权重。图上标注Multi-Head Attention强调需要多个头计算注意力权重。

疑问二:图中编码器明明写的也是Multi-Head Attention,怎么就说是Cross Attention?

编码器-解码器的Cross Attention

疑问二解答:Cross Attention、Multi-Head Attention实际上说的是也同一件事,从不同维度解答两个不同序列之间如何进行注意力转移。图上标注Multi-Head Attention强调需要多个头进行注意力转移计算。

疑问三:图中编码器明明写的也是Masked Multi-Head Attention,怎么就说是Causal Attention?

解码器的Causal Attention

疑问三解答:Causal Attention、Mask Multi-Head Attention实际上说的是也同一件事,解码器中Self Attention如何结合Causal Attention来保持自回归属性。

Mask Multi-Head Attention强调使用了多个独立的注意力头,每个头都可以学习不同的注意力权重,从而增强模型的表示能力。而Causal Attention则强调了模型在预测时只能依赖于已经生成的信息,不能看到未来的信息。

详细了解Transformer中的三种注意力机制:神经网络算法 - 一文搞懂Transformer中的三种注意力机制

三、Transformer的应用

Transformer应用NLP:由于Transformer强大的性能,Transformer模型及其变体已经被广泛应用于各种自然语言处理任务,如机器翻译、文本摘要、问答系统等。

Transformer:Vaswani等人首次提出了基于注意力机制的Transformer,用于机器翻译和英语句法结构解析任务。

BERT:Devlin等人介绍了一种新的语言表示模型BERT,该模型通过考虑每个单词的上下文。因为它是双向的,在无标签文本上预训练了一个Transformer。当BERT发布时,它在11个NLP任务上取得了最先进的性能。

GPT:Brown等人在一个包含45TB压缩纯文本数据的数据集上,使用1750亿个参数预训练了一个基于Transformer的庞大模型,称为GPT-3。它在不同类型的下游自然语言任务上取得了强大的性能,而无需进行任何微调。

Transformer模型及其变体

Transformer应用CV:Vision Transformer(ViT)是一种革命性的深度学习模型,它彻底改变了传统计算机视觉领域处理图像的方式。

ViT采用了Transformer模型中的自注意力机制来建模图像的特征,这与CNN通过卷积层和池化层来提取图像的局部特征的方式有所不同。

ViT模型主体的Block结构基于Transformer的Encoder结构,包含Multi-head Attention结构。

Vision Transformer

ViT的本质:将图像视为一系列的“视觉单词”或“令牌”(tokens),而不是连续的像素数组。

ViT的本质

ViT的工作流程:将图像分割为固定大小的图像块(patches),将其转换为Patch Embeddings,添加位置编码信息,通过包含多头自注意力和前馈神经网络的Transformer编码器处理这些嵌入,最后利用分类标记进行图像分类等任务。

ViT的工作流程

 

 

 
   
次浏览       
相关文章

基于图卷积网络的图深度学习
自动驾驶中的3D目标检测
工业机器人控制系统架构介绍
项目实战:如何构建知识图谱
 
相关文档

5G人工智能物联网的典型应用
深度学习在自动驾驶中的应用
图神经网络在交叉学科领域的应用研究
无人机系统原理
相关课程

人工智能、机器学习&TensorFlow
机器人软件开发技术
人工智能,机器学习和深度学习
图像处理算法方法与实践

最新活动计划
SysML和EA系统设计与建模 7-26[特惠]
Python、数据分析与机器学习 8-23[特惠]
软件架构设计方法、案例与实践 8-23[特惠]
嵌入式软件架构设计 8-22[线上]
Linux内核编程及设备驱动 7-25[北京]
 
 
最新文章
AIGC技术与应用全解析
详解知识图谱的构建全流程
大模型升级与设计之道
自动驾驶和辅助驾驶系统
ROS机器人操作系统底层原理
最新课程
人工智能,机器学习和深度学习
人工智能与机器学习应用实战
人工智能-图像处理和识别
人工智能、机器学习& TensorFlow+Keras框架实践
人工智能+Python+大数据
成功案例
某综合性科研机构 人工智能与机器学习应用
某银行 人工智能+Python+大数据
北京 人工智能、机器学习& TensorFlow框架实践
某领先数字地图提供商 Python数据分析与机器学习
中国移动 人工智能、机器学习和深度学习