Q940LLM 基础概念真题解析LLM 基础AgentAlpha 社区真题库约 9 分钟更新 2026-09-29

How does the encoder-decoder structure work at a high level in the Transformer model

How does the encoder-decoder structure work at a high level in the Transformer model

1️⃣ 考察意图

面试官想确认你是否真正理解 Transformer 编码器-解码器架构的核心分工逻辑,而非仅仅背诵“编码器处理输入,解码器生成输出”这种表面话。考察类型是系统设计理解 + 对比分析。刁钻点在于:能否说清楚为什么需要交叉注意力(cross-attention)?为什么解码器要带掩码(masked self-attention)?以及这种结构与纯编码器(BERT)或纯解码器(GPT)在信息流和任务适配性上的本质区别。答好了能展示你对 seq2seq 任务本质的洞察力,以及架构设计的工程取舍观。

2️⃣ 标准答

Transformer 的编码器-解码器结构,本质上是为**序列到序列(seq2seq)**任务设计的——输入和输出长度不同、语义不对称,比如翻译、摘要、语音识别。

核心分工:编码器负责“理解”,解码器负责“生成”

  • 编码器(Encoder):由 N 层(原论文 N=6)相同的层堆叠,每层包含一个多头自注意力(Multi-Head Self-Attention)和一个前馈网络(FFN)。输入序列经过位置编码(如 Sinusoidal 或 RoPE)后,自注意力让每个 token 能看到整个输入序列的上下文,输出一组上下文表示(hidden states)。这组表示就是解码器后续要“参考”的源信息。
  • 解码器(Decoder):也是 N 层堆叠,但每层多了一个交叉注意力(Cross-Attention)模块。解码器是自回归(autoregressive)的,即生成第 t 个 token 时,只能看到前 t-1 个已生成的 token。所以它的自注意力是带掩码的(Masked Self-Attention),防止看到未来信息。

关键机制:交叉注意力如何连接两者

  • 交叉注意力的 Query 来自解码器当前层的输出(即已生成的部分),而 Key 和 Value 来自编码器最后一层的输出(即整个输入序列的表示)。
  • 这相当于解码器在生成每个新 token 时,都去“问”编码器:“基于我当前已经生成的内容,输入序列中哪些部分最相关?” 然后通过注意力权重加权聚合输入信息,再结合自身信息生成下一个 token。
  • 为什么这么做:如果解码器只看自己生成的内容,会丢失源信息,导致生成偏离原意;如果直接把编码器输出拼进去,则无法动态聚焦。交叉注意力提供了动态信息检索能力。

训练 vs. 推理的差异

  • 训练:使用教师强制(Teacher Forcing)——解码器每一步的输入是真实的目标序列(shifted right),而非自己上一步的预测。这能并行计算整个序列的损失,加速训练。但会导致暴露偏差(Exposure Bias):训练时看到的是真实 token,推理时看到的是自己可能出错的预测,误差会累积。
  • 推理:自回归生成,每一步只输出一个 token,并将该 token 作为下一步的输入。常用**束搜索(Beam Search)或采样(Sampling)**来提升生成质量。

实际落地的坑 + 解法

  • 坑:推理速度慢。解码器每一步都要重新计算交叉注意力,且无法像纯解码器那样用 KV Cache 完全复用(因为编码器输出固定,但解码器每一步的 Query 不同)。解法:对编码器输出做预计算并缓存,解码器只计算交叉注意力的 Query 与缓存 Key/Value 的点积,避免重复编码。
  • 坑:长文本输入时,编码器输出维度固定(如 512),但输入序列可能远超这个长度,导致信息压缩丢失。解法:使用滑动窗口注意力或稀疏注意力(如 Longformer、BigBird)扩展编码器有效长度;或对输入做**分块(Chunking)**后再编码。

与纯编码器/纯解码器的对比

架构代表模型核心能力典型任务
编码器-解码器T5, BART, M2M100理解+生成,输入输出不对称翻译、摘要、问答
纯编码器BERT, RoBERTa理解,输出是输入的一个子集或标签分类、NER、情感分析
纯解码器GPT, LLaMA生成,输入输出同构(自回归)文本生成、对话、代码生成

