【Linux】ChatGLM-4-9B模型之All Tools

server/2024/12/28 22:24:42/

一、摘要

最近在研究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'
 


http://www.ppmy.cn/server/154036.html

相关文章

ADC(二):外部触发

有关ADC的基础知识请参考标准库入门教程 ADC&#xff08;二&#xff09;&#xff1a;外部触发 1、TIM1的CC1事件触发ADC1DMA重装载2、TIM3的TRGO事件(的更新事件)触发ADC1DMA重装载3、TIM3的TRGO事件(的捕获事件)触发ADC1DMA重装载4、优化TIM3的TRGO事件(的捕获事件)触发ADC1D…

Effective C++ 条款 23:宁以 non-member、non-friend 替换 member 函数

文章目录 条款 23&#xff1a;宁以 non-member、non-friend 替换 member 函数核心思想示例代码注意事项 条款 23&#xff1a;宁以 non-member、non-friend 替换 member 函数 核心思想 更高的封装性 non-member 函数不需要访问类的 private 或 protected 成员&#xff0c;减少对…

vscode添加全局宏定义

利用vscode编辑代码时&#xff0c;设置了禁用非活动区域着色后&#xff0c;在一些编译脚本中配置的宏又识别不了 遇到#ifdef包住的代码就会变暗色&#xff0c;想查看代码不是很方便。如下图&#xff1a; 一 解决&#xff1a; 在vscode中添加全局宏定义。 二 步骤&#xff1a…

Java项目中Oracle数据库开发过程中相关内容

目录 1、连接数据库 2、创建用户和授权 3、统计的时候——把列变成行 4、Oracle12c数据库中&#xff0c;根据时间倒序返回最新一条数据 5、其他SQL相关记录 总结一些和Oracle相关的内容 1、连接数据库 使用oracle12c数据库自带的SQL Plus 链接数据库 打开SQL Plus工具&#xf…

头歌-边缘检测

第1关&#xff1a;边缘检测的基本原理与图像增强 任务描述 本关任务&#xff1a;理解边缘检测的基本概念&#xff0c;掌握 Roberts 算子的原理与操作。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.边缘检测的概念&#xff1b; 2. Roberts 算子的原理与操…

Yocto 项目 - 共享状态缓存 (Shared State Cache) 机制

引言 在嵌入式开发中&#xff0c;构建效率直接影响项目的开发进度和质量。Yocto 项目通过其核心工具 BitBake 提供了灵活而强大的构建能力。然而&#xff0c;OpenEmbedded 构建系统的传统设计是从头开始构建所有内容&#xff08;Build from Scratch&#xff09;&#xff0c;这…

Linux 安装rpm

在Linux银河麒麟系统上安装RPM软件包&#xff0c;可以通过系统自带的RPM包管理工具来完成。以下是一个详细的安装步骤&#xff1a; 一、准备工作 下载RPM软件包&#xff1a; 从可靠的软件源或官方网站下载需要安装的RPM软件包。 打开终端&#xff1a; 需要通过终端&#x…

ChatGPT详解

ChatGPT是一款由OpenAI研发和维护的先进的自然语言处理模型&#xff08;NLP&#xff09;&#xff0c;全名为Chat Generative Pre-trained Transformer&#xff0c;于2022年11月30日发布。以下是对ChatGPT的详细介绍&#xff1a; ### 一、技术架构与原理 1. **技术架构**&…