Transformer中解码器decoder的详细讲解(图文解释)

简介: Transformer中解码器decoder的详细讲解(图文解释)

假设我们想把英语句子i am good翻译成法语句子 Je Vais bein,首先将原句送入编码器,使编码器学习原句,并计算特征值,在上一篇博客中已经讲解了编码器是如何计算原句的特征值的,然后我们把从编码器求得的特征值送入解码器,解码器将特征值作为输入,并生成目标据,流程如下

在编码器部分,我们了解到可以叠加N个解码器,同理,解码器也可以有N个叠加在一起,编码器将原句的所有特征值作为输入传给所有解码器,而非只给第一个解码器,因此一个解码器将有两个输入,一个是来自前一个解码器的输出,另一个是编码器输出的特征值

接下来我们学习解码器是如何生成目标句子的,当t=1时(t表示时间步)解码器开始工作,生成目标为句子中的第一个词,当t=2时,解码器使用当前的输入和在上一步生成的单词,来预测句子中的下一个单词,以此类推,在每一步中解码器都将上一步生成的单词与输入的词结合起来,并预测下一个单词

一个解码器模块及其所有的组件如下图所示

从上图中可以看到,解码器内部有三个子层,分别是

1:带掩码的多头注意力层

2:多头注意力层

3:前馈网络层

与编码器模块相似,解码器模块也有多头注意力层和前馈网络层,但多了带掩码的多头注意力层,下面对它们一一进行讲解

一、带掩码的多头注意力层

以英法翻译任务为例,假设训练数据集样本如下

解码器将输入的<sos>作为第一个标记,并在每一步中将下一个预测词与输入结合起来,以预测目标句子,直到遇到<eos>为止

带掩码的多头注意力层就是预测与<sos>相邻的单词时,模型应该只看到<sos>,所有我们掩盖<sos>后边的所有词,因此在使用softmax函数进行归一化之前,我们需要对数值进行掩码转换,可以用负无穷去掩盖

二、多头注意力层

由下图可以看出,每个解码器中的多头注意力层都有两个输入:一个来自带掩码的多头注意力层,另一个是编码器输出的特征值

多头注意力机制的第一步是创建三个矩阵,我们使用从上一个子层获得的注意力矩阵M创建查询矩阵Q,使用编码器输出的特征值R创建键矩阵和值矩阵,因为查询矩阵是从M求得的,所以本质上包含了目标句子的特征,键矩阵和值矩阵则含有原句的特征,因为它们是用R计算的

三、前馈网络层

解码器的下一个子层是前馈网络层,它的工作原理与我们在编码器中用到的完全相同,此处不再赘述

四、叠加和归一组件

和在编码器部分讲到的一样,叠加和归一组件连接子层的输入和输出

五、线性层和softmax层

一旦解码器学习了目标句子的特征,我们就将顶层解码器的输出送入线性层和softmax层

线性层将生成一个logit向量,其大小等于原句中的词汇量,接下来使用softmax函数将logit向量转换成概率,然后解码器将输出具有高概率值的词的索引值

六、解码器总览

通过上图,我们可以总结出以下几点

1:首先,我们将解码器的输入转换为嵌入矩阵,然后将位置编码加入其中,并将其作为输入送入底层的解码器

2:解码器收到输入,并将其发送给带掩码的多头注意力层,生成注意力矩阵M

3:然后将注意力矩阵M和编码器输出的特征值R作为多头注意力层的输入,并再次输出新的注意力矩阵

4:把从多头注意力层得到的注意力矩阵作为输入,送入前馈网络层,前馈网络层将注意力矩阵作为输入,并将解码后的特征作为输出

5:最后我们把从解码器1得到的输出作为输入,将其送入解码器2

6:解码器2进行同样的处理,并输出目标句子的特征

七、训练Transformer

我们可以退哦那个过最小化损失函数来训练Transformer网络,但是应该如何选择损失函数呢,我们已经知道,解码器预测的是词汇的概率分布,并选择概率最高的词作为输出,所有我们需要让预测的概率分布和实际的概率分布之间的差异最小化,要做到这一点,可以将损失函数定义为交叉熵定义函数,我们通过最小化损失函数来训练网络,并使用Adam算法来优化训练过程

