在 Transformer 架构中,解码器(Decoder)是负责生成输出序列的部分,例如在机器翻译任务中生成目标语言的句子。解码器由多个相同的层组成,每层都包含几个关键组件,以下是解码器的实现细节:
自注意力层(Self-Attention Layer):
遮蔽(Masking):
编码器-解码器注意力层(Encoder-Decoder Attention Layer):
前馈网络(Feed-Forward Neural Network):
残差连接(Residual Connection):
层归一化(Layer Normalization):
可学习的参数:
输出层:
训练过程:
并行处理:
条件生成:
Transformer 解码器的设计允许它捕捉长距离依赖关系,并在生成序列时保持高效的并行计算能力。这些特性使得 Transformer 成为许多序列到序列任务的强大模型。


对比 decoder 和 encoder 的差异 : 只有下图中红色方框的一点差异,在多头主注意力机制的基础上增加 mask 操作,那么这个操作有什么影响呢?
采用masked self-attention 之后a 和b 之间的依赖关系改编成为,b1 的输出只依赖于 a1,而b2的输出依赖与 a1 a2 ,如图所示依次类推,而原来的 self-attention b 则是有赖于所有的 a

更具体的如下图:



在 Transformer 架构中,编码器(Encoder)和解码器(Decoder)之间的信息传递是通过一种特殊的自注意力机制实现的,称为交叉注意力(Cross-Attention)或编码器-解码器注意力(Encoder-Decoder Attention)。以下是交叉注意力的实现原理及其细节:
编码器输出:
查询(Query)、键(Key)、值(Value):
计算注意力得分:
应用 softmax 函数:
加权值向量:
多头注意力:
残差连接和层归一化:
遮蔽(Masking):
并行处理:
实现细节:
交叉注意力是 Transformer 解码器的核心部分,它允许解码器在生成每个输出步骤时,有效地利用编码器捕获的输入序列的上下文信息。这种机制使得 Transformer 能够有效地处理序列到序列的任务,如机器翻译、文本摘要等。


decoder 与 encoder 的连接部分 cross attention 两个输入来自与 encoder 一个输入来自于 decoder ,具体的形式如下 2图所示


在 Transformer 架构中使用的自注意力机制以及交叉注意力机制中,查询(Query)、键(Key)、值(Value)是三个核心概念,它们是从输入数据中派生出来的,用于计算注意力权重和聚合信息。以下是它们的具体含义和计算方式:
查询(Query):
键(Key):
值(Value):
计算过程如下:
给定输入序列 ( X ),首先将其分别通过三个不同的可学习线性变换 ( W^Q ),( W^K ),和 ( W^V ) 来得到查询 ( Q ),键 ( K ),和值 ( V ):
Q = X W Q , K = X W K , V = X W V Q = XW^Q, \quad K = XW^K, \quad V = XW^V Q=XWQ,K=XWK,V=XWV
其中,( W^Q ),( W^K ),和 ( W^V ) 是模型参数。
然后计算查询和键之间的点积来得到初步的注意力得分:
score = Q ⋅ K T \text{score} = Q \cdot K^T score=Q⋅KT
为了使得注意力得分不会因为维度的大小而受到影响,通常会对得分进行缩放,即除以键向量维度 ( d_k ) 的平方根:
score = Q ⋅ K T d k \text{score} = \frac{Q \cdot K^T}{\sqrt{d_k}} score=dkQ⋅KT
使用 softmax 函数对缩放后的注意力得分进行归一化处理,得到注意力权重:
weights = softmax ( score ) \text{weights} = \text{softmax}(\text{score}) weights=softmax(score)
最后,注意力权重用于加权和聚合值 ( V ),得到加权的输出,这通常在自注意力或交叉注意力中完成:
output = ∑ i weights i ⋅ V i \text{output} = \sum_{i} \text{weights}_i \cdot V_i output=i∑weightsi⋅Vi
含义上,查询、键、值机制允许模型在处理序列数据时动态地聚焦于当前步骤最相关的信息。在解码器中,查询来自之前步骤的输出,而键和值来自编码器的输出,这样解码器就可以在生成每个词时考虑编码器中的所有信息,但更加关注与当前词最相关的部分。这种机制使得 Transformer 能够有效地处理长距离依赖问题,并提高了模型的灵活性和表现力。
上一篇:基于若依框架开发的Spring Boot+Vue的MES(生产制造执行系统)是一种专为中小型工厂设计的ERP(企业资源计划)系统
下一篇:Jeecgboot 字典值自动转化:DictAspect类方法改造,支持IPage、List、Object、Map类自动转化,附有源码