【大模型】ChatGLM训练框架
一、ChatGLM-1(初代)概览
ChatGLM-1 基于 GLM(General Language Model)设计,提出“自回归空格填充”策略,兼具双向理解与自回归生成能力,具备 NLU 和 NLG 双重优势。
二、GLM 预训练框架详解
GLM 框架的核心目标是打破自编码与自回归模型的壁垒,实现统一编码与生成。以下分模块详细说明:
1. 预训练目标:自回归空格填充(Autoregressive Blank Infilling)
- 拆分与遮蔽:给定原始文本序列 x = [ x 1 , x 2 , … , x n ] x=[x_1, x_2,\ldots,x_n] x=[x1,x2,…,xn],根据泊松分布 (λ≈3) 随机采样多个连续 spans,直到约 15% token 被遮蔽,生成:
- Part A:剩余未遮蔽 tokens,顺序保持原状;
- Part B:所有被 mask spans,以
[S]...tokens...[E]
标记,每个 span 前后包裹专用哨兵。
- Span Shuffle:将 Part B 中的各个 span 顺序随机打乱,构造所有可能的排列集合 Z m Z_m Zm,使模型能学习不同上下文依赖排列
- 自回归生成:对每种排列 z ∈ Z m z\in Z_m z∈Zm,模型最大化:
L b l a n k = E z ∼ Z m [ ∑ i = 1 m log p θ ( s z i ∣ x corrupt , s z < i ) ] \mathcal{L}_{\mathrm{blank}} = \mathbb{E}_{z\sim Z_m} \left[ \sum_{i=1}^m \log p_\theta(s_{z_i} \mid x_{\text{corrupt}}, s_{z_{<i}}) \right] Lblank=Ez∼Zm[i=1∑mlogpθ(szi∣xcorrupt,sz<i)]
模型在预测当前第 i i i 个 span 时,可访问:
- 双向可见:Part A 中所有 tokens
- 单向可见:之前已预测的 spans s z < i s_{z_{<i}} sz<i
2. 二维位置编码(2D Positional Encoding)
- 第一维:表示原始文本中的绝对位置(Part A 和被 mask spans 在原文中的起止位置)。
- 第二维:表示在每个 span 内部的相对偏移,用于区分同一 span 中各 token 顺序。
两组位置编码分别映射至独立 embedding,然后相加到 token embedding 上,为 GLM 提供跨 span 与内部顺序双重位置信息。
3. Attention Mask 设计
- Part A ↔ Part A:完全双向可见,保证编码器能力。
- Part A ← Part B:Part B 中的 token 可见全体 Part A,获取上下文信息。
- Part B 内部:遵循因果约束(Causal),仅可见自身及之前已生成 token,防止未来信息泄露。
- Part B ↛ Part A:Part A 不可见 Part B,确保生成依赖只从 Part A 及已生成 spans。
此设计使模型同时具备双向编码与自回归解码机制。
4. 采样与噪声策略
- 泊松分布采样:选取 spans 长度符合 Poisson(λ),模拟多样化遮蔽长度。
- 重复采样:对同一输入多次不同遮蔽,增强模型泛化。
- Mask 比例:调控在 10%–20% 间最优,通常设为 15%。
5. 多目标扩展
为了兼顾长文本生成与短文本理解,GLM 在空格填充基础上,增加:
- 文档级 Seq2Seq:随机 mask 文档中 50%–100% 连续区域,以生成长段落;
- 句子级填空:完整句子为单元进行 mask,覆盖比例同样约 15%,用于下游 NLU 微调。
总损失:
L b l a n k + β L d o c + γ L s e n t \mathcal{L}_{\mathrm{blank}} + \beta\mathcal{L}_{\mathrm{doc}} + \gamma\mathcal{L}_{\mathrm{sent}} Lblank+βLdoc+γLsent
其中超参 ( α , β , γ ) (\alpha,\beta,\gamma) (α,β,γ) 通过验证集调优。
6. 模型结构细节
在标准 Transformer Decoder 架构上做如下调整
- LayerNorm 与残差重排:提高稳定性;
- Unified LM-Head:单层线性映射输出所有词汇预测;
- 激活函数:改用 GeLU。
整个模型通常为 28 层、hidden size 4096、head 数 16。
三、ChatGLM-2 与 ChatGLM-3 简要
核心继承:ChatGLM-2/3 在架构上沿用 GLM 解码思想,仅对位置编码、注意力机制、Norm、激活及推理优化。
- 位置编码:弃二维编码,启用 RoPE;
- 注意力:全因果(Decoder-only),不再区分 Part A/B;
- 推理优化:Multi-Query Attention + INT4 量化;
- 微调与对齐:人类偏好对齐(RLHF);
- ChatGLM-3:与 2 架构一致,词表与细节迭代。