先这样答
Decoder-only 成为大模型主流架构,主要原因是它在训练效率、生成任务匹配度以及参数放大的工程友好度上具备优势。这里的主流指的是通用生成基座这一赛道,并不是说它在所有任务上都全面强于其他架构。
首先是训练效率和数据利用率高。Decoder-only 采用因果注意力机制,对整个序列做下一个词预测。这意味着在训练时,一句话的语料可以提供序列长度个监督信号,每个 token 位置都在做预测。这种方式的数据利用率远高于 Encoder 类架构的完形填空式目标,并且整个训练过程可以完全并行计算。
其次,训练目标与推理方式完全一致。现在的通用大模型主要处理对话、写作和代码生成,这些任务本质上都是从左到右的生成。Decoder-only 的预训练目标直接契合这种生成方式,不存在 Encoder-Decoder 架构在开放生成任务上需要做额外适配的训练与推理目标错位问题。
另外是 Scaling 友好。大模型的发展依赖于算力和数据的规模放大,Decoder-only 采用统一堆叠的同构网络层,工程实现相对简单。整个模型只需要维护一种注意力掩码和一套位置编码。在放大模型参数和训练数据时,这种单一结构的表现非常稳定,更容易在底层对显存分配和算力利用进行优化。
最后在面试官面前可以这样收束:在理解或分类任务上 Encoder-only 依然有一席之地,在固定输入输出的翻译或摘要场景 Encoder-Decoder 也不落下风。Decoder-only 胜出是因为高数据利用率、训推一致和好放大这三条主因,最符合通用生成大模型的发展需求。
面试官会怎么追问
-
「既然 Decoder-only 这么好,那 Encoder-only 类的模型是不是完全没用了?」 并不是。Encoder-only 在双向注意力机制下能同时看到上下文,因此在文本理解、分类任务上依然具有优势。Decoder-only 的主流地位限定在通用生成基座赛道,而不是说它在所有自然语言处理任务上都更强。
-
「Encoder-Decoder 架构也能做生成任务,为什么现在通用大模型不用它了?」 Encoder-Decoder 架构在翻译或摘要这种有固定输入输出边界的场景表现很好。但在开放式对话或通用生成任务中,它的编码器和解码器分工会导致训练和推理时的目标错位,需要额外的适配工作,且维护两套网络组件在参数放大时增加了工程复杂度。
-
「你提到 Decoder-only 训练效率高,具体是怎么体现的?」 体现在监督信号的密度上。Decoder-only 的因果注意力让序列中的每一个词都可以作为下一个词预测的训练样本,一句语料等于序列长度个训练样本。相比之下,掩码语言模型的训练方式通常只遮盖少部分词,Decoder-only 能更充分地榨取预训练数据的价值。
回答的坑
常见的坑是认为 Decoder-only 架构在所有任务上都全面优于其他架构,正确的答法是界定清楚能力边界,强调它主要是在通用生成基座赛道胜出,而其他架构在特定场景仍有价值。
在解释训练效率时容易将训练阶段的并行计算与推理阶段的逐字生成混为一谈,正确的方向是说明预训练时一句话语料能并行产生序列长度个监督信号,而推理时才是自回归生成。
同系列的题