一文彻底搞懂Transformer - 总体架构

技术

picture.image

Transformer

一、 RNN编码器-解码器架构

序列到序列模型(Seq2Seq) Seq2Seq模型的目标是将一个输入序列转换成另一个输出序列,这在多种应用中都具有广泛的实用价值,例如语言建模、机器翻译、对话生成等。

picture.image

Seq2Seq

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

picture.image

Transformer vs RNN

在Seq2Seq框架中,RNN的作用主要体现在两个方面:编码和解码。

编码器: RNN接收输入序列,并逐个处理序列中的元素(如单词、字符或时间步),同时更新其内部状态以捕获序列中的依赖关系和上下文信息。这种内部状态,通常被称为“隐藏状态”,能够存储并传递关于输入序列的重要信息。

picture.image

RNN编码器-解码器架构

解码器: RNN使用编码阶段生成的最终隐藏状态(或整个隐藏状态序列)作为初始条件,生成输出序列。在每一步中,解码器RNN都会根据当前状态、已生成的输出和可能的 下一个元素候选来预测下一个元素。

picture.image

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

picture.image

RNN LSTM GRU

神经网络算法 - 一文搞懂RNN(循环神经网络)

神经网络算法 - 一文搞懂LSTM(长短期记忆网络)

同时,RNN存在一个显著的缺陷:处理长序列时,会存在信息丢失。

编码器在转化序列 x1, x2, x3, x4为单个向量 c时,信息会丢失。因为所有信息被压缩到这一个向量中,处理长序列时,信息必然会丢失。

picture.image

RNN编码器-解码器架构

二、Transformer 总体架构

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

picture.image

注意力机制是全部所需

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

picture.image

注意力机制

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

picture.image

注意力机制

Transformer动画讲解 - 注意力机制

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

注意力分数是量化注意力机制中信息被关注的程度,反映了信息在注意力机制中的重要性。

picture.image

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

Transformer动画讲解 - 注意力计算Q、K、V

Transformer本质: Transformer是一种 基于 自注意力机制 的深度学习模型,为了解决 RNN无法处理长序列依赖问题 而设计的。

picture.image

Transformer vs RNN

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

picture.image

Transformer的架构

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

picture.image

Encoder(编码器)架构

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

picture.image

Decoder(解码器)架构

神经网络算法 - 一文搞懂FFNN(前馈神经网络)

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

picture.image

Transformer的核心组件

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

  • 位置编码:给输入向量添加位置信息,因为Transformer并行处理数据而不依赖顺序。
  • 多头注意力:让模型同时关注输入序列的不同部分,捕获复杂的依赖关系。
  • 残差连接与层归一化:通过添加跨层连接和标准化输出,帮助模型更好地训练,防止梯度问题。
  • 带掩码的多头注意力:在生成文本时,确保模型只依赖已知的信息,而不是未来的内容。
  • 前馈网络:对输入进行非线性变换,提取更高级别的特征。

picture.image

Transformer的核心组件

Transformer数据流转: 可以概括为四个阶段,Embedding(嵌入)、Attention(注意力机制)、MLPs(多层感知机)和Unembedding(从模型表示到最终输出)。

picture.image

Embedding -> Attention -> MLPs -> Unembedding****

Transformer动画讲解 - 数据处理的四个阶段

Transformer注意力层: 在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(多头因果自注意力)进行注意力计算

picture.image

Transformer注意力层**

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

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 GPU Scale-up 互联技术白皮书
近日,字节跳动正式发布基于以太网极致优化的 GPU Scale-up 互联技术白皮书,推出 EthLink 的创新网络方案,旨在为 AI 集群提供低延迟、高带宽的高速互联传输,满足 AI 应用对 GPU 之间高效通信的需求。这一举措标志着字节跳动在 AI 基础设施领域的突破,有望推动通用人工智能(AGI)和大语言模型(LLM)的进一步发展。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论