Transformer中Decoder的计算过程及各部分维度变化
创始人
2025-01-08 16:33:41
0

在Transformer模型中,解码器的计算过程涉及多个步骤,主要包括自注意力机制、编码器-解码器注意力和前馈神经网络。以下是解码器的详细计算过程及数据维度变化:

1. 输入嵌入和位置编码

解码器的输入首先经过嵌入层和位置编码:
Input d = Embedding ( x ) + PositionEncoding ( x ) \text{Input}_d = \text{Embedding}(x) + \text{PositionEncoding}(x) Inputd​=Embedding(x)+PositionEncoding(x)

  • 维度变化: x x x: 输入序列的标记,维度为 ( n , d m o d e l ) (n, d_{model}) (n,dmodel​) Embedding ( x ) \text{Embedding}(x) Embedding(x): 输出维度为 ( n , d m o d e l ) (n, d_{model}) (n,dmodel​) PositionEncoding ( x ) \text{PositionEncoding}(x) PositionEncoding(x): 输出维度为 ( n , d m o d e l ) (n, d_{model}) (n,dmodel​)

2. 自注意力机制

自注意力机制计算如下:
Q = Input d W Q , K = Input d W K , V = Input d W V Q = \text{Input}_d W_Q, \quad K = \text{Input}_d W_K, \quad V = \text{Input}_d W_V Q=Inputd​WQ​,K=Inputd​WK​,V=Inputd​WV​

  • 这里 W Q , W K , W V W_Q, W_K, W_V WQ​,WK​,WV​ 是参数矩阵,维度为 ( d m o d e l , d k ) (d_{model}, d_k) (dmodel​,dk​),假设 d k = d m o d e l d_k = d_{model} dk​=dmodel​。
  • 维度变化: Q , K , V Q, K, V Q,K,V: 输出维度为 ( n , d k ) (n, d_k) (n,dk​)
    自注意力的计算为:
    Attention ( Q , K , V ) = softmax ( Q K T d k + M ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}} + M\right)V Attention(Q,K,V)=softmax(dk​​QKT​+M)V
  • 维度变化: Q K T QK^T QKT: 维度为 ( n , n ) (n, n) (n,n) softmax \text{softmax} softmax: 结果维度为 ( n , n ) (n, n) (n,n)最终输出的维度为 ( n , d v ) (n, d_v) (n,dv​)(假设 d v = d m o d e l d_v = d_{model} dv​=dmodel​)。

3. 残差连接与层归一化

自注意力的输出与输入相加,然后进行层归一化:
Output d ( l ) = LayerNorm ( Attention + Input d ) \text{Output}_d^{(l)} = \text{LayerNorm}(\text{Attention} + \text{Input}_d) Outputd(l)​=LayerNorm(Attention+Inputd​)

  • 维度变化:维度保持为 ( n , d m o d e l ) (n, d_{model}) (n,dmodel​)。

4. 编码器-解码器注意力

接下来,解码器会对编码器的输出进行注意力计算:
Q ′ = Output d ( l ) W Q ′ , K ′ = EncoderOutput W K ′ , V ′ = EncoderOutput W V ′ Q' = \text{Output}_d^{(l)} W_Q', \quad K' = \text{EncoderOutput} W_K', \quad V' = \text{EncoderOutput} W_V' Q′=Outputd(l)​WQ′​,K′=EncoderOutputWK′​,V′=EncoderOutputWV′​

  • 这里 W Q ′ , W K ′ , W V ′ W_Q', W_K', W_V' WQ′​,WK′​,WV′​ 的维度也是 ( d m o d e l , d k ) (d_{model}, d_k) (dmodel​,dk​)。
  • 编码器输出的维度为 ( T e , d m o d e l ) (T_e, d_{model}) (Te​,dmodel​)。
    注意力计算为:
    Attention ( Q ′ , K ′ , V ′ ) = softmax ( Q ′ K ′ T d k ) V ′ \text{Attention}(Q', K', V') = \text{softmax}\left(\frac{Q'K'^T}{\sqrt{d_k}}\right)V' Attention(Q′,K′,V′)=softmax(dk​​Q′K′T​)V′
  • 维度变化: Q ′ K ′ T Q'K'^T Q′K′T: 维度为 ( n , T e ) (n, T_e) (n,Te​)最终输出的维度为 ( n , d v ) (n, d_v) (n,dv​)。
    然后与自注意力的输出进行残差连接和层归一化:
    Output d ( l ) = LayerNorm ( EncoderDecoderAttention + Output d ( l ) ) \text{Output}_d^{(l)} = \text{LayerNorm}(\text{EncoderDecoderAttention} + \text{Output}_d^{(l)}) Outputd(l)​=LayerNorm(EncoderDecoderAttention+Outputd(l)​)

5. 前馈神经网络

接下来是前馈神经网络的处理:
FFN ( x ) = ReLU ( x W 1 + b 1 ) W 2 + b 2 \text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2 FFN(x)=ReLU(xW1​+b1​)W2​+b2​

  • W 1 W_1 W1​ 维度为 ( d m o d e l , d f f ) (d_{model}, d_{ff}) (dmodel​,dff​), W 2 W_2 W2​ 维度为 ( d f f , d m o d e l ) (d_{ff}, d_{model}) (dff​,dmodel​),其中 d f f d_{ff} dff​ 是前馈层的隐藏单元数。
  • 维度变化:输入维度为 ( n , d m o d e l ) (n, d_{model}) (n,dmodel​)输出维度为 ( n , d m o d e l ) (n, d_{model}) (n,dmodel​)。

6. 最终输出

在最后一步,再次进行残差连接和层归一化:
Output d ( l ) = LayerNorm ( FFN + Output d ( l ) ) \text{Output}_d^{(l)} = \text{LayerNorm}(\text{FFN} + \text{Output}_d^{(l)}) Outputd(l)​=LayerNorm(FFN+Outputd(l)​)
接下来,解码器的最终输出通过线性层和Softmax层生成词汇表的概率分布:
Logits = Output d ( l ) W o u t + b o u t \text{Logits} = \text{Output}_d^{(l)} W_{out} + b_{out} Logits=Outputd(l)​Wout​+bout​
Probabilities = softmax ( Logits ) \text{Probabilities} = \text{softmax}(\text{Logits}) Probabilities=softmax(Logits)

  • 维度变化: W o u t W_{out} Wout​ 维度为 ( d m o d e l , V ) (d_{model}, V) (dmodel​,V),其中 V V V 是词汇表的大小。 Logits \text{Logits} Logits 的维度为 ( n , V ) (n, V) (n,V), Probabilities \text{Probabilities} Probabilities 的维度同样为 ( n , V ) (n, V) (n,V),表示每个时间步上各个词汇的概率。
    通过这些步骤,解码器能够生成序列的下一个标记。

相关内容

热门资讯

随着!雀友会广东潮汕辅助脚本(... 随着!雀友会广东潮汕辅助脚本(辅助)原来存在有辅助器(有挂秘籍)在进入雀友会广东潮汕辅助脚本软件靠谱...
第3分钟辅助!微信微乐陕西挖坑... 第3分钟辅助!微信微乐陕西挖坑小程序下载,果然真的有辅助教程(有挂功能)1、下载好微信微乐陕西挖坑小...
黑科技辅助!雀神麻将辅助透视(... 黑科技辅助!雀神麻将辅助透视(辅助)切实真的有辅助攻略(有挂秘籍)1、许多玩家不知道雀神麻将辅助透视...
第1分钟辅助!奇迹陕西靖边锅子... 第1分钟辅助!奇迹陕西靖边锅子有没有技巧,好像真的是有辅助神器(有人有挂)1、每一步都需要思考,不同...
黑科技辅助挂!天道手游辅助(辅... 黑科技辅助挂!天道手游辅助(辅助)果然存在有辅助工具(真的有挂);1)天道手游辅助有没有挂:进一步探...
第2分钟辅助!闲逸碰免费下载,... 第2分钟辅助!闲逸碰免费下载,本来是真的有辅助攻略(有挂技巧)第2分钟辅助!闲逸碰免费下载,本来是真...
这一问题亟待解决!爱玩联盟辅助... 这一问题亟待解决!爱玩联盟辅助(辅助)果然是真的有辅助软件(有挂辅助)该软件可以轻松地帮助玩家将爱玩...
3分钟辅助!佛手大菠萝破解版i... 3分钟辅助!佛手大菠萝破解版ios,真是存在有辅助教程(有挂规律)1、玩家可以在佛手大菠萝破解版io...
刚刚!破解大菠萝的辅助器(辅助... 刚刚!破解大菠萝的辅助器(辅助)其实确实有辅助软件(有挂方式)1、全新机制【破解大菠萝的辅助器ai辅...
五分钟辅助!星悦游戏辅助论坛,... 五分钟辅助!星悦游戏辅助论坛,好像有辅助神器(有挂方针)1、完成星悦游戏辅助论坛有辅助插件,帮助玩家...