面试官问“为什么现在的大模型几乎都是Decoder-only架构”怎么回答
这个问题,绝对是这两年新出现的,不知道大家什么时候开始做NLP的,我是22年的时候开始接触,那时候的NLP下面还有很多很多细分领域,就包括NER、RE这类知识抽取类工作,BERT几乎是我们绕不开的一个模型,如果说绕开了,用的也是类似RoBERTa这类改进模型。
所以看到题目里的这个问题,很多人的第一反应是:
还不是因为22年GPT一炮走红了,所以大家都跟着做。
这个回答不能说错,但面试官通常不会继续追问,因为这说明你没有真正思考过这个问题。
要把这个问题回答好,需要从历史演进和技术逻辑两个层面逐步拆解。(回答建议在文末)
一、历史背景:2018年的分叉点
先回到2018年。这一年NLP领域出现了两件标志性事件:GPT-1发布和BERT发布。两者采用了不同架构:
GPT-1
- 架构:Decoder-only
- 注意力:单向(causal attention)
- 任务:根据前文预测下一个token
BERT
- 架构:Encoder-only
- 注意力:双向attention
- 训练目标:Masked Language Model(随机遮盖15% token再预测)
当时的结果是:BERT在几乎所有NLP benchmark上碾压GPT-1。
因此当时学术界形成了一个主流共识:
双向注意力能看到完整上下文,信息更充分,所以Encoder才是正确路线。
(这也是反复出现在我的多篇论文里的一个结论,或者说是前置条件)
所以你回看20年前后的NLP论文,几乎所有人都在研究BERT,包括我的几篇论文也都是。在那个时期,几乎没人会想到Decoder-only架构会成为今天的大模型主流。
但现在你看主流模型,像GPT、LLaMA、DeepSeek、Qwen,几乎清一色都是Decoder-only。
那么,到底发生了什么?
二、第一层原因:训练效率更高
Decoder-only使用标准语言模型训练目标:给定前面的token,预测下一个token。
假设一条训练数据有1024个token。
Decoder-only会发生什么?
- 位置1预测token2
- 位置2预测token3
- ……
- 位置1023预测token1024
也就是说:一条数据可以产生1023个训练信号。所有位置都参与loss计算。
再看 BERT:BERT只预测被mask的15% token。同样1024 token的序列,只有约153个位置产生训练信号,85%的token不参与loss。
简单比喻就是:
- Decoder-only:整本教材每一页都在做练习
- BERT:随机抽几道题练习
当训练规模达到万亿token时,那这种效率差距肯定就会被极度放大。
三、第二个原因:训练与推理一致
BERT还有一个更深层的问题:训练与推理分布不一致。
BERT训练的时候,输入中包含[MASK] token。模型学到的是:"看到mask,就预测原词"。但实际使用BERT时,输入文本里并没有mask。也就是说:训练数据分布 ≠ 推理数据分布。
原论文也意识到这个问题,因此做了一些补丁:15%mask 中80%用 [MASK]、10%保留原词、10%随机替换。但这些本质上只是缓解,而不是解决。
Decoder-only就没有这个问题。因为它的训练过程是从左到右生成,推理过程是从左到右生成,也就是说训练行为与推理行为完全一致。
四、关键转折:上下文学习(In-Context Learning)
真正的转折点出现在GPT-2和GPT-3。
在GPT-2时,OpenAI发现了一个现象:不进行任何微调,只在prompt里给几个示例,模型就能完成新任务。到了GPT-3(1750亿参数),这种能力变得非常明显。
这就是In-Context Learning(上下文学习)。例如:
中文:你好 英文:Hello 中文:谢谢 英文:
模型就能推断出任务是翻译。
这个能力的重要性在于:它改变了大模型的使用范式。
在 BERT 时代,每个任务都要:
- 收集标注数据
- 接任务head
- 单独微调
每个任务一套训练流程。而GPT-3证明了一件事:
一个足够大的Decoder-only模型,可以通过Prompt直接完成任务。不需要微调、任务head、梯度更新,只需要设计prompt。
这种能力几乎是Decoder-only的天然优势。因为上下文学习本质是:把示例当作前文,再生成答案。这和自回归生成训练目标完全一致。
五、第三个原因:Scaling更可预测
OpenAI在研究Scaling Law时发现:随着模型参数、数据规模、计算量同步增加时,Decoder-only的loss下降非常平滑,而且可以用幂律函数准确拟合。
这意味着:如果算力增加一倍,可以大致预测loss会下降多少。
这对工程决策非常重要。当训练成本是几千万美元级别时,企业必须能预测投入产出比。如果scaling行为不可预测,那基本就是在赌博。
六、第四个原因:范式统一
Decoder-only的训练目标非常简单:给定前文,预测下一个token。但这个目标的表达能力几乎是无限的。
例如:
分类任务: 文本:这部电影很好看 情感:正面 翻译任务: 中文:你好 英文:Hello 问答任务: 问题:太阳有多大? 答案:___
几乎所有任务都可以统一为序列生成。这带来一个巨大工程优势:一套训练框架、一套推理系统、一套优化方案,就能解决所有任务。
而BERT的范式是预训练+任务微调,每个任务都需要设计任务头、标注数据、单独训练。在追求通用模型的时代,这种方式显得非常笨重。
七、第五个原因:推理效率与KV Cache
Decoder-only在推理阶段还有一个关键优化:KV Cache。
因为因果注意力只关注前文,第100个token生成时,前面99个token的Key / Value可以缓存。因此计算复杂度从O(n²)降低为O(n),这对在线推理成本影响巨大。
八、第六个原因:因果注意力的归纳偏置
直觉上很多人会认为:单向注意力是一种限制,因为 BERT 可以看到完整上下文。
但换个角度看:Decoder-only在训练时不能偷看未来token。它必须依赖已有上下文推断未来。这会迫使模型学习更强的因果结构和更真实的语言规律。
可以类比考试:
- 开卷考试(BERT):可以查答案
- 闭卷考试(Decoder-only):必须真正理解
九、为什么 Encoder-Decoder 也没成为主流?
很多人会问:那T5(Text-to-Text Transfer Transformer,也是谷歌这个老小子提出来的)呢?T5在2020年证明Encoder-Decoder也可以用Text-to-Text范式解决各种任务。但在关键维度上仍有现实问题。
1. 参数分配问题
Encoder-Decoder需要决定Encoder和Decoder各占多少参数。T5论文发现1:1比例最好,但当模型规模从10亿到千亿、万亿的时候,最优比例是否仍然成立?不确定。这让Scaling研究更复杂、更难预测。
2. 推理效率更低
Encoder-Decoder推理时,Decoder每一步不仅要做自注意力,还要做cross-attention,计算量和显存开销更大。在大规模部署时,推理效率直接决定每token成本。
3. 上下文学习能力更弱
Encoder-Decoder把流程拆成两部分:Encoder理解输入,Decoder生成输出。这种结构反而削弱了上下文学习能力。而few-shot 学习恰恰是大模型时代最重要的能力。
十、总结
历史最终选择Decoder-only,并不是因为某一个维度碾压,而是它在多个维度同时占优:
- 训练效率更高
- 训练与推理一致
- 上下文学习能力强
- Scaling 行为可预测
- 任务范式统一
- 推理效率更高(KV Cache)
- 因果注意力带来更好的归纳偏置
每一个优势可能都不是绝对压倒性的。但当七个优势叠加在一起,就形成了一个其他架构很难突破的综合壁垒。
面试回答建议
面试回答时,可以按照这个逻辑展开:
- 从GPT-1 vs BERT的历史背景讲起(不讲也行,面试官不喜欢唠叨的话这条会扣分)
- 先讲训练效率+训练推理一致性
- 再讲上下文学习的涌现(关键转折)
- 扩展到Scaling、范式统一、推理效率
- 最后解释为什么Encoder-Decoder没成为主流
#AI求职实录#
AI 面试题目精讲专栏:一题一讲、一讲一通透,系统提升 AI 面试应答能力与竞争力
