09. 为什么现在主流大模型大多采用 Decoder-Only 架构?

整理 Decoder-Only 成为主流基座架构的原因与权衡。

简单回答

Decoder-Only 架构在大规模语言建模上效果最好,主要因为:统一的自回归目标让预训练效率最高(每个 token 都参与损失计算),causal mask 天然适配生成任务,工程上推理用 KV Cache 非常高效,且 scaling 表现最优。Encoder-Decoder 在特定任务(翻译、摘要)上有优势,但作为通用基座模型,Decoder-Only 是目前最优选择。

详细解释

三种架构回顾

Transformer 有三种主要架构变体,它们的核心区别在于注意力掩码和训练目标:

Encoder-Only(代表:BERT):使用双向注意力(每个 token 可以看到所有其他 token),训练目标是 Masked Language Model(MLM,随机 mask 15% 的 token,预测被 mask 的 token)。擅长理解任务(分类、NER、句子相似度),但不能直接做生成——因为它没有自回归的生成机制,输出长度和格式不灵活。

Encoder-Decoder(代表:T5、BART):Encoder 用双向注意力处理输入,Decoder 用 causal attention 自回归生成输出,两者通过 Cross-Attention 连接。训练目标通常是 seq2seq 形式(如 T5 的 span corruption)。架构最灵活,理论上表达能力最强,适合输入和输出有明确区分的任务(翻译、摘要)。

Decoder-Only(代表:GPT 系列):只有 Decoder 部分,causal mask 确保每个 token 只看左边的 token。训练目标是 next token prediction(NTP),自回归生成。

为什么 Decoder-Only 在大模型时代胜出?

这是面试官非常关注的问题,不能只说"因为 GPT 用了所以大家跟",要讲清楚背后的原因。

第一,训练信号密度最高。 这是最核心的优势。Next token prediction 目标下,序列中每个 token(除了第一个)都有一个 loss——对于 n 个 token 的序列,有 n-1 个训练信号。相比之下,BERT 的 MLM 只 mask 15% 的 token,只有 0.15n 个训练信号。在同样的数据量和计算量下,Decoder-Only 获得的训练信号密度是 BERT 的约 6-7 倍。这意味着每看一个 token,模型从 Decoder-Only 目标中学到的东西更多。

Encoder-Decoder 的情况介于两者之间:Encoder 端如果用 span corruption(T5),被 mask 的 span 占输入的 15%;Decoder 端只需要生成被 mask 的内容。整体信号密度仍然低于 Decoder-Only。

第二,Scaling Law 表现最优。 GPT-3、Chinchilla 等大规模实验系统地验证了 Decoder-Only 架构在 scaling 时性能提升最平滑、最可预测。虽然也有 Encoder-Decoder 架构的 scaling law 研究(如 UL2),但 Decoder-Only 的数据覆盖更充分,结论更可靠。大公司在做几亿美金的训练决策时,"可预测性"极其重要——不能赌。

第三,任务统一性——万物皆 completion。 所有 NLP 任务都可以转化为"给定前文,生成续写"的形式。问答是"问题 → 答案",翻译是"源语言文本 → 目标语言文本",摘要是"原文 → 摘要",代码生成是"注释/需求 → 代码"。这种统一性让一个模型可以处理所有类型的任务,不需要为每种任务设计特殊的输入/输出格式。

Encoder-Decoder 需要显式区分 encoder input 和 decoder target,这在某些任务中是自然的(翻译),但在多轮对话等场景中就比较别扭。Decoder-Only 的对话格式只需要拼接历史消息就行。

第四,推理效率高。 Causal 结构天然支持 KV Cache——推理时每生成一个新 token,只需要计算这个 token 的 Q 与历史所有 KV 的 attention,历史 KV 全部复用,不需要重新计算。

Encoder-Decoder 的推理流程更复杂:先要完整跑一遍 Encoder(对输入做双向 attention),然后 Decoder 自回归生成时,每一步既要算 self-attention(可以用 KV Cache),又要算 Cross-Attention(需要 attend 到 Encoder 的输出)。计算图更复杂,工程优化空间更小。

第五,In-Context Learning 的自然支持。 Decoder-Only 的自回归特性让 few-shot ICL(In-Context Learning)非常自然——把示例拼在 prompt 里,模型自然地基于这些示例来生成。GPT-3 展示的惊人 ICL 能力是 Decoder-Only 架构的一大卖点。

Encoder-Decoder 并没有"死"

虽然作为通用基座模型 Decoder-Only 已经一统天下,但在一些特定场景,Encoder-Decoder 仍有优势:

  • 翻译:Encoder 可以双向理解源语言,然后 Decoder 生成目标语言。这比 Decoder-Only 的序列拼接方式更自然。
  • 语音识别:Whisper 用的就是 Encoder-Decoder。Encoder 处理音频特征(固定长度输入),Decoder 生成文本。
  • 条件生成:当输入和输出有明确界限且输入需要深度理解时,Encoder 的双向注意力有优势。

另外,有一个常见误解需要澄清:Decoder-Only 不等于只能做生成不能做理解。通过 instruction tuning 和 prompt 设计,Decoder-Only 模型在理解任务(如分类、NLI)上也可以达到很好的效果。它"只能看左边"的约束在推理时确实存在,但在充分训练后,模型学会了在 causal 约束下做有效的理解。

Prefix LM:一种折中方案

Prefix LM(如 GLM、U-PaLM 的部分设置)在 Decoder-Only 的基础上,对 prefix 部分使用双向注意力,只对生成部分使用 causal attention。这试图结合两者优点:prefix 部分可以双向理解输入,生成部分自回归。但实践中它的收益不够明显,大部分主流模型没有采用。

面试时可以这样答

这个问题可以从训练效率、scaling 特性和工程简洁性几个角度来分析。

最核心的原因是训练信号密度。Decoder-Only 的 next token prediction 目标下,每个 token 都产生 loss,n 个 token 有 n-1 个训练信号。BERT 的 MLM 只 mask 15%,信号密度差了将近 7 倍。同样的数据和算力下,Decoder-Only 学到的东西更多。

第二是 Scaling Law。GPT-3 和 Chinchilla 等大规模实验反复验证了 Decoder-Only 在 scaling 时性能提升最平滑、最可预测。对于几百万美金级别的训练决策来说,"可预测"这件事极其重要。

第三是任务统一性。所有任务都可以转成 prompt 加 completion 的形式,不需要区分 encoder 和 decoder 的输入。工程上也更简单,推理时 KV Cache 的使用非常直接。

当然 Encoder-Decoder 在翻译、语音这些特定场景还有优势。Decoder-Only 也不是不能做理解任务——通过充分训练和 instruction tuning,causal 约束下的理解能力也很强。

总结就是,作为通用基座模型,Decoder-Only 在效率、scaling、统一性上全面领先,这就是为什么所有头部模型都用这个架构。

常见追问

  1. Decoder-Only 模型"只能看左边",那它是怎么做好理解任务的?和双向模型的差距在哪?
  2. Prefix LM 和标准 Causal LM 有什么区别?为什么没有成为主流?
  3. 如果 Encoder-Decoder 用 Decoder-Only 同样量级的数据和算力训练,效果会怎样?有人做过这个实验吗?