超越BERT和GPT:深入浅出解读GLM的‘自回归空白填充’到底强在哪?
GLM革命:自回归空白填充如何统一语言理解与生成任务
当ChatGPT掀起生成式AI的浪潮时,一个根本性问题始终困扰着技术社区:是否存在一种预训练框架,能同时精通语言理解(NLU)和文本生成?传统方案如BERT和GPT各执一端,而清华大学的GLM模型通过 自回归空白填充 (Autoregressive Blank Infilling)给出了惊艳的答案。这种创新不仅让单一模型在SuperGLUE基准上超越BERT 5%,更在生成任务中媲美专用模型,其核心在于三个关键设计:
- 动态跨度预测 :随机遮盖文本片段后,以自回归方式按任意顺序重建
- 二维位置编码 :同时编码文本全局位置与片段内部相对位置
- 多目标统一 :通过调整遮盖跨度长度,适配理解/生成不同需求
1. 预训练范式的进化困局
语言模型发展至今,形成了三条技术路线。 自编码模型 如BERT通过双向上下文预测被掩码的单词,在NLU任务所向披靡却无法流畅生成文本; 自回归模型 如GPT凭借单向预测机制成为文本生成霸主,却难以捕捉下文信息; 编码器-解码器架构 如T5试图调和二者,却因结构复杂导致参数利用率低下。
下表揭示了三类模型的本质局限:
| 模型类型 | 代表模型 | 注意力机制 | 擅长任务 | 主要缺陷 |
|---|---|---|---|---|
| 自编码 | BERT | 双向 | 文本分类、NER | 生成不连贯 |
| 自回归 | GPT-3 | 单向 | 故事创作、对话 | 理解不充分 |
| 编码器-解码器 | T5 | 混合 | 翻译、摘要 | 参数冗余 |
GLM的突破在于发现: 空白填充本质上是条件生成任务 。当要求模型"北京是中国的[MASK]",这既需要理解上下文(NLU),又需要生成合理词汇(生成)。传统掩码语言模型将[MASK]视为独立预测任务,而GLM将其重构为序列生成问题。
技术细节:GLM的遮盖策略采用泊松分布(λ=3)随机采样片段长度,最终遮盖约15%文本。与BERT的随机遮盖不同,这些片段保持连续性和上下文关联。
2. 自回归空白填充的三大创新
2.1 动态跨度重排机制
GLM的预处理流程包含精妙设计:
- 从文本中采样多个连续片段(如"[x3]"和"[x5,x6]")
- 用特殊标记[M]替换这些片段形成Part A
- 将被遮盖片段打乱顺序后拼接为Part B
- 模型需按打乱顺序自回归重建Part B
# 伪代码展示GLM的输入处理
original_text = [x1,x2,x3,x4,x5,x6]
sampled_spans = [[x3], [x5,x6]]
corrupted_text = [x1,x2,[M],x4,[M]] # Part A
target_spans = shuffle([[S]x3[E], [S]x5x6[E]]) # Part B
这种设计带来两个优势:
- 增强上下文建模 :重建长片段需要理解全局语义
- 提升泛化能力 :随机顺序迫使模型学习更稳健的特征表示
2.2 二维位置编码系统
传统位置编码面临的核心矛盾是:既要保留原文位置信息,又要适应动态生成的片段。GLM的解决方案是:
- 第一维位置 :记录token在损坏文本中的绝对位置
- 第二维位置 :标记token在遮盖片段内的相对位置(Part A为0)
例如处理句子"人工智能将[M1]改变世界[M2]未来"时:
- "改变"在Part B的第一维位置是[M1]的位置4
- 其在片段内的第二维位置是1([S]后第一个token)
这种编码方式使模型能够:
- 保持对原文结构的理解
- 无需预先知道生成长度
- 区分不同片段间的边界
2.3 多任务统一架构
通过调整遮盖策略,GLM实现了一个模型三种能力:
| 任务类型 | 遮盖策略 | 应用场景 |
|---|---|---|
| 单词级预测 | 短片段(3-5词) | 文本分类、NER |
| 句子级预测 | 完整句子 | 摘要、问答 |
| 文档级预测 | 长文本(50%-100%) | 故事生成、对话 |
实验显示,这种多任务训练使GLM-130B在LAMBADA(语言理解)上达到76.1%准确率,同时能在CNN/DailyMail摘要任务中生成流畅结果,证明其真正的通用能力。
3. 为什么GLM比前辈更优秀?
3.1 与BERT的对比实验
在相同参数量(110M)和训练数据(BookCorpus+Wikipedia)下:
| 模型 | MNLI-m | QNLI | RTE | SST-2 |
|---|---|---|---|---|
| BERT | 84.3 | 91.7 | 68.9 | 93.2 |
| GLM | 89.1 | 93.4 | 73.6 | 94.5 |
关键差异在于:
- BERT的[MASK]标记独立预测,忽略片段内依赖
- GLM的序列生成方式更接近人类语言习惯
3.2 与GPT的生成质量对比
使用相同的提示"人工智能将"进行续写:
- GPT-3输出: "人工智能将继续改变我们的生活,但也带来伦理挑战" (通用但平淡)
- GLM输出: "人工智能将以'空白填充'的方式重塑认知——就像它此刻正在补全这个句子" (更贴合上下文)
这种优势源于GLM训练时接触的多样化空白填充任务,使其对上下文敏感度更高。
3.3 与T5的结构效率对比
在文本摘要任务中:
| 模型 | ROUGE-1 | 参数量 | 训练耗时 |
|---|---|---|---|
| T5-Large | 40.2 | 770M | 96h |
| GLM-Large | 41.7 | 550M | 82h |
GLM的优势来自:
- 单Transformer架构参数共享
- 无需哨兵标记(如T5的<extra_id_0>)
- 位置编码直接适配生成任务
4. 技术实现关键细节
4.1 注意力掩码设计
GLM的注意力矩阵包含精妙约束:
- Part A区域 :允许双向注意力(类似BERT)
- Part B区域 :只能关注已生成内容(类似GPT)
- 跨区域控制 :Part B可关注Part A,反之禁止
# 伪代码实现注意力掩码
attention_mask = [
[1, 1, 1, 0, 0], # Part A token自我关注
[1, 1, 1, 0, 0],
[1, 1, 1, 0, 0],
[1, 1, 1, 1, 0], # Part B token可看到Part A
[1, 1, 1, 1, 1] # 自回归生成约束
]
4.2 模型架构改进
GLM对标准Transformer做了三处关键修改:
- 层归一化位置 :采用Pre-LN结构(先归一化再残差连接)
# 传统:x + LN(Attention(x)) # GLM:LN(x + Attention(x)) - 激活函数 :用GeLU替代ReLU,提升梯度流动
- 输出层 :单线性投影简化预测头
4.3 微调适配策略
针对不同下游任务,GLM展现惊人灵活性:
- 分类任务 :转化为完形填空
输入:这部电影很棒 → "这部电影很[MASK]" 选项:["好","差"] → 模型生成"好" - 生成任务 :直接续写被遮盖部分
- 序列标注 :为每个token生成标签词
5. 实战效果与行业影响
GLM-130B作为亚洲首个千亿级开源模型,在斯坦福评测中展现出与GPT-3 175B相当的性能:
| 指标 | GPT-3 | GLM-130B |
|---|---|---|
| 准确性 | 72.3 | 71.2 |
| 有害性 | 0.12 | 0.11 |
| 推理耗时(ms) | 350 | 290 |
实际应用中发现两个典型优势场景:
- 中文长文本生成 :在政府工作报告撰写等任务中,保持优于其他模型的逻辑连贯性
- 少样本学习 :仅需5个示例就能适应新的文本分类任务
案例:某金融机构采用GLM处理合规文档审查,将合同条款识别F1值从BERT的89%提升至93%,同时能自动生成风险摘要。
这种统一架构极大简化了工业部署流程——不再需要为理解/生成任务维护不同模型,单个GLM实例通过不同提示(prompt)即可切换工作模式。当处理需要深度理解后生成的复杂任务(如法律条款解释)时,这种端到端特性尤其珍贵。
更多推荐



所有评论(0)