CN模型 ChatGLM3 应用开发:从GLM-130B到CogVLM全景解析
一、本章概览
第17章《国产大模型 ChatGLM3 应用开发》是课程中聚焦国产大模型生态与技术实践的核心章节——从智谱AI与清华大学KEG实验室联合打造的GLM大模型家族出发,全面覆盖GLM-130B、ChatGLM系列、CogVLM多模态、CodeGeeX2代码生成、WebGLM联网检索等模型,并深入模型部署、量化、微调等工程实践。
核心内容速览:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
二、智谱AI GLM大模型家族全景
智谱AI与清华大学KEG实验室(THUDM)联合打造了完整的GLM大模型家族:
GLM 大模型家族
├── GLM-130B ────────── 千亿级开源双语基座模型(ICLR 2023)
├── ChatGLM ─────────── 中英双语千亿对话模型(基于GLM-130B)
├── ChatGLM-6B ──────── 初代开源对话模型(62亿参数,6G显存)
├── ChatGLM2-6B ─────── 第二代开源对话模型(32K上下文,+571% GSM8K)
├── ChatGLM3-6B ─────── 第三代开源对话模型(Agent能力增强)
├── WebGLM ──────────── 联网检索增强问答系统(KDD 2023)
├── VisualGLM-6B ────── 多模态对话模型(78亿参数,图像+文本)
├── CogVLM ──────────── 视觉专家多模态预训练模型(SOTA)
├── CodeGeeX2 ───────── 多语言代码生成模型
├── AgentTuning ──────── LLM通用智能体能力增强
└── AgentBench ───────── LLM智能体综合基准测试
三、GLM-130B:千亿级开源双语大语言模型(ICLR 2023)
3.1 基本概述
|
|
|
|---|---|
| 参数量 | 130B(千亿级) |
| 语言支持 |
|
| 骨架架构 |
|
| 训练目标 |
|
| Layer Norm |
|
| 位置编码 |
|
| FFN |
|
| 发表会议 |
|
3.2 性能表现
英文性能(EN):
|
|
|
|---|---|
| LAMBADA |
|
| MMLU |
|
| BIG-bench-lite |
|
中文性能(CN):
-
在7个零样本CLUE数据集上比ERNIE TITAN 3.0 260B显著提高 -
在5个零样本FewCLUE数据集上有所提高
偏差与毒性:
-
相比GPT-3和OPT,在StereoSet、CrowS-Pairs和RealToxicPrompts上表现出更低的偏差和毒性 -
StereoSet:**+12.7%**(更公平) -
CrowS-Pairs (PLL↓):**-1.4%** -
RealToxicityPrompts (↓):**-3.0%**
3.3 训练与推理特性
|
|
|
|---|---|
| 浮点格式 |
|
| 稳定化技术 |
|
| 量化支持 |
|
| 推理加速 |
|
| 可复现性 |
|
| 跨平台 |
|
3.4 硬件资源需求
|
|
|
|
|
|---|---|---|---|
| 8×A100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4×RTX 3090 |
|
INT4 |
|
|
|
|
|
|
★💡 建议使用A100(40G×8)服务器。所有GLM-130B评估结果(约30个任务)可在大约半天内用单个A100服务器复现。
四、ChatGLM:中英双语千亿对话模型
-
基于千亿基座模型GLM-130B -
注入代码预训练,通过有监督微调实现人类意图对齐 -
具备问答、多轮对话、代码生成功能
对话示例展示:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
应用生态场景:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
五、初代开源聊天模型 ChatGLM-6B
|
|
|
|---|---|
| 参数量 | 62亿(6B) |
| 架构 |
|
| 训练数据 |
|
| 训练技术 |
|
| 本地部署 | INT4量化下最低只需6GB显存
|
| 微调支持 | P-Tuning v2
|
| 开源协议 |
|
| GitHub |
|
六、第二代开源聊天模型 ChatGLM2-6B
6.1 四大升级
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
6.2 性能提升
|
|
|
|---|---|
| MMLU | +23% |
| CEval | +33% |
| GSM8K | +571%
|
| BBH | +60% |
6.3 长上下文优势
在LongBench评测集上,ChatGLM2-6B-32K与ChatGLM3-6B-32K的对比:
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
| ChatGLM3-6B-32K | 50.2 |
|
|
|
|
|
65.0 |
七、ChatGLM3-6B:第三代开源对话模型
7.1 基本介绍
ChatGLM3系列是智谱AI与清华大学KEG实验室联合发布的最新开源双语对话语言模型系列,定位为**"Open Bilingual Chat LLMs"**。
能力增强方向:
-
Agent能力:增强LLM作为智能体的能力(AgentTuning) -
多模态融合:与CogVLM等视觉模型协同 -
代码生成:集成CodeGeeX2能力 -
长上下文:32K上下文处理
7.2 与ChatGLM2-6B-32K的长上下文对比
在LongBench上的表现(详见上表):
★ChatGLM3-6B-32K 在平均分(50.2 vs 41.5)和大多数子任务上全面超越ChatGLM2-6B-32K,尤其在Synthe任务(65.0 vs 47.7)上提升显著。
7.3 模型量化
# 4-bit量化加载(大约需要13GB显存)
model = AutoModel.from_pretrained(
"THUDM/chatglm3-6b",
trust_remote_code=True
).quantize(4).cuda()
★模型量化会带来一定的性能损失,经过测试,ChatGLM3-6B在4-bit量化下仍然能够进行自然流畅的生成。
7.4 CPU部署
# CPU推理(需要约32GB内存,速度较慢)
model = AutoModel.from_pretrained(
"THUDM/chatglm3-6b",
trust_remote_code=True
).float()
7.5 Mac 部署
对于搭载Apple Silicon或AMD GPU的Mac,可以使用MPS后端在GPU上运行:
model = AutoModel.from_pretrained(
"your local path",
trust_remote_code=True
).to('mps')
★⚠️ 加载半精度ChatGLM3-6B模型需要约13GB内存。16GB内存的MacBook Pro在空余内存不足时,会使用硬盘虚拟内存,导致推理速度严重变慢。
八、WebGLM:高效网络增强问答系统(KDD 2023)
8.1 背景
-
旨在利用100亿参数的通用语言模型(GLM)提供高效且具有成本效益的网络增强问答系统 -
通过将网络搜索和检索功能整合到预训练语言模型中,改善实际应用部署
8.2 三大核心组件
网络检索 ──→ LLM增强型检索器 ──→ 引导式生成器 ──→ 人类偏好感知评分器
↑ ↑ ↑
提高相关网页检索能力 生成类似人类回答 评估生成质量
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
九、VisualGLM-6B:多模态对话模型
|
|
|
|---|---|
| 参数量 | 78亿
|
| 语言模型 |
|
| 图像桥接 |
|
| 预训练数据 |
|
| 训练框架 |
|
| 微调方法 |
|
| 部署 |
|
| 接口 |
|
多模态能力示例:
-
根据泰坦尼克号电影场景写诗 -
图片内容理解与描述
十、CogVLM:视觉专家大语言模型
10.1 基本信息
|
|
|
|---|---|
| 作者 |
|
| 论文 |
|
| 代码 |
|
10.2 技术原理
★与流行的浅层对齐方法(将图像特征映射到语言模型输入空间)不同,CogVLM通过在注意力层和FFN层中引入可训练的视觉专家模块(Visual Expert),弥合冻结预训练语言模型与图像编码器之间的差距。
核心创新:
-
实现视觉语言特征的深度融合 -
不牺牲NLP任务的任何性能 -
在注意力层和FFN层加入视觉专家模块
10.3 性能表现
|
|
|
|---|---|
| 10个经典跨模态基准测试 | 最先进(SOTA)
|
|
|
|
|
|
排名第2 |
|
|
超越或匹敌 |
十一、CodeGeeX2:多语言代码生成模型
|
|
|
|---|---|
| 定位 |
|
| 语言 |
|
| 机构 |
|
| GitHub |
|
十二、AgentTuning 与 AgentBench
|
|
|
|---|---|
| AgentTuning | Enabling Generalized Agent Abilities for LLMs
|
| AgentBench | A Comprehensive Benchmark to Evaluate LLMs as Agents
|
★两者均为智谱AI/THUDM开源项目,为LLM的Agent能力提供了训练方法和评估标准。
十三、GitHub 开源项目一览
|
|
|
|
|
|---|---|---|---|
| ChatGLM3 |
|
|
|
| ChatGLM2-6B |
|
|
13.9k |
| CodeGeeX2 |
|
|
|
| CogVLM |
|
|
|
| AgentBench |
|
|
|
| AgentTuning |
|
|
|
📌 本章核心要点总结
|
|
|
|
|---|---|---|
|
|
GLM大模型家族 |
|
|
|
GLM-130B(ICLR 2023) |
|
|
|
ChatGLM-6B |
|
|
|
ChatGLM2-6B四大升级 |
|
|
|
ChatGLM3-6B |
|
|
|
CogVLM视觉专家 |
|
|
|
WebGLM(KDD 2023) |
|
|
|
VisualGLM-6B |
|
|
|
硬件部署方案 |
|
|
|
Agent能力 |
|
★📚 下一章预告:第18章——继续深入大模型应用开发实战,敬请期待!
本课程系列文章持续更新中,欢迎关注!🚀

