Transformer模型-2-模型架构

Transformer是什么

Transformer是目前最流行的特征抽取器,在大部分的场景中已经取代了RNN。 从BERT、T5到GPT其基座都是Transformer, 不管哪一个的出现都在相应领域引发了轰动。

Transformer vs RNN

RNN

  1. RNN不能并行。RNN会依赖前一时刻输出的隐层状态,导致RNN必须一步一步走完,无法并行结果是让运行变慢
  2. RNN词间距过长。词间距是两个词相隔的距离,当距离过长可能会导致梯度消失或梯度爆炸等问题。

TRANSFORMER

  1. transformer并行运行且速度极快;
  2. transformer每个词之间的词间距都是1;

上述两点奠定了transformer是目前最流行的特征抽取器。

Transformer理解

从整个深度学习流程来描述Transformer所处的工作位置,我们可以简单的把Transformer看成一个盒子:

在这里插入图片描述

将上述的盒子展开后会发觉transformer是由encoder与decoder构成,而每个encoder与decoder又由6个相同的层组成,如此盒子变成如下形式:

image.png

后续,我们陆续展开transformer内部的结构加以分析与阐述

总架构图

image.png

大部分神经序列转导模型都有一个编码器-解码器结构。 编码器输入序列用x(x1,…,xn)表示,输出用z(z1,…,zn)有示。 根据z解码器生成符号的一个输出序列有用y(y1,…,ym)表示 ,一次一个元素。 在每一步中,模型都是自回归的,当生成下一个时,使用先前生成的符号作为附加输入。

transformer也遵循了encoder-decoder架构,encoder和decoder都使用self-attention和Feed Forward。论文《Attention Is All You Need》中给出transformer的模型架构图如上所示,其中EncoderDecoder都包含6个block,这6个block除了参数各自随机初始化外结构相同基本相同。

Encoder:每一层都有两个子层。

  • 第一层是一个Multi-Head Attention(多头注意机制)
  • 第二层是简单的、位置完全连接的Feed Forward(Feed Forward Neural Network 前馈神经网络),由两个线性变换组成,之间有一个ReLU激活。
  • 每个子层会叠加一个Add&Norm, 即采用残差连接,接着进行特征归一化(标准化),每个子层的输出都是LayerNorm(x +Sublayer(x)),其中Sublayer(x) 是由子层本身实现的函数。

Decoder: 除了每个编码器层中的两个子层之外,解码器还插入第三个子层:

  • 第一层是一个Masked Multi-Head Attention,妈注意力加入了masked 以防止位置关注到后面的位置。这种掩码结合将输出嵌入偏移一个位置,确保对位置的预测 i 只能依赖小于i的已知输出
  • 第二层是 (Cross) Multi-Head Attention,该层对编码器堆栈的输出执行multi-head attention
  • 与编码器类似,在每个子层都叠加一个Add&Norm, 即采用残差连接,接着进行特征归一化(标准化)。

为了方便残差连接,Transformer模型中的所有子层以及嵌入层产生的输出维度都为dmodel=512d_{model} = 512dmodel​=512。

输入

transformer的输入用到了的嵌入(Embedding)将输入词符和输出词符转换为维度为dmodeld_{model}dmodel​的向量。

encoder的输入层和decoder的输入层是一样的结构,都是token embedding(词向量)+ positional embedding(位置向量) , 得到最终的输入向量

其中Word Embedding(词嵌入) 负责将自然语言转化为与其对应的独一无二的词向量表达, 而Position Embedding(位置嵌入) 表示单词出现在句子中的位置。理由是Transformer是使用全局信息,无法捕捉到序列顺序信息的,需要使用Position Embeddin表示句子位置。关于位置编码transform采用了正弦和余弦函数,公式如下:

PEpos,2i=sin(pos100002i/modal)−PEpos,2i=cos(pos100002i/modal)PE_{pos,2_i} = sin(\frac{pos}{10000^{2i/modal}}) \\ - \\ PE_{pos,2_i} = cos(\frac{pos}{10000^{2i/modal}})PEpos,2i​​=sin(100002i/modalpos​)−PEpos,2i​​=cos(100002i/modalpos​)

注意力机制

Attention函数可以描述为将query和一组key-value对映射到输出,其中query、key、value和输出都是向量。 输出为value的加权和,其中分配给每个value的权重通过query与相应key的兼容函数来计算。

query、key、value 在后面的章节中会描述为 Q、K、V

多头注意力机制

image.png

