一文Transformer原理详解:Transformer模型框架、编码器(Encoder)、解码器(Decoder)

1、Transformer模型框架

主要由编码器(Encoder)和解码器(Decoder)两部分组成

在这里插入图片描述

Encoder将输入转化为固定维度的向量,由多个相同的层组成。每层有两个子层,分别是自注意力层(Self-Attention Layer)和前馈全连接层(Feedforward Layer)。其中,自注意力层通过计算输入的每个元素与其他元素的注意力分数来捕捉元素之间的长程依赖关系;而前馈全连接层将每个元素映射到另一个向量空间以捕捉更高级别的特征

Decoder将Encoder的输出和目标序列(如翻译后的句子)作为输入,生成目标序列中每个元素的概率分布,由多个相同的层组成。每层有三个子层构成,分别是自注意力层、编码器-解码器注意力层(Encoder-Decoder Attention Layer)和前馈全连接层。其中自注意力层和前馈全连接层作用与Encoder相同,而编码器-解码器注意力层则将Encoder当前位置的输入与Decoder所有位置计算注意力分数来获得与目标序列有关的信息

整个模型可以抽象为以下结构
在这里插入图片描述

2、编码器(Encoder)

编码器的主要作用是将输入编码处理为带有注意力信息的连续表示,可以将编码器堆叠N次使得每一层都有机会学习不同的注意力表示,从而提高Transformer的预测能力

Encoder部分主要包括: input Embedding输入嵌入/ Position Encoding位置编码/ Multi-Head Attention多头注意力机制/ Feed Forward前馈网络

2.1 input Embedding输入嵌入

因计算机本身并不能处理文字信息,故将输入文本转换成固定维度的向量表示,使其能够被模型处理

在这里插入图片描述

例:输入文本=“how are you?”,input Embedding层将每个单词映射到长度相等的向量

在这里插入图片描述

2.2 Position Encoding位置编码

  • 为何需要位置编码

由于transformer中使用的都是线性层,编码过程中没有明显的位置信息,字词位置的交换,仅相当于矩阵中行位置的交换。这带来并行计算的优势,但是也弱化了语序信息,因此需要引入位置编码来弥补,具体,我们来看一个例子

#假设线性层w
w = np.array([1, 2], [3, 4], [5, 6])
x = np.array([1, 2, 3], [4, 5, 6], [7, 8, 9])
print(x.dot(w))
#输出
"""
[[22, 28]
 [49, 64]
 [76, 100]]
"""

#仅交换输入位置
x = np.array([4, 5, 6], [7, 8, 9], [1, 2, 3])
print(x.dot(w))
#输出
"""
[[49, 64]
 [76, 100]
 [22, 28]]
"""
  • transformer中位置编码

位置编码通常是一组与input Embedding维度相同的向量,通过特定方式生成

在transformer中,采用正余弦位置编码

在这里插入图片描述

其中,是input Embedding嵌入向量的维度,是单词在序列中的位置,是嵌入向量中的维度索引 例,输入句子为“I am a robot”,那么其位置编码如下:

在这里插入图片描述

2.3 Multi-Head Attention多头注意力机制

  • 注意力机制的产生
    注意力机制从本质上讲和人类的选择性注意力机制类似,核心目标是从众多信息中选择对当前任务目标更加关键的信息,它允许模型对输入序列的不同位置分配不同的权重,以便在处理每个序列元素时关注最相关的部分

  • 自注意力机制
    在这里插入图片描述

用公式表示为:
在这里插入图片描述

注:除以是因为点积数量级增长很大,因此将softmax函数推向梯度极小区域反向传播时导致梯度消失而无法学习

如上图,注意力分数计算分为三步:

1、将一个token embedding分别与三个矩阵做矩阵乘后得到这个token对应的三个向量

2、为了找到token与其他token的关注关系,将token的向量与其他所有token的向量做内积,除以后得到注意力分数

3、过softmax将分数归一化到[0,1]之间,那么对于不太需要关注的token权重就会很小

  • 多头注意力机制
    在这里插入图片描述

