核心要点

  • GPT:纯 Decoder-only 架构,全程单向(因果)注意力,自回归逐 token 预测下一个词

  • ChatGLM:基于 GLM,预训练目标是自回归空白填充(autoregressive blank infilling),把文本中的连续片段挖空再自回归生成

  • 注意力可见性不同:GLM 是 Prefix-LM 式——对未被挖空的前缀部分双向可见,对待生成的空白片段单向自回归,兼顾理解与生成

  • GLM 引入特殊的 2D 位置编码区分片段内/片段间位置;二者还有 RMSNorm、RoPE 等工程层面的选择差异

标准回答

回答这道题的关键是抓住两点核心差异:预训练目标注意力可见性(mask 设计),结构上的不同大多由它们派生。GPT 的结构GPT 是典型的Decoder-only模型。它从头到尾使用单向因果注意力(causal mask),每个位置只能看到自己及左侧的 token。预训练目标是 自回归语言建模,即逐 token 预测下一个词。这种结构天然适合生成式任务,但纯单向限制了它对上下文的双向编码能力。ChatGLM / GLM 的结构ChatGLM 基于 GLM(General Language Model。它的预训练目标是 自回归空白填充(autoregressive blank infilling):在输入中随机挖掉若干连续片段(span),把这些片段移到序列末尾,让模型自回归地把它们生成出来。

由此带来的注意力设计是一种Prefix-LM(前缀语言模型) 形式:
-对未被挖空的前缀部分 双向可见,类似 BERT 的编码方式,利于语义理解;
-
对待填充的空白片段
内部单向自回归,类似 GPT 的生成方式。

这样一份模型就同时具备了理解(双向编码)生成(自回归解码 能力,这是 GLM 设计的初衷——用统一目标兼容 NLU 与 NLG。位置编码与工程选择为了表示「片段在原文中的位置」和「片段内部的相对位置」,GLM 采用了特殊的 2D 位置编码:一维标记片段在原序列的位置,另一维标记片段内部偏移。此外,ChatGLM 系列在工程上还使用了RMSNormRoPE(旋转位置编码) 等现代选择,并在后续版本中逐步靠拢主流 Decoder 结构。一句话总结GPT = 纯单向自回归的 Decoder-only;ChatGLM/GLM = 用自回归空白填充训练、注意力上「前缀双向 + 生成单向」的 Prefix-LM 式结构,目标是统一理解与生成。

常见误区

⚠️ 常见踩坑

不要简单地说「ChatGLM 就是中文版 GPT」。二者在预训练目标(自回归空白填充 vs 纯自回归语言建模)和注意力可见性(前缀双向 vs 全程单向)上有本质区别。也别把 GLM 的「双向」误解成像 BERT 那样只能做编码不能生成——它对前缀双向、对空白片段仍是自回归生成。

追问

追问 1自回归空白填充(autoregressive blank infilling)相比 BERT 的 MLM 有什么优势?

MLM 是独立预测被 [MASK] 的单个 token,且预训练时引入了下游不存在的 [MASK] 符号,存在预训练-微调不一致。GLM 的空白填充挖的是连续片段并自回归生成,片段内 token 之间有依赖建模,更贴近生成任务,同时通过随机化空白长度/数量兼顾 NLU 与 NLG,统一了理解与生成两类目标。

追问 2GLM 的 2D 位置编码具体编码了什么信息?

它用两个维度:第一维(inter-position,片段间/原文位置)表示某个片段在原始文本中所处的位置,使被打乱后置到序列末尾的片段仍能还原其原文位置;第二维(intra-position,片段内偏移)表示 token 在该片段内部的相对顺序。这样既能让前缀感知片段「应该出现在哪里」,又能让生成时知道当前在片段内的进度。

追问 3既然 GLM 兼顾理解与生成,为什么后续大模型(包括 ChatGLM 新版)大多回归 Decoder-only?

Decoder-only 在超大规模数据与参数下展现出更好的扩展性(scaling)、训练/推理工程更简单、KV Cache 等优化更成熟,且通过指令微调即可在理解类任务上达到很强表现。GLM 的双向编码优势在小规模时明显,但随着规模增大,纯自回归 + 海量数据的「涌现」收益更高,因此业界逐渐统一到 Decoder-only 范式,ChatGLM 后续版本也在结构上向其靠拢。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习