Transformer 里的 Attention 与 Mask 总结

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

本文将介绍以下内容:

  • 1. Transformer 架构中的三种 Attention详解
  • 2. Transformer 架构中的三种 Mask详解
  • 3. 总结

Transformer 之所以强大,很大程度上来自于它的 多头注意力机制 (Multi-Head Attention, MHA)。现在理解清楚在一个完整的 Encoder–Decoder 结构里,我们要处理三种不同的 Attention,对应着三种 Mask。


一、Transformer 架构中的三种 Attention详解

1. Encoder Self-Attention
  • 输入:源序列 (src)
  • Q=K=V=src
  • 作用:让源序列中的每个 token 能够和序列里其他 token 建立联系,捕捉上下文。
  • 需要的 Masksrc_mask,屏蔽 <padding>

2. Decoder Masked Self-Attention

  • 输入:目标序列 (tgt)
  • Q=K=V=tgt
  • 作用:让目标序列在生成时利用上下文,但不能“偷看未来”。
  • 需要的 Masktgt_mask = look-ahead mask + padding mask

3. Encoder–Decoder Attention (Cross Attention)

  • 输入

    • Q = Decoder 的 hidden states (tgt)
    • K, V = Encoder 的输出 (src)
  • 作用:让 Decoder 在预测时「对齐」Encoder 的源序列。

  • 需要的 Maskenc_dec_mask,屏蔽源序列的 <pad>

  • Mask 逻辑如下:
    • 在 cross-attention 中,Decoder 不需要防止“偷看未来”,因为 Q 是 target,K/V 是 source。
    • 唯一需要屏蔽的是 source 序列里的 <pad> 位置。
    • 所以,enc_dec_mask 只包含 source 的 padding mask,不含 look-ahead。

二、Transformer 架构中的三种 Mask详解

1. Padding Mask

  • 作用:屏蔽 <pad>,避免注意力白白浪费在补齐的空位上。

  • 应用

    • Encoder self-attn (src_mask)
    • Decoder self-attn (作为 tgt_mask 的一部分)
    • Encoder–Decoder attn (enc_dec_mask)

2. Look-Ahead Mask (Causal Mask)

  • 作用:保证自回归,防止 Decoder 在预测第 t 个词时看见未来的 t+1, t+2…

  • 应用

    • 只在 Decoder 的 self-attention 里出现
    • 和 padding mask 合并成 tgt_mask

3. 组合 Mask

  • tgt_mask = padding mask + look-ahead mask
  • 同时处理「不能看未来」+「忽略 <pad>」两件事。

三、总结

1. 总结表格
Attention 类型QK/VMask 类型形状示例
Encoder Self-Attnsrcsrcsrc_mask(padding mask)[B,1,L_src,L_src]
Decoder Self-Attntgttgttgt_mask(look-ahead + padding)[B,1,L_tgt,L_tgt]
Encoder–Decoder Attntgtsrcenc_dec_mask(padding mask)[B,1,L_tgt,L_src]

2. 总结

Transformer 的核心逻辑就是:

  • Encoder 用 self-attention 捕捉源序列上下文,使用 src_mask(padding mask)
  • Decoder 用 masked self-attention 自回归生成,使用 tgt_mask(look-ahead mask + padding mask)
  • Decoder 再通过 cross-attention 对齐 Encoder,使用 enc_dec_mask (padding mask)

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值