总结:编码器-解码器结构通过编码器做全局理解、解码器做条件生成、交叉注意力做动态信息桥接,完美适配 seq2seq 任务。但代价是推理效率低、训练有暴露偏差,这也是为什么纯解码器架构(如 GPT)通过“将所有任务统一为文本生成”来规避这些问题的原因。

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从三个层面回答:第一,分工层面,编码器通过自注意力理解整个输入序列,输出上下文表示;解码器通过掩码自注意力自回归生成,并通过交叉注意力动态从编码器输出中检索信息。第二,关键机制,交叉注意力是连接两者的桥梁,让解码器每一步都能聚焦输入序列的相关部分。第三,工程取舍,这种结构适合翻译、摘要等 seq2seq 任务,但推理慢、有暴露偏差,这也是纯解码器架构兴起的原因。总结一句:编码器-解码器通过‘理解+生成+动态检索’三合一,解决了输入输出不对称的生成问题。”

4️⃣ 高频追问 & 应对

追问 1:为什么解码器需要掩码自注意力?如果去掉会怎样?

掩码自注意力保证解码器在生成第 t 个 token 时,只能看到前 t-1 个 token,符合自回归的因果性。如果去掉掩码,解码器在训练时就能看到未来 token,导致信息泄露——模型会学会直接复制未来 token,而不是真正学习生成逻辑。推理时因为没有未来 token,性能会断崖式下降。这本质上是一个因果性约束,是自回归生成模型(包括 GPT)的标配。

追问 2:编码器-解码器结构和纯解码器结构(如 GPT)在训练和推理效率上有什么具体差异?

训练上,编码器-解码器可以并行计算编码器输出,但解码器仍需自回归;纯解码器(如 GPT)通过因果掩码实现整个序列的并行训练,效率更高。推理上,编码器-解码器每一步都要做交叉注意力,无法像纯解码器那样用 KV Cache 完全复用(因为解码器每一步的 Query 不同),所以推理速度慢 2-5 倍。这也是为什么很多工业场景(如对话系统)倾向用纯解码器架构,通过 prompt engineering 把任务统一成文本生成。

追问 3:T5 和 BART 都是编码器-解码器,它们有什么区别?

T5 将所有 NLP 任务统一为“文本到文本”,输入输出都是文本字符串,通过前缀(如 “translate English to German:”)区分任务。BART 则更侧重去噪自编码,训练时对输入加噪声(如 token 掩码、句子打乱),让编码器-解码器重建原始文本。T5 的预训练目标是跨度破坏(Span Corruption),BART 是文本填充(Text Infilling)。实际效果上,T5 在翻译、摘要等任务上更强,BART 在文本生成质量上更优。

5️⃣ 避坑 · 常见错误答法

  • ❌ 说“编码器输出是向量,解码器直接用它初始化” → ✅ 正确说法:编码器输出是一组序列向量(每个 token 对应一个向量),解码器通过交叉注意力动态检索,而非直接初始化。
  • ❌ 说“解码器自注意力不需要掩码,因为训练时用教师强制” → ✅ 教师强制只解决输入问题,掩码是防止信息泄露的独立机制,两者缺一不可。
  • ❌ 说“编码器-解码器结构比纯解码器好,因为能处理长文本” → ✅ 纯解码器(如 GPT-4)通过扩展上下文窗口(如 128K)也能处理长文本,编码器-解码器的优势在于输入输出不对称时的信息压缩与动态检索,而非单纯的长度。

6️⃣ 简历呼应

  • 如果你有 RAG 项目:从“检索-生成”类比切入——编码器相当于检索器(理解源文档),解码器相当于生成器(基于检索结果生成答案),交叉注意力就是动态检索过程。可以提你如何用 T5 做生成式问答,以及对比过纯解码器(如 GPT)的 ROUGE 分数差异。
  • 如果你只做过传统 NLP:用“机器翻译”作为经典案例——编码器理解源语言句子,解码器生成目标语言句子。可以提你用过 Fairseq 或 Hugging Face 的 T5 做翻译 demo,并对比过不同 beam size 对 BLEU 分数的影响。
  • 如果你是校招无项目:聚焦论文复现——读过《Attention Is All You Need》,能画出编码器-解码器结构图,并解释为什么交叉注意力是 seq2seq 任务的关键。可以提你做过一个 toy 翻译模型,用 PyTorch 实现过 masked self-attention 和 cross-attention。
  • 《Attention Is All You Need》(Vaswani et al., 2017)—— Transformer 原论文,必读
  • 《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》(T5 论文,Raffel et al., 2020)
  • 《BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension》(Lewis et al., 2019)
  • 《The Annotated Transformer》(Harvard NLP 博客,带 PyTorch 代码实现)
  • 《Efficient Transformers: A Survey》(Tay et al., 2020)—— 了解长文本处理的工程优化

—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。