一、摘要
最近在研究GLM4模型,发现自带的All Tools比较感兴趣,它具有完整工具调用能力的对话模式,原生支持网页浏览、代码执行、图表生成、图片生成,并支持自定义工具。它能够满足大模型私有化部署的个性定制,因此记录在Linux环境下搭建GLM4的All Tools的网页版。
二、硬件环境
服务器环境:Linux
操作系统:ubuntu 22.04
架构:x86_64
实例规格:GPU A10 24G显存
三、GLM4模型和源代码
1. 拉取源代码
源代码Github地址:https://github.com/THUDM/GLM-4/tree/main
git clone https://github.com/THUDM/GLM-4.git
2. 下载GLM4模型
说明:如果硬件环境配置充足,可以选择下载GLM4的其他更强版。
抱脸:GLM4模型地址:https://huggingface.co/THUDM/glm-4-9b/tree/main
(1)手动下载
如果不能直接通过服务器上下载,可以通过windows上挂载代理软件访问抱脸地址:https://huggingface.co/THUDM/glm-4-9b/tree/main 把Files and versions 下文件全部下载,模型下载时间比较长,耐心等待。下载完成上传服务器,再在模型源码目录新建一个目录用于存放模型。
(2)命令下载
魔塔社区:GLM4模型地址:glm-4-9b · 模型库
通过git下载 ,耐心等待下载。
git lfs installgit clone https://www.modelscope.cn/ZhipuAI/glm-4-9b.git
四、部署GLM4适配All Tools
1. 安装Anaconda软件
注意:Anaconda无版本要求,主要和Linux的架构保持一致。
可参考博客:Linux环境安装Anaconda(详细图文)_linux安装anaconda-CSDN博客
2. 创建GLM4需要的python环境并激活
# 切换到下载好的GLM4的源码目录
cd /data/GLM-4/composite_demo
# 创建独立python环境
conda create -n glm-4-demo python=3.12
# 激活环境
conda activate glm-4-demo
# 下载依赖
pip install -r requirements.txt
3. 安装Jupyter 内核(可选)
使用 Code Interpreter (代码解释器)还需要安装 Jupyter 内核,建议安装,可以实现代码画图。
ipython kernel install --name glm-4-demo --user
4. 安装Node.js和PNPM(可选)
若要使用浏览器和搜索功能,还需要启动浏览器后端。
(1)根据 Node.js 官网的指示安装 Node.js
# installs fnm (Fast Node Manager)
curl -fsSL https://fnm.vercel.app/install | bash# activate fnm
source ~/.bashrc# download and install Node.js
fnm use --install-if-missing 22# verifies the right Node.js version is in the environment
node -v # should print `v22.12.0`# verifies the right npm version is in the environment
npm -v # should print `10.9.0`
如果报错:访问地址 fnm.vercel.app 超时。
解决方案:在windows上访问:https://fnm.vercel.app/install 手动下载fnm的安装脚本并上传到服务器。
(2)安装包管理器 PNPM 之后安装浏览器服务的依赖:
cd browser
npm install -g pnpm
pnpm install
在执行命令:pnpm install 时报错连接超时。
解决方案:设置npm为国内能够访问的镜像,再重新运行命令即可解决。
# 设置为淘宝的镜像npm config set registry http://registry.npmmirror.com
```bash
淘宝镜像:http://registry.npmmirror.com
阿里云镜像:https://npm.aliyun.com
腾讯云镜像:https://mirrors.cloud.tencent.com/npm/
华为镜像:https://mirrors.huaweicloud.com/repository/npm/
设置完成之后,重新执行npm即可
# 查看npm镜像地址
npm config get registry
五、运行
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 引擎,需要绑定信用卡,并且有次数限制。
2. 启动浏览器后端,在单独的 shell 中:(可选)
说明:如果你选择使用了浏览器的搜索,则这一步是必须的。
cd browser
pnpm start
3. 运行以下命令在本地加载模型并启动 demo
注意:先修改加载的模型路径。我这里重新下载了一个模型。
streamlit run src/main.py
启动成功,注意要在公网访问记得开通端口。
4. 成果展示
选择All Tools调用模型自带的天气查询工具。
六、遇到的问题
报错1:ModuleNotFoundError: No module named 'torch'
解决方法:conda install pytorch torchvision torchaudio -c pytorch
报错2:ModuleNotFoundError: No module named 'transformers'
解决方法:pip install transformers
报错3:ImportError: This modeling file requires the following packages that were not found in your environment: tiktoken. Run `pip install tiktoken`
解决方法:pip install tiktoken
报错4:ImportError: Using `low_cpu_mem_usage=True` or a `device_map` requires Accelerate: `pip install 'accelerate>=0.26.0'`
解决方法:pip install 'accelerate>=0.26.0'