另外需要注意,为了防止过拟合,我们可以将dropout方法应用于每个子层的输入以及嵌入和位置编码的总和

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
机器学习/深度学习 自然语言处理
自然语言处理Transformer模型最详细讲解(图解版)
自然语言处理Transformer模型最详细讲解(图解版)
13945 1
自然语言处理Transformer模型最详细讲解(图解版)
|
9月前
|
存储 机器学习/深度学习 自然语言处理
Transformer参数规模深度解析:从模型聪明说到实际影响
Transformer参数规模显著影响模型能力,参数越多,知识容量与模式识别能力越强,但存在边际效应和过拟合风险。现代大模型通过混合专家、量化压缩等技术提升参数效率,未来趋势是优化参数使用而非盲目扩大规模,实现性能与效率的平衡。(238字)
|
7月前
|
机器学习/深度学习 移动开发 人工智能
大模型应用:庖丁解牛:QKV机制详解,大模型的注意力之眼.4
QKV机制是Transformer注意力的核心:Query(提问)、Key(标识)、Value(信息)三者通过点积计算相似度,Softmax归一化后加权融合Value,实现动态上下文感知。它能捕捉长程依赖,解决代词消解、一词多义等问题,支撑大模型强大语言理解能力。
1807 7
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
构建AI智能体:八十九、Encoder-only与Decoder-only模型架构:基于ModelScope小模型的实践解析
本文深入解析大模型两大主流架构:Encoder-only与Decoder-only。前者如BERT,擅长双向理解,适用于文本分类、情感分析等任务;后者如GPT,基于自回归生成,适用于内容创作、对话系统等场景。二者代表不同技术路径,分别聚焦“深度理解”与“持续生成”,是开发者选型的重要依据。
713 7
|
7月前
|
机器学习/深度学习 数据采集 人工智能
别再盲目用PPO了!中小团队如何低成本对齐大模型?DPO与KTO实测对比
本文深度解析大模型对齐三大主流方法:PPO(强化学习闭环,精度高但复杂)、DPO(跳过奖励模型,简洁高效)、KTO(基于心理学,重罚轻赏、低门槛)。涵盖原理、数据准备、训练配置、效果评估及落地建议,助力开发者低成本实现安全、有用、有温度的模型调优。
593 3
|
机器学习/深度学习 自然语言处理 算法
【Transformer系列(1)】encoder(编码器)和decoder(解码器)
【Transformer系列(1)】encoder(编码器)和decoder(解码器)
7913 0
【Transformer系列(1)】encoder(编码器)和decoder(解码器)
|
机器学习/深度学习 数据处理
大语言模型中的归一化技术:LayerNorm与RMSNorm的深入研究
本文分析了大规模Transformer架构(如LLama)中归一化技术的关键作用,重点探讨了LayerNorm被RMSNorm替代的原因。归一化通过调整数据量纲保持分布形态不变,提升计算稳定性和收敛速度。LayerNorm通过均值和方差归一化确保数值稳定,适用于序列模型;而RMSNorm仅使用均方根归一化,省略均值计算,降低计算成本并缓解梯度消失问题。RMSNorm在深层网络中表现出更高的训练稳定性和效率,为复杂模型性能提升做出重要贡献。
3767 14
大语言模型中的归一化技术:LayerNorm与RMSNorm的深入研究
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
编码器-解码器架构详解:Transformer如何在PyTorch中工作
本文深入解析Transformer架构,结合论文与PyTorch源码,详解编码器、解码器、位置编码及多头注意力机制的设计原理与实现细节,助你掌握大模型核心基础。建议点赞收藏,干货满满。
2251 3
|
机器学习/深度学习 自然语言处理 算法
Transformer 学习笔记 | Decoder
本文记录了笔者学习Transformer的过程,重点介绍了填充(padding)和掩码(masking)机制。掩码确保解码器只依赖于之前的位置,避免信息泄露,保持因果关系及训练与推理的一致性。通过线性层和softmax函数生成输出概率,并使用梯度下降和反向传播进行训练。评估指标包括BLEU、ROUGE、METEOR和困惑度等。欢迎指正。
|
机器学习/深度学习 自然语言处理 PyTorch
深入剖析Transformer架构中的多头注意力机制
多头注意力机制(Multi-Head Attention)是Transformer模型中的核心组件,通过并行运行多个独立的注意力机制,捕捉输入序列中不同子空间的语义关联。每个“头”独立处理Query、Key和Value矩阵,经过缩放点积注意力运算后,所有头的输出被拼接并通过线性层融合,最终生成更全面的表示。多头注意力不仅增强了模型对复杂依赖关系的理解,还在自然语言处理任务如机器翻译和阅读理解中表现出色。通过多头自注意力机制,模型在同一序列内部进行多角度的注意力计算,进一步提升了表达能力和泛化性能。
11294 48

热门文章

最新文章