多头注意力机制是在自注意力机制的基础上发展起来的,是自注意力机制的变体,旨在增强模型的表达能力和泛化能力。通过使用多个独立的注意力头,分别计算注意力权重,并将结果加权求和,从而获得更丰富的表示

2.4 残差连接
在这里插入图片描述

残差连接:将多头注意力机制的输出向量加到原始输入向量上,再做层归一化

2.5 Norm层归一化
在这里插入图片描述

Transformer中主要利用Layer-normal层归一化而不是批归一化,有助于避免训练过程中的梯度消失问题,提高模型稳定性

  • 为什么使用层归一化在NLP任务中序列长度通常是变化的,层归一化是对单个样本中所有特征进行归一化使得能够更好处理可变长度的情况

  • 什么时候使用在残差(Residual Connection)之后,Transformer模型中每个子层都有一个残差连接,紧接着做层归一化

2.6 Feed Forward前馈网络层
在Transformer中称作Position-wise Feed-Forward Networks(点对点前馈神经网络,简称FFN)

实质上为两个全连接层:第一个层将输入维度拓展(如从512维升到2048维),之后过激活函数(一般为ReLU或GELU);第二个层将升维后的输出缩减到原始维度(如从2048维缩减回512维)

前馈网络层处理结束后进行残差连接再进行层归一化.

3、解码器(Decoder)

解码器的主要作用是生成文本序列,主要包括:Masked Multi-Head Attention具有掩码的多头注意力机制/Multi-Head Attention多头注意力机制/Feed Forward前馈网络/分类器

3.1 Output Embedding
在这里插入图片描述

在Decoder中将目标序列通过Embedding层转换为密集的向量表示,随后通过Position Embedding加入序列中的位置信息,作为解码器的输入,用于模型训练

3.2 Masked Multi-Head Attention具有掩码的多头注意力机制
在这里插入图片描述

self-attention会计算当前词与其他词关系,但在用Decoder生成序列时,目标是预测当前位置的单词,模型只能使用到该位置之前的信息,其后面的信息不能被注意力机制看到,防止信息泄露,故需要想办法遮挡后面的信息

在Transformer中主要是通过应用掩码(Mask)操作实现
在这里插入图片描述

图片如上图,为防止解码器看到未来的信息,在已得到的注意力分数矩阵上加上一个mask矩阵,使掩码位置注意力变得负无穷大,得到Masked Scores

这样,Masked Scores经过softmax函数时,相对“当前词”的“未来词”的注意力得分变为0,即不会访问到未来信息

3.3 Multi-Head Attention多头注意力机制
在这里插入图片描述

这里的多头注意力机制原理同Encoder部分,只是K和V来自于Encoder,目标是将解码器当前生成的序列与原始输入序列(经过编码器处理的)联系起来,用于生成下一个目标词

3.4 Feed Forward前馈网络
参考Encoder部分的Feed Forward

3.5 分类器
在这里插入图片描述

最后,由一个线性层和一个softmax得到当前词概率

3.6 生成序列停止
在模型输出""时停止生成

至此,整个Transformer模型全部拆解完毕,具体解决了如下问题:

  • 长距离依赖关系长期依赖问题:遇到长文本时,传统RNN难以捕捉序列的远距离依赖关系。Transformer通过自注意力机制,能够在不同位置对序列中的每个元素赋予不同的重要性,从而有效地捕捉长距离依赖关系

  • 并行计算问题:传统的RNN训练时需按序列顺序依次进行,无法并行计算导致计算效率低。Transformer采用编码器-解码器框架,允许模型在输入序列上进行编码,然后在输出序列上进行解码,从而实现并行计算,大大提高模型训练的速度

  • 特征抽取问题:Transformer通过自注意力机制和多层神经网络结构,能够有效地从输入序列中抽取丰富的特征信息,为后续的任务提供更好的支持


4、如何系统学习掌握AI大模型?

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 2024行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

在这里插入图片描述

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费