【GLM-4-9B】部署教程
一、项目介绍
GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本。 在语义、数学、推理、代码和知识等多方面的数据集测评中, GLM-4-9B 及其人类偏好对齐的版本 GLM-4-9B-Chat 均表现出超越 Llama-3-8B 的卓越性能。除了能进行多轮对话,GLM-4-9B-Chat 还具备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等高级功能。本代模型增加了多语言支持,支持包括日语,韩语,德语在内的 26 种语言。我们还推出了支持 1M 上下文长度(约 200 万中文字符)的 GLM-4-9B-Chat-1M 模型和基于 GLM-4-9B 的多模态模型 GLM-4V-9B。GLM-4V-9B 具备 1120 * 1120 高分辨率下的中英双语多轮对话能力,在中英文综合能力、感知推理、文字识别、图表理解等多方面多模态评测中,GLM-4V-9B 表现出超越 GPT-4-turbo-2024-04-09、Gemini 1.0 Pro、Qwen-VL-Max 和 Claude 3 Opus 的卓越性能
完整项目介绍
- basic_demo: 在这里包含了
使用 transformers 和 vLLM 后端的交互代码
OpenAI API 后端交互代码
Batch 推理代码 - composite_demo: 在这里包含了
GLM-4-9B-Chat 以及 GLM-4V-9B 开源模型的完整功能演示代码,包含了 All Tools 能力、长文档解读和多模态能力的展示。
fintune_demo: 在这里包含了
PEFT (LORA, P-Tuning) 微调代码
SFT 微调代码
配置要求
basic_demo:大于 8GB 显存的,支持 CUDA 或者 ROCM 并且支持 BF16
推理的 GPU 设备。(FP16
精度无法训练,推理有小概率出现问题)
composite_demo:推荐使用32G显存,使用16G显存时存在显存不足情况
finetune_demo:推荐大于8G显存GPU
二、部署介绍
1、部署项目
以部署composite_demo为例,选择一个显存32G的GPU
这里选择V100GPU
选择基础镜像Ubuntu24.04
创建成功后等待开机,进入Jupyter界面
首先进入root目录下(cd ~
),依次按照以下命令创建虚拟环境
conda create -n glm-4-demo python=3.12
conda activate glm-4-demo
激活虚拟环境后克隆GLM-4项目
git clone https://github.com/THUDM/GLM-4.git
克隆成功后移动至basic_demo目录下安装基础依赖cd GLM-4/basic_demo
安装基础依赖命令
pip install -r requirements.txt
随后移动至composite_demo目录下再次安装所需依赖
cd ..
cd composite_demo
pip install -r requirements.txt
请注意,本项目需要 Python 3.10 或更高版本。 此外,使用 Code Interpreter 还需要安装 Jupyter 内核:
ipython kernel install --name glm-4-demo --user
可以修改 ~/.local/share/jupyter/kernels/glm-4-demo/kernel.json
来改变 Jupyter 内核的配置,包括内核的启动参数等。例如,若您希望在使用 All Tools 的 Python 代码执行能力时使用 Matplotlib 画图,可以在 argv 数组中添加 "--matplotlib=inline"
这里如果需要使用浏览器和搜索功能,还需要启动浏览器后端。首先,根据 Node.js 官网的指示安装 Node.js,然后安装包管理器 PNPM 之后安装浏览器服务的依赖:
cd browser
npm install -g pnpm
pnpm install
2、运行项目
这里我们提前先将模型安装至本地避免运行时下载模型
首先在GLM-4目录下创建models文件夹存放模型
随后进入models创建两个py文件用于下载glm-4-9b及glm-4-9b-chat模型,文件名任意即可
文件一内容(举例命名为downGLM-4-9b.py)
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/glm-4-9b',cache_dir='/root/GLM-4/Models')
文件二内容(举例命名为glm-4-9b-chat-down.py)
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/glm-4-9b-chat',cache_dir='/root/GLM-4/Models')
运行前需安装modelscope库(pip install modelscope
)在当前目录下依次运行两个文件即可
python downGLM-4-9b.py
python glm-4-9b-chat-down.py
安装完成后可以看到Models文件夹中存在ZhipuAI文件夹并存在两个模型名的文件夹
在/GLM-4/composite_demo/src
目录中的main.py文件中修改模型路径重新指定下载好的路径,这里需要使用绝对路径,在文件目录下使用pwd命令即可查看到,随后复制粘贴即可
1、假如需要使用浏览器功能可以修改browser/src/config.ts
中的BING_SEARCH_API_KEY
配置浏览器服务需要使用的 Bing 搜索 API Key:
export default {
BROWSER_TIMEOUT: 10000,
BING_SEARCH_API_URL: 'https://api.bing.microsoft.com/v7.0',
BING_SEARCH_API_KEY: '<PUT_YOUR_BING_SEARCH_KEY_HERE>',
HOST: 'localhost',
PORT: 3000,
};
如果注册的是Bing Customer Search的API,您可以修改您的配置文件为如下,并且填写您的Custom Configuration ID:
export default {
LOG_LEVEL: 'debug',
BROWSER_TIMEOUT: 10000,
BING_SEARCH_API_URL: 'https://api.bing.microsoft.com/v7.0/custom/',
BING_SEARCH_API_KEY: 'YOUR_BING_SEARCH_API_KEY',
CUSTOM_CONFIG_ID : 'YOUR_CUSTOM_CONFIG_ID', //将您的Custom Configuration ID放在此处
HOST: 'localhost',
PORT: 3000,
};
bing搜索API获取地址:https://azure.microsoft.com/zh-cn/free/
密钥获取可参考如下链接
https://blog.csdn.net/ph12345687/article/details/139102590
获取密钥后只需复制粘贴至
BING_SEARCH_API_KEY: '<PUT_YOUR_BING_SEARCH_KEY_HERE>'处即可
2、文生图功能需要调用 CogView API。修改src/tools/config.py
,提供文生图功能需要使用的 智谱 AI 开放平台 API Key:
BROWSER_SERVER_URL = 'http://localhost:3000'
IPYKERNEL = 'glm-4-demo'
ZHIPU_AI_KEY = '<PUT_YOUR_ZHIPU_AI_KEY_HERE>'
COGVIEW_MODEL = 'cogview-3'
登入智谱AI平台后并注册,平台会自动赠送资源包
点击查看资源包后再点击进入api key,直接复制api key即可
3、启动浏览器后端,在单独的 shell 中:
cd browser
pnpm start
启动浏览器后端后,保留此窗口重新再次创建一个窗口运行demo
streamlit run src/main.py
之后即可从命令行中看到 demo 的地址。初次访问需要下载并加载模型,可能需要花费一定时间。
这里我们需要使用SSH隧道功能来使本地电脑能访问
3、Demo使用
成功建立ssh隧道连接后,在本地电脑浏览器中输入localhost:8888即可访问web
这里我们选择all tools,等待模型加载完成
加载完成后在对话框输入需求即可