1. ChatGLM2-6B模型概述
ChatGLM2-6B是智谱AI基于GLM架构开发的开源对话大模型,参数规模62亿,可在消费级显卡部署。作为典型的Prefix Decoder-only架构模型,它融合了单向注意力和双向注意力的优势——前部采用双向注意力增强语义理解,后部采用单向注意力适配文本生成任务。
模型的核心创新在于自回归空白填充预训练范式:
- 随机mask输入文本中的连续token spans
- 以自回归方式预测被mask的内容
- 采用二维位置编码(span位置+span内位置)
这种设计使其在SuperGLUE基准测试中,以相同参数量超越BERT和T5模型。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 推理流程深度解析
2.1 整体推理架构
模型推理采用双层循环结构:
- 外层while循环:逐token生成,直到遇到终止符
- 内层for循环:28层GLMBlock顺序处理
python复制while True:
next_token = generate_token()
if next_token == EOS: break
output.append(next_token)
def generate_token():
hidden_states = input_embedding
for i in range(28):
hidden_states = GLMBlock[i](hidden_states)
return decode(hidden_states)
2.2 关键步骤拆解
输入处理阶段
- Prompt格式化:自动添加对话标记
- 原始输入:"你好" → "[Round 1] 问:你好 答:"
- WordPiece分词:65024词表处理
- 输出:17维整数序列(含特殊token)
实测发现,当使用kv_cache时,首轮输入序列长度>1,后续迭代序列长度恒为1
嵌入层处理
- 嵌入矩阵:65024×4096
- 输出维度:[seq_len, batch, 4096]
- 特性:支持多句并行处理(自动padding对齐)
GLMBlock运算细节
每层Block包含核心
