Transformer模型中的解码器自注意力掩码原理
字数 905 2025-11-08 20:56:49

Transformer模型中的解码器自注意力掩码原理

描述
在Transformer模型的解码器中,自注意力掩码(又称因果掩码)用于确保解码器在生成序列时只能访问已生成的位置信息,防止"偷看"未来词。这种掩码机制是保证模型自回归生成正确性的核心。

原理与作用

  1. 自回归生成需求:解码器逐词生成输出序列(如机器翻译),当前词只能依赖已生成的词。
  2. 掩码实现方式:通过将注意力分数矩阵未来位置设为负无穷(-∞),使Softmax后概率归零。
    • 示例:生成第3个词时,只能关注位置1和2,位置3及之后被掩码。

具体实现步骤

  1. 计算注意力分数
    输入解码器的序列经过线性变换得到Q、K、V矩阵,计算注意力分数:
    \(\text{Scores} = QK^T / \sqrt{d_k}\)
    此时Scores是方阵,行表示当前查询位置,列表示被关注的关键位置。

  2. 应用下三角掩码矩阵

    • 构建掩码矩阵M:下三角部分(含对角线)为0,上三角部分为1。
    • 将M中值为1的位置对应Scores元素加上一个极大负值(如-1e9):
      \(\text{Masked\_Scores} = \text{Scores} + M \times (-\infty)\)
    • 效果:上三角位置经Softmax后概率趋近0。
  3. Softmax与加权求和
    对掩码后的分数矩阵按行做Softmax,得到注意力权重,再与V相乘:
    \(\text{Attention} = \text{Softmax}(\text{Masked\_Scores}) \cdot V\)
    此时每个位置仅加权聚合已生成位置的V向量。

实例说明
假设解码器输入序列为["", "A", "B"](""为起始符),生成第3个词"B"时:

  • Q₃与K₁、K₂、K₃计算分数,但仅保留K₁、K₂、K₃的分数(掩码掉K₄及之后,本例无K₄)。
  • 实际中,掩码会提前应用于整个序列的Scores矩阵,确保并行训练时未来信息不泄露。

意义
掩码机制使解码器在训练时能并行处理整个序列(加速训练),同时保持生成过程的因果性,是Transformer替代RNN的关键设计之一。

Transformer模型中的解码器自注意力掩码原理 描述 在Transformer模型的解码器中,自注意力掩码(又称因果掩码)用于确保解码器在生成序列时只能访问已生成的位置信息,防止"偷看"未来词。这种掩码机制是保证模型自回归生成正确性的核心。 原理与作用 自回归生成需求 :解码器逐词生成输出序列(如机器翻译),当前词只能依赖已生成的词。 掩码实现方式 :通过将注意力分数矩阵未来位置设为负无穷(-∞),使Softmax后概率归零。 示例:生成第3个词时,只能关注位置1和2,位置3及之后被掩码。 具体实现步骤 计算注意力分数 : 输入解码器的序列经过线性变换得到Q、K、V矩阵,计算注意力分数: \( \text{Scores} = QK^T / \sqrt{d_ k} \) 此时Scores是方阵,行表示当前查询位置,列表示被关注的关键位置。 应用下三角掩码矩阵 : 构建掩码矩阵M:下三角部分(含对角线)为0,上三角部分为1。 将M中值为1的位置对应Scores元素加上一个极大负值(如-1e9): \( \text{Masked\_Scores} = \text{Scores} + M \times (-\infty) \) 效果:上三角位置经Softmax后概率趋近0。 Softmax与加权求和 : 对掩码后的分数矩阵按行做Softmax,得到注意力权重,再与V相乘: \( \text{Attention} = \text{Softmax}(\text{Masked\_Scores}) \cdot V \) 此时每个位置仅加权聚合已生成位置的V向量。 实例说明 假设解码器输入序列为[ " ", "A", "B"](" "为起始符),生成第3个词"B"时: Q₃与K₁、K₂、K₃计算分数,但仅保留K₁、K₂、K₃的分数(掩码掉K₄及之后,本例无K₄)。 实际中,掩码会提前应用于整个序列的Scores矩阵,确保并行训练时未来信息不泄露。 意义 掩码机制使解码器在训练时能并行处理整个序列(加速训练),同时保持生成过程的因果性,是Transformer替代RNN的关键设计之一。