图中红色圈中的部分为 Multi-Head Attention,是由多个Self-Attention组成的,可以看到 Encoder 包含一个 Multi-Head Attention,而 Decoder 包含两个 Multi-Head Attention 。

多头注意力机制的内部结构:

image.png

Scaled Dot-Product Attention

从多头注意力的内部结构我们可以看到其核心是由H个"Scaled Dot-Product Attention"组成的注意力层,该层我们称自注意力层(self-attention)", 输入由query、dk维的key和dvquery、d_k 维的key和 d_vquery、dk​维的key和dv​维的value组成。我们计算query和所有key的点积、用dk\sqrt{d_k}dk​​ 相除,然后应用一个softmax函数以获得值的权重。

数学公式如下:

Attention(Q,K,V)=softmax(QKTdk)Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})Attention(Q,K,V)=softmax(dk​​QKT​)

注意力总结

在这里插入图片描述

FeedForward(前馈神经网络)

在进行了Attention操作之后,Encoder和Decoder中的每一层都包含了一个完全连接前馈网络,对每个position的向量分别进行相同的操作,由两个线性变换组成,之间有一个ReLU激活。

FEN(x)=max(0,xW1+b1)W2+b2FEN(x) = max(0,xW_1 + b_1)W_2 + b_2FEN(x)=max(0,xW1​+b1​)W2​+b2​

Encoder(编码器)

image.png

Encoder由2部分组成: 多头注意力前馈神经网络

Decoder(解码器)

image.png

Decoder结构与Encoder相似,但是存在一些区别。

  • Decoder 包含两个 Multi-Head Attention 层。
    1. 第一个 Multi-Head Attention 层采用了 Masked 操作。
    2. 第二个 Multi-Head Attention 层的K, V矩阵使用 Encoder 的编码信息矩阵C进行计算,而Q使用上一个 Decoder的输出计算。
  • 最后有一个 Softmax 层计算下一个单词的概率。

Masked Self-Attention

Mask 表示掩码,它对某些值进行掩盖,使其在参数更新时不产生效果。

Transformer 模型里面涉及两种 mask,分别是 Padding Mask 和 Sequence Mask。其中,Padding Mask 在所有的 scaled dot-product attention里面都需要用到,而 Sequence Mask只有在Decoder的Self-Attention里面用到。

(Cross) Multi-Head Attention

其实这块与上文 Encoder 中 的 Multi-Head Attention 具体实现细节上完全相同,区别在于Encoder的多头注意力里的Q、K、V是初始化多个不同的矩阵得到的。而Decoder的K、V是来自于Encoder的输出,Q是上层Masked Self-Attention的输出。

Linear和softmax

Decoder最后会输出一个实数向量。再通过过一个linear layer将decoder的输出扩展到与vocabulary size一样的维度上。经过softmax 后,选择概率最高的一个word作为预测结果。

如何学习AI大模型?

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

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

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

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

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

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Transformer-CRF模型是一种结合了Transformer和条件随机场(CRF)的模型。它在自然语言处理(NLP)任务中被广泛应用,特别是在序列标注任务中。 在Transformer-CRF模型中,Transformer用于学习输入序列的表示,它通过自注意力机制来捕捉序列中的上下文信息。Transformer将输入序列映射为一系列的密集向量表示,这些向量表示被传递给CRF模块。 CRF模块是一个序列标注模型,它利用转移矩阵来建模标签之间的转移概率。CRF模块接收Transformer输出的向量表示作为输入,并通过前馈神经网络对输入进行处理。然后,CRF模块使用动态规划算法来计算最优的标签序列,以最大化整个序列的概率。 通过结合Transformer和CRF,Transformer-CRF模型能够同时捕捉输入序列的上下文信息和标签之间的依赖关系,从而提高序列标注任务的性能。 范例:<<引用:下面是DIET的架构图,可以看到在Transformer之上使用了CRF。Transformer输出的dense vector会传给CRF内部的一个前馈神经网络,另外,在CRF内部存在一个transition matrix(转移状态矩阵)。在这个架构里CRF的作用是完成信息的提取。 。 引用:NLP on Transformers 高手之路137课Pro版:https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_621c0289e4b04d7e2fd0365a?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001。>> Transformer-CRF模型是一种结合了Transformer和条件随机场(CRF)的模型。它在自然语言处理(NLP)任务中被广泛应用,特别是在序列标注任务中。在这个模型中,Transformer用于学习输入序列的表示,而CRF用于建模标签之间的转移概率。通过结合Transformer的上下文信息和CRF的标签依赖关系,Transformer-CRF模型能够提高序列标注任务的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值