transformer架构面试介绍

“解码器在自注意力上做了遮蔽(mask),保证每个位置只能看到之前生成的 token,同时通过交叉注意力引入编码器输出,使生成能依赖源输入。”


一、解码器的基本原理(面试口径)

“Transformer 解码器本质上和编码器类似,都是多层堆叠的自注意力 + 前馈网络结构,但有几个关键不同点,针对生成任务做了优化。”

1️⃣ 和编码器相同的地方

  • 都是 多层堆叠的 Transformer block

    • 每层包含:

      1. 自注意力(Self-Attention)
      2. 前馈网络(Feed Forward Network)
      3. 残差连接 + LayerNorm
  • 都有 Embedding + Positional Encoding

  • 都可以捕捉序列内部的依赖关系

面试可说:
“解码器和编码器的共同点在于,都是基于自注意力 + 前馈网络来提取 token 表征,基本模块是一致的。”


2️⃣ 和编码器不同的地方

特性 编码器 解码器
自注意力类型 普通自注意力 Masked 自注意力(防止看到未来 token)
编码器-解码器交互 额外跨注意力层(Cross-Attention),查询 decoder 输出,键值来自 encoder 输出
用途 理解输入序列 生成输出序列
输入 整个源序列 已生成序列 + 编码器上下文
输出 序列编码表示 下一个 token 的概率分布

面试口径总结:
“解码器在自注意力上做了遮蔽(mask),保证每个位置只能看到之前生成的 token,同时通过交叉注意力引入编码器输出,使生成能依赖源输入。”


3️⃣ 推理时的特殊设计

  1. Masked 自注意力

    • 保证生成是自回归的
    • 不能看到未来 token → 逐步生成
  2. Encoder-Decoder Cross Attention

    • 每一层解码器 block 都有 cross-attention
    • query = decoder 的 hidden state
    • key/value = encoder 输出
    • 这样每生成一个 token,都能参考完整输入序列
  3. 逐步生成 + 缓存

    • 推理时每生成一个 token,不用重复算前面 token 的 attention
    • 实际项目里叫 past_key_values cache → 加速推理

面试可说一句:
“解码器的 mask 保证自回归,cross-attention 让生成依赖输入,生成时可以缓存中间 key/value 来加速。”

posted @ 2026-01-07 17:22  向着朝阳  阅读(22)  评论(0)    收藏  举报