使用GPU实例基于ChatGLM-6B语言模型搭建AI对话机器人
应用场景
ChatGLM 作为面向中文场景优化的大语言模型,可广泛应用于智能客服、业务问答、知识检索、办公助理等企业级对话场景,帮助组织以较低成本构建高质量的智能交互能力,加速业务流程智能化升级。
方案架构

方案优势
依托华为云ECS GPU实例部署ChatGLM,可获得高性能、可控性强的专属算力环境,支持模型本地化部署、数据安全可控、性能稳定可预期,并能按需扩展资源,帮助企业快速构建自主可控的智能对话能力,实现AI服务的高效落地与持续演进。
资源和成本规划
|
资源 |
资源说明 |
成本说明 |
|---|---|---|
|
安全组 |
入方向规则:
|
免费 |
|
弹性云服务器 |
|
ECS涉及以下几项费用:
具体的计费方式及标准请参考计费模式概述。 |
|
模型名称 |
最小所需规格 |
GPU卡 |
|---|---|---|
|
ChatGLM-6B |
pi2.2xlarge.4 |
T4(16G)*1 |
|
p2s.4xlarge.8 |
V100(32G)*1 |
|
|
pi3.6xlarge.4 |
A30(24G)*1 |
请联系华为云技术支持选择最适合您部署的GPU卡资源服务器。
前提条件
- 弹性云服务器所在安全组添加了如表3所示的安全组规则,具体步骤参见为安全组添加安全组规则。
基于ChatGLM-6B语言模型搭建AI对话机器人的操作步骤
Linux实例基于ChatGLM-6B语言模型搭建AI对话机器人的主要操作步骤如下:
实施步骤
- 创建GPU弹性云服务器。
本操作以安装了Ubuntu操作系统的pi2.2xlarge.4实例为例。实例配置请注意如下参数,其他参数说明,请参见自定义购买ECS。
- 实例:pi2.2xlarge.4。更多规格推荐,请参见表2。
- 镜像:Ubuntu 22.04 server 64bit with NO Driver(40GiB),勾选“自动安装GPU驱动”,GPU驱动为535.161.08,CUDA为12.2.0。
建议选择Huawei Cloud EulerOS 2.0或Ubuntu 22.04中未安装驱动的公共镜像,自动安装GPU驱动。建议驱动版本:Driver-535.161.08,CUDA-12.2.0。
图2 GPU实例镜像选择和自动安装GPU驱动选择
- 弹性公网IP:选择“现在购买”,方便下载依赖环境下载和调用模型接口进行推理。
- 安全组:入方向放通TCP: 8000端口,用于访问WebUI服务。具体步骤参见为安全组添加安全组规则。
- 存储与备份:为保证服务稳定运行与数据安全,建议采用系统盘与数据盘分离部署的架构。
- 系统盘:40GiB,用于安装操作系统、驱动及运行环境。
- 数据盘:100GiB,用于独立存储模型文件、生成图片及相关业务数据等。
- 驱动和CUDA的前置条件检查。
执行以下命令,查看显卡基本信息。
nvidia-smi
如果使用的不是推荐的镜像和驱动版本,请参考手动安装GPU加速型ECS的Tesla驱动方法更新驱动到535版本,CUDA更新到12.2。
- 初始化数据盘,用于存放模型文件及相关资源。
GPU弹性云服务器创建完成后,请参见初始化Linux数据盘进行数据盘初始化。本实践将数据盘挂载至/mnt/model目录,您可以根据业务需要自行定义目录。

- 创建conda虚环境。
- 执行以下命令,下载miniconda安装包。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
- 执行以下命令,并按照回显提示信息进行操作,安装miniconda。
bash Miniconda3-latest-Linux-x86_64.sh
- 执行以下命令,将conda环境变量添加到启动文件中。
echo 'export PATH="$HOME/miniconda3/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
- 执行以下命令,并按照回显提示信息进行操作,创建基于python3.10的虚环境。
conda create -n chatglm python=3.10 conda activate chatglm
- 执行以下命令,下载miniconda安装包。
- 下载ChatGLM-6B模型。
- 执行以下命令,创建下载模型脚本。
vim download_models.py
按"i"键进入编辑模式,插入以下内容:
from modelscope import snapshot_download model_dir = snapshot_download('ZhipuAI/ChatGLM-6B', cache_dir='/mnt/model', revision='master')模型名称为ZhipuAI/ChatGLM-6B,本实践中模型的存储路径为/mnt/model,可以根据业务需要更换目录。
添加完成后,按“Esc”键退出编辑模式,并输入“:wq”后按“Enter”键,保存并退出文件。
- 执行以下命令,下载ChatGLM模型。
pip install modelscope python download_models.py
等待模型下载完成。回显中显示“Download model 'ZhipuAI/ChatGLM-6B' successfully.”,则表示模型下载完成。
modelscope是国内模型开源社区,国内下载会更快,如果在国外,请使用Hugging Face进行下载。
- 执行以下命令,创建下载模型脚本。
- 下载ChatGLM示例demo。
- 执行以下命令,下载ChatGLM demo文件。
git clone https://github.com/zai-org/ChatGLM-6B.git
- 安装demo所需依赖。
cd ChatGLM-6B/ sed -i '/torch/d' requirements.txt pip install torch==2.1.2+cu121 torchvision==0.16.2+cu121 --index-url https://download.pytorch.org/whl/cu121 pip install -r requirements.txt
等待所需依赖下载完成。
- 执行以下命令,下载ChatGLM demo文件。
- 以CLI模式启动AI对话机器人。
执行以下命令,以cli模式启动AI对话机器人。
sed -i 's|"THUDM/chatglm-6b"|"/mnt/model/ZhipuAI/ChatGLM-6B"|g' cli_demo.py python cli_demo.py

- 以web模式启动AI对话机器人。
- 执行以下命令,以web模式启动AI对话机器人。
pip install streamlit pip install streamlit_chat export STREAMLIT_SERVER_HEADLESS=1 sed -i 's|"THUDM/chatglm-6b"|"/mnt/model/ZhipuAI/ChatGLM-6B"|g' web_demo2.py streamlit run web_demo2.py --server.port 8000

- 使用本地浏览器访问http://<弹性公网IP>:8000打开网页与AI进行聊天对话。

至此模型就部署完毕并验证正常。您可以通过ECS的CLI或者通过访问http://<弹性公网IP>:8000 打开网页来与机器人进行对话。
- 执行以下命令,以web模式启动AI对话机器人。