面试题7:Encoder-only、Decoder-only、Encoder-Decoder三种架构的差异与适用场景?

🎪 摸鱼匠:个人主页

🎒 个人专栏:《大模型岗位面试题

🥇 没有好的理念,只有脚踏实地!


文章目录

      • 一、三种架构的灵魂差异与适用场景
        • [1. Encoder-only (代表:BERT, RoBERTa, DeBERTa)](#1. Encoder-only (代表:BERT, RoBERTa, DeBERTa))
        • [2. Decoder-only (代表:GPT 系列, Llama, Qwen, Mistral)](#2. Decoder-only (代表:GPT 系列, Llama, Qwen, Mistral))
        • [3. Encoder-Decoder (代表:T5, BART, Flan-T5, NLLB)](#3. Encoder-Decoder (代表:T5, BART, Flan-T5, NLLB))
      • 二、训练与推理阶段的深度解析(工程视角)
        • [1. 训练阶段 (Training)](#1. 训练阶段 (Training))
        • [2. 推理阶段 (Inference)](#2. 推理阶段 (Inference))
      • 三、面试题专业级深度解析
        • [❓ 考点一:为什么现在的开源大模型(LLM)几乎清一色选择了 Decoder-only 架构?放弃了 Encoder-Decoder 吗?](#❓ 考点一:为什么现在的开源大模型(LLM)几乎清一色选择了 Decoder-only 架构?放弃了 Encoder-Decoder 吗?)
        • [❓ 考点二:请手写或口述 Decoder-only 推理时 KV Cache 的更新过程。如果不使用 KV Cache 会怎样?](#❓ 考点二:请手写或口述 Decoder-only 推理时 KV Cache 的更新过程。如果不使用 KV Cache 会怎样?)
        • [❓ 考点三:BERT (Encoder-only) 能做生成任务吗?如果能,怎么做?有什么缺陷?](#❓ 考点三:BERT (Encoder-only) 能做生成任务吗?如果能,怎么做?有什么缺陷?)
        • [❓ 考点四:在 RAG 系统中,为什么检索阶段用 Embedding (often Encoder-only),而重排序 (Rerank) 阶段也常用 Cross-Encoder (Encoder-only)?它们有什么区别?](#❓ 考点四:在 RAG 系统中,为什么检索阶段用 Embedding (often Encoder-only),而重排序 (Rerank) 阶段也常用 Cross-Encoder (Encoder-only)?它们有什么区别?)
      • 总结与建议

你好!那咱们就跳过那些"什么是Transformer"的基础科普,直接切入架构设计的底层逻辑、工程落地的权衡 以及面试中那些能一眼看出你水平的"深水区"问题

现在的技术圈(2026年视角),虽然 Decoder-only 一统江湖,但理解另外两种架构的兴衰和特定场景下的优势,依然是区分"调包侠"和"架构师"的关键。


一、三种架构的灵魂差异与适用场景

这三种架构的本质区别不在于层数多少,而在于信息流动的方向(注意力掩码)训练目标的哲学

1. Encoder-only (代表:BERT, RoBERTa, DeBERTa)
  • 核心机制双向注意力 (Bidirectional Attention)。每个 Token 都能"看到"序列中所有的其他 Token(除了自己)。
  • 训练目标MLM (Masked Language Modeling)。把句子挖空,让模型根据上下文猜词。这是一种"完形填空"式的理解训练。
  • 适用场景
    • 纯理解任务:文本分类、情感分析、命名实体识别 (NER)。
    • RAG 中的重排序 (Rerank):这是目前最火的落地场景。因为双向视野能精准计算 Query 和 Document 之间的深层语义匹配度,比向量检索(Embedding)更准。
    • 语义相似度匹配:如 Sentence-BERT。
  • 致命弱点:无法直接用于自回归生成。因为它训练时看到了"未来",如果用来生成,一旦第一个词出来,后续词就会依赖"未来的答案",导致推理时的分布偏移(Exposure Bias)。
2. Decoder-only (代表:GPT 系列, Llama, Qwen, Mistral)
  • 核心机制因果注意力 (Causal/Masked Attention) 。每个 Token 只能看到自己和它之前的 Token。这是一个下三角矩阵的掩码。
  • 训练目标Next Token Prediction。根据前面的词猜下一个词。
  • 适用场景
    • 生成式任务:对话、代码生成、创意写作。
    • 通用大模型 (AGI 方向):目前的绝对主流。通过 Prompt Engineering 和 In-context Learning,它能模拟分类、抽取甚至推理任务。
    • 流式输出:天然支持一个字一个字往外蹦。
  • 优势:训练数据利用率极高(每个位置都算 Loss),推理工程优化(KV Cache)极其成熟。
3. Encoder-Decoder (代表:T5, BART, Flan-T5, NLLB)
  • 核心机制混合模式
    • Encoder 部分:双向注意力,负责"读懂"输入。
    • Decoder 部分:单向注意力 + Cross-Attention。Decoder 不仅看自己生成的历史,还通过 Cross-Attention 去"查询"Encoder 输出的完整语义表示。
  • 训练目标Seq2Seq。输入一个序列,输出另一个序列(可以是翻译、摘要,也可以是带指令的文本)。
  • 适用场景
    • 强转换任务:机器翻译(尤其是低资源语言)、长文档摘要(输入极长,输出极短)、结构化数据生成。
    • 需要严格遵循输入语义的场景:因为 Encoder 把输入压缩成了完美的 Context Vector,Decoder 不容易"幻觉"掉输入中的关键信息。
  • 现状:在大模型时代,由于需要训练两套参数(显存成本高)且推理速度受限于 Cross-Attention,纯 Decoder 架构正在吞噬它的领地。但在特定垂直领域(如高精度翻译),它依然有不可替代性。

二、训练与推理阶段的深度解析(工程视角)

这部分是面试中考察"你是否真的手搓过模型"或"是否深入看过源码"的关键。

1. 训练阶段 (Training)
架构 输入处理 注意力掩码 (Mask) Loss 计算 关键细节
Encoder-only 整句输入,随机 Mask 掉 15% token 无因果掩码,全连接。但需 Mask 掉被遮盖的 token 防止偷看。 仅计算 被 Mask 位置 的 Loss。 需要特殊的 [MASK] 标记。推理时没有这个标记,存在预训练 - 微调偏差。
Decoder-only 整句输入 因果掩码 (下三角) 。位置 i i i 只能 attend 0 → i 0 \to i 0→i。 计算 所有位置 (或除第一个外) 的 Loss。 数据利用率高。通常会将 Padding 部分的 Loss 屏蔽掉。
Encoder-Decoder 输入给 Encoder;Target 右移一位给 Decoder Encoder: 全连接。Decoder: 因果掩码 + Cross-Attention (Q 来自 Decoder, KV 来自 Encoder)。 仅计算 Decoder 输出端 的 Loss。 Teacher Forcing:训练时 Decoder 输入是真实的上一时刻标签,而不是自己预测的。
2. 推理阶段 (Inference)
  • Encoder-only:

    • 一次性前向传播。输入整个句子,直接拿到每个位置的 Hidden State。
    • 速度:极快,并行度最高。
    • 用途 :直接接分类头输出类别,或计算 [CLS] 向量做检索。
  • Decoder-only:

    • 自回归 (Autoregressive) :不能并行生成。必须 S t e p 1 → T o k e n 1 → S t e p 2 ... Step_1 \to Token_1 \to Step_2 \dots Step1→Token1→Step2...
    • KV Cache (核心考点)
      • 原理 :在生成第 t t t 步时,历史序列 0 → t − 1 0 \to t-1 0→t−1 的 K K K 和 V V V 矩阵是不变的。我们把它缓存起来,每一步只计算当前新 Token 的 Q , K , V Q, K, V Q,K,V,然后拼接到 Cache 上。
      • 作用 :将计算复杂度从 O ( N 2 ) O(N^2) O(N2) 降为 O ( N ) O(N) O(N) (针对每一步),极大提升推理速度。
      • 显存代价:随着序列变长,KV Cache 占用显存线性增长,这是长上下文推理的瓶颈。
  • Encoder-Decoder:

    • 两阶段
      1. Encode :一次性跑完 Encoder,缓存所有输入的 K , V K, V K,V (作为 Cross-Attention 的源)。
      2. Decode :类似 Decoder-only 的自回归,但每一步除了更新自身的 KV Cache,还要去查 Encoder 缓存的 K , V K, V K,V。
    • 瓶颈:Cross-Attention 需要每次解码步都重新计算对 Encoder 输出的注意力,且显存要存两套权重。

三、面试题专业级深度解析

作为面试官,我问这些问题不是为了听背书,而是看你对**Trade-off(权衡)**的理解。

❓ 考点一:为什么现在的开源大模型(LLM)几乎清一色选择了 Decoder-only 架构?放弃了 Encoder-Decoder 吗?
  • 标准答案逻辑

    1. 训练效率与数据利用率:Decoder-only 可以对序列中每一个 Token 计算 Loss(除了首个),而 Encoder-only (MLM) 只能对 15% 的 Mask token 计算 Loss。这意味着同样的数据量,Decoder 的梯度更新信号多 6-7 倍,收敛更快。
    2. 推理工程统一性:Decoder-only 架构在推理时只需维护一套权重和一套 KV Cache 机制。Encoder-Decoder 需要加载两部分参数,且 Cross-Attention 增加了显存带宽压力和延迟。在追求极致推理速度(TPOT, Time Per Output Token)的场景下,Decoder 更优。
    3. In-Context Learning (ICL) 能力 :研究发现,单纯的 Decoder 架构在大规模预训练后,展现出了惊人的少样本学习能力。通过 Prompt,它可以模拟分类、抽取等 Encoder 擅长的任务,虽然精度可能略逊于专用 Encoder,但通用性碾压。
    4. 生态马太效应:GPT 的成功证明了 Scaling Law 在 Decoder 上的有效性,所有的算子优化(如 FlashAttention, PagedAttention)都优先适配 Decoder,导致后来者只能跟进。
  • 易错点/减分项

    • 只说"GPT 效果好",没提到数据利用率推理显存/带宽的工程细节。
    • 断言"Encoder-Decoder 已死"。(加分项:指出在低资源机器翻译、极度精炼的摘要任务,或者需要严格对齐输入输出的场景中,T5/BART 类架构仍有价值,只是不适合做通用基座模型。)
❓ 考点二:请手写或口述 Decoder-only 推理时 KV Cache 的更新过程。如果不使用 KV Cache 会怎样?
  • 标准答案逻辑

    • 过程
      1. 假设生成了 t − 1 t-1 t−1 个 token,缓存了 K c a c h e , V c a c h e K_{cache}, V_{cache} Kcache,Vcache (形状: [ b a t c h , h e a d s , s e q _ l e n t − 1 , d i m ] [batch, heads, seq\len{t-1}, dim] [batch,heads,seq_lent−1,dim])。
      2. 输入第 t t t 个 token x t x_t xt。
      3. 计算当前的 q t , k t , v t q_t, k_t, v_t qt,kt,vt。
      4. 拼接 : K n e w = c o n c a t ( K c a c h e , k t ) K_{new} = concat(K_{cache}, k_t) Knew=concat(Kcache,kt), V n e w = c o n c a t ( V c a c h e , v t ) V_{new} = concat(V_{cache}, v_t) Vnew=concat(Vcache,vt)。
      5. 计算 Attention: A t t e n t i o n ( q t , K n e w , V n e w ) Attention(q_t, K_{new}, V_{new}) Attention(qt,Knew,Vnew)。
      6. 更新缓存供下一步使用。
    • 后果 :如果不使用 KV Cache,每一步生成都需要将整个历史序列 重新输入模型,重新计算所有历史 Token 的 K , V K, V K,V。计算量随序列长度呈 O ( N 2 ) O(N^2) O(N2) 增长。生成第 1000 个字时,要把前 999 个字重算一遍,速度会慢到无法接受(延迟从几十毫秒变成几秒)。
  • 易错点

    • 搞混 Q , K , V Q, K, V Q,K,V 的来源。记住:只有当前步 的 Q Q Q 是新的,历史的 K , V K, V K,V 是查表得来的。
    • 忽略显存问题。提到 KV Cache 不仅加速,还消耗显存,这是长上下文(Long Context)的主要瓶颈,引出 PagedAttention 等优化技术会是巨大的加分项。
❓ 考点三:BERT (Encoder-only) 能做生成任务吗?如果能,怎么做?有什么缺陷?
  • 标准答案逻辑

    • 理论上能,但不推荐
    • 方法
      1. 伪自回归:每次预测一个 Mask 位置,填上后,再 Mask 下一个位置,循环往复。
      2. 插入法:类似 Insertion Transformer,预测在两个 token 之间插入什么。
    • 缺陷
      1. 推理极慢:无法并行生成,且每次都要重新跑一遍 Encoder。
      2. 分布偏移 (Exposure Bias) :训练时看到的是 [MASK] 标记,推理时看到的是自己生成的(可能错误的)Token。这种输入分布的不一致会导致错误累积。
      3. 多模态问题:双向注意力导致它倾向于生成"平均化"的词,缺乏多样性。
  • 加分项 :提到 MaskGIT非自回归生成 (Non-autoregressive Generation) 的研究,说明你关注前沿。这些技术试图用 Encoder 架构做并行生成,通过迭代去噪的方式解决上述问题。

❓ 考点四:在 RAG 系统中,为什么检索阶段用 Embedding (often Encoder-only),而重排序 (Rerank) 阶段也常用 Cross-Encoder (Encoder-only)?它们有什么区别?
  • 标准答案逻辑
    • Embedding (Bi-Encoder) :Query 和 Document 分别 通过 Encoder 得到向量,然后算余弦相似度。
      • 优点 :可以预先计算好文档向量,线上只做一次 Query 编码,速度极快 ( O ( 1 ) O(1) O(1) 查找)。
      • 缺点:交互不充分,精度相对低。
    • Rerank (Cross-Encoder) :Query 和 Document 拼接 在一起 [CLS] Query [SEP] Doc [SEP] 输入同一个 Encoder。
      • 优点:利用双向注意力,Query 的每个词都能 attend 到 Doc 的每个词,捕捉细粒度语义关联,精度极高。
      • 缺点 :无法预计算。每来一个 Query,要和所有候选文档做一次前向传播,计算量大 ( O ( N ) O(N) O(N)),只能用于精排(Top 100 -> Top 5)。
    • 考点本质 :考察对 Bi-Encoder vs Cross-Encoder trade-off 的理解,这是工业界落地的经典问题。

总结与建议

作为程序员,在面试或架构选型时:

  1. 默认选 Decoder-only:除非你有极其明确的理由(如超低延迟的特定翻译任务、纯分类任务且资源受限),否则现在的大模型基座、微调、应用开发,首选 Decoder。
  2. 不要忽视 Encoder:在 RAG 的 Rerank 阶段、敏感内容过滤、高精度语义匹配中,BERT 类模型依然是王者,性价比极高。
  3. 理解原理大于背诵 :面试官更想听到你讲 KV Cache 的显存瓶颈双向注意力的训练推理差异数据利用率的数学本质,而不是背诵定义。

希望这份解析能帮你在面试中"降维打击"!如果有具体的代码实现细节想探讨,欢迎一起学习!

相关推荐
ryrhhhh2 小时前
矩阵跃动技术创新:GEO搜索占位+AI智能体双融合,重构企业获客链路
大数据·人工智能
no_work2 小时前
基于python的hog+svm实现混凝土裂缝目标检测
人工智能·python·目标检测·计算机视觉
小陈工2 小时前
2026年3月21日技术资讯洞察:云原生理性回归与Python异步革命
人工智能·python·云原生·数据挖掘·回归
柯儿的天空2 小时前
【OpenClaw 全面解析:从零到精通】第 018 篇:OpenClaw 多智能体协作系统——多 Agent 路由、任务委托与负载均衡
运维·人工智能·aigc·负载均衡·ai编程·ai写作·agi
2301_766558652 小时前
矩阵跃动OpenClaw龙虾机器人:本地AI智能体+GEO优化,企业流量自动化落地
人工智能·矩阵·机器人
LONGZETECH2 小时前
职业院校新能源汽车专业仿真教学软件建设指南
架构·汽车·汽车仿真教学软件·汽车教学软件·新能源汽车仿真教学软件
crediks2 小时前
MTGR(美团生成式推荐框架)总结文档
人工智能·深度学习·算法
Bonnie3732 小时前
云原生vs传统IT架构-核心差异与迁移必要性
人工智能·程序人生·云原生·架构·个人开发
倔强的石头1062 小时前
技术拆解:P2P组网如何一键远程AI
人工智能·网络协议·p2p