ChatGLM3 是由智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。它是 ChatGLM 系列的第三版,继承了前两代模型对话流畅、部署门槛低等众多优秀特性,并在此基础上进行了全面的性能提升和创新性功能扩展。
主要特性
- 强大的语义能力:ChatGLM3 在中文问答方面表现出色,能够理解复杂的语境和语义,提供准确的信息和回答。
- 多模态大模型:ChatGLM3 支持多模态输入,包括文本、图像、声音等,能够处理和生成多模态数据。
- 工具调用和代码执行:ChatGLM3 支持工具调用和代码执行,能够根据用户需求生成代码并执行,完成复杂的数据分析和任务。
- 网络搜索增强:ChatGLM3 集成了网络搜索能力,能够自动根据问题在互联网上查找相关资料,并在回答时提供参考链接。
- 自研的AgentTuning技术:ChatGLM3 引入了自研的AgentTuning技术,提升了智能规划和执行能力。
应用场景
- 自然语言处理:ChatGLM3 可以用于文本生成、文本分类、情感分析等自然语言处理任务。
- 智能客服和助手:ChatGLM3 可以作为智能客服或个人助手,提供24/7的在线咨询服务。
- 内容创作和编辑:ChatGLM3 可以辅助内容创作者进行文章撰写、编辑和校对。
- 教育和培训:ChatGLM3 可以用于教育场景,提供个性化的学习辅导和知识问答。
技术实现
- 预训练方法:ChatGLM3 采用大规模的中文语料库进行预训练,通过无监督学习和有监督学习相结合的方式,提高模型的语义理解和生成能力。
- 模型架构:ChatGLM3 基于Transformer架构,并进行了进一步的优化和改进,以提高模型的性能和效率。
硬件环境
- 最低要求: 为了能够流畅运行 Int4 版本的 ChatGLM3-6B,我们在这里给出了最低的配置要求: 内存:>= 8GB 显存: >= 5GB(1060 6GB,2060 6GB)
- 为了能够流畅运行 FP16 版本的,ChatGLM3-6B,我们在这里给出了最低的配置要求: 内存:>= 16GB 显存: >= 13GB(4080 16GB)
系统要求
- 操作系统:Windows、Linux 或 macOS。本教程使用Windows进行安装。
- python 版本推荐3.10.12
- transformers 库版本推荐为 4.30.2
- torch 推荐使用 2.0 及以上的版本,以获得最佳的推理性能
- CUDA:如果你打算在 GPU 上运行模型,需要安装 CUDA(仅限 Windows 和 Linux)
步骤 1:创建虚拟环境
打开终端,安装并创建一个新的 Anaconda 环境。这将有助于隔离项目依赖项。
建议到清华大学开源软件镜像站 下载2022年左右的版本,最好不要下载最新版https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2022.10-Windows-x86_64.exe下载安装过程可以参考此文:https://blog.csdn.net/Q_fairy/article/details/129158178安装 Anaconda 完毕后。1.1 为了加快conda安装速度,需要替换为国内源,修改用户目录下的 .condarc 文件:channels: - defaultsshow_channel_urls: truedefault_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/rcustom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud1.2 为了加快pip安装速度,需要替换为国内源,执行如下命令pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/修改完毕后,按下win键+r,输入cmd打开命令行窗口conda create -n py3.10 python=3.10activate py3.10注意:不能在powershell中执行activate py3.10 否则会报错。
步骤 2:安装依赖项
安装NVIDIA驱动以及CUDA Toolkit 11.8,地址如下:https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Linux。选择对应的安装包进行下载并安装
安装PyTorch,到此地址https://pytorch.org/get-started/locally/并根据本机硬件选择的版本,如下图所示:
安装 torch 和其他依赖项。使用 conda 安装。
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
确保安装了与你的 CUDA 版本兼容的 torch 版本。按如下步骤验证是否已经安装正确,如果是以下结果,则安装正确,否则根据提示进行对应的修复
(py3.10) D:\Dev\ChatGLM3>python
Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)
2.1.2
>>> torch.cuda.is_available()
True
步骤 3:下载 ChatGLM3-6B 模型
从 GitHub 下载 ChatGLM3-6B 模型仓库。
git clone https://github.com/THUDM/ChatGLM3cd ChatGLM3
步骤 4:安装模型依赖项
在项目目录中,安装模型所需的依赖项。
pip install -r requirements.txt
步骤 5:下载模型文件
新建目录THUDM,并使用 Modelscope下载模型文件到此文件夹中。
mkdir THUDM
cd THUDM
git lfs install
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
步骤 6:运行模型
现在你可以运行模型了。ChatGLM3-6B 提供了多种运行方式,包括命令行界面、Streamlit 界面和 REST API。
命令行界面
运行以下 Python 脚本来启动命令行界面:
python basic_demo\clidemo.py
Streamlit 界面
要运行 Streamlit 界面,你需要安装 Streamlit。
pip install streamlit
然后运行:
streamlit run basic_demo\web_demo_streamlit.py
在浏览器中打开 http://localhost:8501 来访问 Streamlit 界面。
REST API
要运行 REST API,你需要安装 Flask。
pip install flask
然后运行:
python restapi.py
在浏览器中打开 http://localhost:8000/docs 来查看 API 文档。
注意事项
- 确保你的系统满足所有依赖项和 CUDA 要求。
- 如果你遇到问题,可以查看项目的 GitHub 存储库中的 README.md 或 docs 文件夹中的文档。
以上步骤应该可以帮助你在本地成功运行 ChatGLM3-6B 大模型。
模型量化
默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型,使用方法如下:
model = AutoModel.from_pretrained("THUDM/chatglm3-6b",trust_remote_code=True).quantize(4).cuda()
模型量化会带来一定的性能损失,经过测试,ChatGLM3-6B 在 4-bit 量化下仍然能够进行自然流畅的生成。如果一切正常,运行一下命令后可以再http://localhost:8501启动chatGLM3大模型
(py3.10) D:\Dev\ChatGLM3>streamlit run composite_demo\main.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://192.168.1.2:8501
执行成功后,就会出现如下界面: