深入剖析Transformer-总体架构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

图片

例如:Seq2Seq模型框架包括两部分,分别是编码器和解码器,它们都是循环神经网络。它能实现从一个序列到另外一个序列的映射,而且两个序列的长度可以不相等。机器翻译就是典型Seq2Seq模型,从一个序列到另外一个序列的预测:

图片

在这里插入图片描述

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

图片

Transformer模型通过输入嵌入、位置编码、多头注意力、残差连接和层归一化、带掩码的多头注意力以及前馈网络等组件,实现了对输入序列的高效编码和输出序列的生成。

在每个步骤中,模型是自回归的,在生成下一个符号时,会将先前生成的符号作为额外的输入。

图片

输入嵌入

输入嵌入(Input Embedding): 负责将输入的符号或词元(如单词或字符)转换为连续的多维向量表示,以便模型能够理解和处理。这是文本向量化的一种形式,有助于模型捕捉文本中的语义和语法信息。

在Transformer模型中,输入嵌入是通过查找嵌入矩阵(Embedding Matrix)来实现的。当输入序列中的每个词元通过嵌入层时,它会在嵌入矩阵中查找其对应的向量表示。

这种向量表示是低维且连续的,使得模型能够捕捉词元之间的相似性和关系。

图片

位置编码

位置编码(Positional Encoding): 主要目标是在序列数据的嵌入向量中引入位置信息,以捕捉语言中单词或字符的顺序信息。

位置编码通常是通过将正弦和余弦函数的值添加到输入嵌入向量中来实现的。

图片

这些函数能够生成具有不同频率的波形,从而允许模型区分不同位置的信息。通过这种方式

,即使Transformer模型是

并行处理序列数据的,它也能够理解和利用单词在序列中的顺序信息。

图片

多头注意力

多头注意力(Multi-Head Attention): 主要目标是允许模型同时学习多组不同的自注意力权重。每个“头”可以被看作是一种注意力权重的不同子表示。

通过并行运行多个自注意力层并综合其结果,能够同时捕捉输入序列在不同子空间中的信息。每个头部独立地学习不同的注意力权重,并通过不同的线性变换对输入序列进行编码。通过这种方式,多头注意力能够同时关注来自输入序列的不同子空间的信息,从而增强了模型的表达能力。

图片

在这里插入图片描述

残差连接和层归一化(Add & Norm): 主要起到稳定模型训练、提高性能的作用,共同确保模型在训练过程中能够更有效地学习输入数据的特征,并生成更准确的输出。

残差连接(Add):本质上类似一种兜底策略,目的是当模型的深度已经达到最优解,后面再增加冗余层也至少不会导致之前的效果下降。它的做法是将上一层的输出直接连接到下一层的输出,及上一层的输出直接和下一层的原始输出对应位置相加形成最终输出。例如:模型一共50层,若第25层时模型已经充分学习达到测试集最佳效果,则让从26层开始到第50层学习一种恒等变换在最后一层将第26层的输出恒等映射出来

图片

层归一化(Norm): 这是一种正则化技术,用于调整神经网络中每一层的激活值的分布,使得模型的训练更加稳定并提升性能。基本上所有的规范化技术,都可以概括为如下的公式:

图片

对于隐层中某个节点的输出,即激活值a,进行非线性变换(如ReLU、tanh等)后得到h。层归一化的过程就是先计算这一层所有激活值的均值μ和方差σ²,然后使用这些统计量对h进行分布调整。

这种调整就是把“高瘦”和“矮胖”的都调整回正常体型(深粉色),把偏离x=0的拉回中间来(淡紫色)。

图片

在这里插入图片描述

带掩码的多头注意力(Masked Multi-Head Attention): 结合了多头注意力(Multi-Head Attention)和掩码(Mask),主要是为了在解码器的每个时间步中只关注之前的位置,避免当前位置的信息对之后的位置造成干扰。

带掩码的多头注意力可以通过设置掩码矩阵来实现,这个矩阵将未来的位置掩盖,在Softmax函数计算前将这些位置的注意力值设为负无穷,这样输出就不会受到未来位置的影响。

图片

在这里插入图片描述

**前馈神经网络(Feed Forward): ** 本质是一个全连接的网络层,它接收上一层的输出作为输入,并通过一系列线性变换和非线性激活函数来生成输出。它在编码器和解码器的每一层中都扮演着关键的角色。

图片

前馈神经网络通常由两个线性变换层和一个ReLU激活函数组成。第一个线性变换层将输入映射到一个更高的维度,ReLU激活函数为网络引入非线性,而第二个线性变换层则将输出映射回原始维度或所需的维度。前馈神经网络可以表示为以下公式:

FFN(x) = max(0, xW1 + b1)W2 + b2

其中,x是输入张量,W1、b1、W2、b2是可学习的权重矩阵和偏置向量。

max(0, xW1 + b1) 是一个激活函数,通常为ReLU。

图片

在这里插入图片描述

Transformer的编码器由多个相同的编码器层堆叠而成。在标准的Transformer结构中,通常有6个这样的编码器层

每个编码器层包含两个主要的子层:即多头自注意力(Multi-Head Attention)层和前馈神经网络(Feed-Forward Network)层。

在每个子层后面都有 残差连接(图中的虚线)和层归一化(LayerNorm) 操作,二者合起来称为Add & Norm操作。

图片

在这里插入图片描述

与编码器类似,Transformer的解码器也是由多个相同的解码器层堆叠而成。在标准的Transformer结构中,通常也有6个这样的解码器层。

每个编码器层包含三个主要的子层: 掩蔽自注意力层(Masked Self-Attention)、Encoder-Decoder注意力层、前馈神经网络(Feed-Forward Network)层。

同样,在每个子层后面都有**残差连接(图中的虚线)和层归一化(LayerNorm)**操作,二者合起来称为Add & Norm操作。

图片

05

总结

本文全面概述了Transformer模型的总体架构——编码器-解码器架构。编码器和解码器各自包含多个堆叠的层,这些层结构上相似但功能各异。文中简要介绍了Transformer的关键组件,包括输入嵌入、位置编码、多头注意力、残差连接和层归一化、带掩码的多头注意力以及前馈神经网络等

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值