1. ChatGLM2-6B模型架构深度解析
1.1 模型架构演进背景
GLM(General Language Model)作为清华智谱AI研发的双语大模型,其架构设计经历了从一代到二代的演进过程。一代GLM基于2021年提出的自回归空白填充(Autoregressive Blank Infilling)范式,通过融合自编码和自回归两种预训练方式的优势,在SuperGLUE基准上超越了BERT和RoBERTa的表现。
在二代ChatGLM2-6B中,架构演进为Prefix Decoder-only结构。这种结构本质上是在GPT系列采用的Causal Decoder-only架构基础上,引入了前缀注意力(Prefix Attention)机制。具体表现为:
- 前部文本处理采用双向注意力,增强上下文理解能力
- 后部生成部分保持单向注意力,确保自回归生成的连贯性
- 通过28个GLMBlock堆叠实现深层特征提取
1.2 核心组件拆解
1.2.1 嵌入层设计
模型采用65024大小的词表,对应4096维的嵌入空间。嵌入层参数以二进制格式存储,包含以下关键特性:
- 支持多轮对话的prompt自动拼接(如"[Round X]"格式)
- 词片(WordPiece)分词策略处理中英文混合文本
- 特殊token(如结束符)的预留嵌入空间
技术细节:
python复制# 伪代码示例:嵌入过程
input_text = "[Round 1]\n问:你好\n答:"
token_ids = tokenizer.encode(input_text) # 输出shape: [seq_len]
embeddings = embedding_layer(token_ids) # 输出shape: [seq_len, 4096]
1.2.2 GLMBlock实现
每个GLMBlock包含以下核心模块:
- RMSNorm层:替代传统LayerNorm,计算量减少约20%
- 注意力模块:
- 32头注意力机制(head_dim=128)
- 关键改进:Key-Value缓存优化(KV Cache)
- MLP模块:
- 中间层维度扩展至27392(原始维度6.68倍)
