真实面经题目 · 原创解析

为什么主流大语言模型多采用 Decoder-only 架构?相比 Encoder-only 和 Encoder-Decoder,它在训练目标、推理效率和产品能力上有哪些取舍?

这题考候选人是否能把 Decoder-only 的流行讲清楚:它不是单纯结构更先进,而是在自回归训练、生成式推理、规模化训练和产品通用能力之间形成了更顺手的工程取舍。

出现于:字节跳动 · 产品

60 秒回答模板

主流大语言模型大量采用 Decoder-only,核心原因是今天的通用大模型主要被当成“给定上下文继续生成”的系统来训练和使用。Decoder-only 的训练目标通常是 next token prediction,也就是根据前面的 token 预测下一个 token,这和聊天、写作、代码补全、工具调用参数生成等产品形态天然一致。相比 Encoder-only,Decoder-only 不只是理解输入,而是能逐 token 生成输出;Encoder-only 更适合分类、检索、抽取、匹配等理解任务。相比 Encoder-Decoder,Decoder-only 把输入提示和输出都放进同一条 token 序列里,训练和推理链路更统一,规模化预训练、指令微调、上下文学习和多任务提示都更简单。推理上,它每次只新增一个 token,可以复用历史 KV Cache;虽然注意力成本仍然会随上下文变长而上升,但生成过程的缓存复用非常适合在线对话和流式输出。代价是 Decoder-only 对纯理解任务不一定是最经济的,对很长输入的注意力和 KV Cache 压力明显,也可能在需要强双向理解的场景里不如 Encoder 表示直接。产品上可以总结为:Decoder-only 更适合统一承载“理解加生成”的通用助手能力,Encoder-only 更像高效理解模块,Encoder-Decoder 在翻译、摘要等输入输出映射任务上仍有优势;面试中要强调这是训练目标、推理效率、生态和产品通用性的综合选择,而不是某个架构绝对胜出。

考点 核心动因
难度 真实面经题
回答目标 让候选人能用训练目标、推理机制和产品能力三条线解释 Decoder-only 的主流地位,同时清楚说明 Encoder-only 和 Encoder-Decoder 仍有适用边界。

深入解析

01

先从产品形态解释架构选择

现在的大语言模型通常承担聊天、写作、代码生成、规划和工具参数生成等任务,本质都是在上下文条件下连续生成 token。Decoder-only 的因果注意力只允许当前位置看见历史位置,刚好对应“读完提示后继续往下写”的使用方式。回答时先用这个产品形态开场,比直接讲 Transformer 模块更容易让面试官看到你理解架构选择和产品能力的关系。

02

训练目标与自回归生成天然一致

Decoder-only 常用 next token prediction 训练目标:给定前文预测下一个 token。这个目标可以直接使用大量自然文本、代码和对话式数据,并且预训练、指令微调、偏好对齐都可以围绕同一个生成接口展开。它的优势是任务形式统一:分类可以写成生成标签,抽取可以写成生成字段,问答可以写成生成答案,工具调用可以写成生成结构化参数。

03

和 Encoder-only 的取舍

Encoder-only 使用双向上下文,更擅长把输入压成高质量表示,适合检索向量、文本分类、匹配、排序、抽取等理解任务。它的短板是天然不负责逐 token 生成长文本,如果要生成通常还需要额外解码器或任务头。Decoder-only 在表示学习上未必总是最省算力,但它把理解和生成放进同一套语言建模接口,更适合作为通用助手底座。

04

和 Encoder-Decoder 的取舍

Encoder-Decoder 把输入编码和输出解码分开,适合翻译、摘要、改写等明确的条件生成任务,输入端能做双向编码,输出端再自回归生成。Decoder-only 则把 prompt、上下文、示例、问题和答案串成一条序列,结构更简单,预训练和提示学习形式更统一。代价是输入和输出都挤在同一个上下文窗口里,长输入任务的注意力成本更直接。

05

推理效率来自增量生成和缓存复用

在线生成时,模型每步只产生一个新 token。Decoder-only 可以把历史 token 的 key/value 缓存在 KV Cache 中,下一步只需要为新增 token 计算新的表示并关注历史缓存,这让流式回答和多轮对话更可控。限制也很明显:上下文越长,缓存占用越大,每个新 token 需要看的历史越多,所以 Decoder-only 不是“无限便宜”,只是和自回归生成链路匹配度很高。

06

产品能力要用统一接口与边界收束

成熟回答最后要落到产品:Decoder-only 的价值是一个模型可以通过提示承载问答、总结、创作、代码、角色扮演和工具调用等多种能力,产品迭代也容易围绕同一套 prompt、评测集和推理服务演进。但对低延迟分类、向量召回、超长文档理解、强结构化抽取等场景,单独的 Encoder、检索模块或专门模型仍可能更合适。

易错点

  • 只说 Decoder-only 参数更多或效果更好,没有解释自回归训练目标和生成式产品形态的匹配。
  • 把 Encoder-only 说成落后架构,忽略它在检索、分类、匹配和表示学习中的效率优势。
  • 把 Encoder-Decoder 完全否定,漏掉翻译、摘要、条件生成等仍适合分离编码和解码的场景。
  • 误以为 KV Cache 让长上下文推理没有成本,实际缓存会占显存,每个新 token 仍要关注历史上下文。
  • 把所有任务都说成必须用 Decoder-only,忽略产品系统常常是大模型、检索、规则、小模型和工具的组合。
  • 在回答中编造某个厂商内部架构选择或训练策略;公开题目只要求解释通用技术取舍。

面试官追问

为什么 Decoder-only 能做分类或抽取这类理解任务?

因为可以把任务改写成生成问题,例如“判断情感,只输出正向或负向”或“从文本中生成 JSON 字段”。它不是用专门分类头输出,而是用语言建模接口生成标签或结构化答案。

Encoder-only 是否已经不重要了?

不是。Encoder-only 在向量表示、检索召回、排序、文本匹配、轻量分类等场景仍然高效,常作为 RAG、搜索、推荐或审核系统的组成模块。通用对话底座常用 Decoder-only,不等于所有 NLP 任务都该用它。

Encoder-Decoder 在哪些场景仍然有优势?

当任务是明确的条件生成,例如翻译、摘要、改写、语音或多模态编码到文本输出时,分离输入编码和输出解码可能更自然。它可以对输入做完整双向编码,再由解码器生成结果。

Decoder-only 的推理瓶颈是什么?

主要是逐 token 生成导致输出越长耗时越长,长上下文导致注意力计算和 KV Cache 占用增加,并发时显存管理更复杂。KV Cache 能减少重复计算,但不能消除上下文长度带来的成本。

面试中怎样避免把答案讲成纯算法细节?

可以按“训练目标统一、推理链路匹配、产品能力通用、边界和补充模块”四步讲。这样既覆盖技术机制,也能说明业务侧为什么需要理解架构取舍。