搭建深度学习docker容器(5)- 在Docker容器中运行ChatGLM-6B

前言

在往期的搭建深度学习的博客中,我们利用Docker搭建了NVIDIA+PyTorch深度学习容器,现在将利用搭建好的深度学习容器中运行以目前比较火热的ChatGLM-6B清华开源的自然语言AI模型。

chatgpt

搭建步骤

第一步:准备Docker容器&AI模型文件

  • 修改Docker Compose文件,添加volumes路径
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: "3.9"
services:
nvidia:
build: . # 告诉Docker Compose在当前目录中查找Dockerfile并构建镜像
runtime: nvidia # 启用nvidia-container-runtime作为Docker容器的参数,从而实现对GPU的支持
environment:
- NVIDIA_VISIBLE_DEVICES=all # 设置所有可用的GPU设备
ports:
- "22:22" # port for ssh
- "80:80" # port for Web
- "8000:8000" # port for API
tty: true # 创建一个伪终端以保持容器运行状态
# 添加一个和宿主机连接的路径
volumes:
- ./:/data
  • 下载对应的AI模块文件

Hugging Face Hub下载所需要的模型,由于我使用的显卡只有8G显存,所以直接下载了INT4量化后的模型。

AI模型下载地址:

这里推荐使用Git工具进行拖拽对应的仓库,在拖拽前记得给Git工具安装上Git LFS

仓库存储的地方就放在我当前创建Docker Compose文件目录下,这样刚好可以利用volumes将其映射进容器中。

1
2
3
4
5
6
7
# Make sure you have git-lfs installed (https://git-lfs.com)
git lfs install
git clone https://huggingface.co/THUDM/chatglm-6b-int4

# if you want to clone without large files – just their pointers
# prepend your git clone with the following env var:
GIT_LFS_SKIP_SMUDGE=1

第二步:准备ChatGLM-6B并运行

  • 拉取官方ChatGLM-6B项目仓库文件
1
git clone https://github.com/THUDM/ChatGLM-6B.git

仓库存储的地方依旧是当前创建Docker Compose文件目录。如果大家不希望存放在该目录下可以自行修改一下Docker Compose中的volumes映射路径。

  • 拉起该深度学习Docker容器
1
docker-compose up --build -d
  • 进入容器中
1
2
3
4
5
# 查看刚刚启动的深度学习容器的ID号
docker ps

# 进入容器内部
docker exec -it xxxxxxx /bin/bash # xxxxxxx 是PS后容器的CONTAINER ID号
  • 安装项目依赖
1
2
3
4
5
6
7
# cd到刚刚拖拽下来的项目仓库中

cd /data/ChatGLM-6B

# 安装项目依赖文件

pip install -r requirements.txt
  • 修改本地AI模型路径

在这里我们使用官方提供的命令行Demo程序来做测试。

1
2
3
4
5
6
7
# 打开cli_demo.py文件对其进行修改
VI cli_demo.py

# 修改第6、第7行的代码,将原有的模型名称修改为本地AI模型路径
# 修改结果如下,其中/data/chatglm-6b-int4为你本地AI模型的路径地址
tokenizer = AutoTokenizer.from_pretrained("/data/chatglm-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("/data/chatglm-6b-int4", trust_remote_code=True).half().cuda()
  • 运行仓库中命令行Demo程序:
1
python cli_demo.py

不出意外,在命令执行完之后你将可以体验到清华开源的ChatGLM-6B自然语言模型了。

如果对您有帮助,请小编喝一杯咖啡吧!