佐罗兔(2)基于docker安装ChatGLM3
佐罗兔——rabbitzorro
首先我找了一个B站的教学视频,但是他不是基于Docker的
https://www.bilibili.com/video/BV1gN4y1r7RX
作者一看就是专业讲课的,说三句水两句,不过教程的结构还是可以借鉴的。
我的PC配置: N卡RTX3060 12GB版、i5、32G内存
-
傻瓜安装了docker Desktop
-
对docker进行一些前置配置
# 查看docker版本,我的版本是23.0.5 docker -v # 查看docker目前的源,其中的Registry Mirrors就是镜像源 docker info # 添加docker国内镜像源,docker desktop源的配置比较简单
-
在PC上安装CUDA环境
我参考了这篇博客,这里详细介绍了CUDA和相关生态的对应版本
https://blog.csdn.net/qq_35831906/article/details/131273168
首先执行nvidia-smi查看自己的显卡支持的cuda最高版本(执行命令之前更新把显卡驱动)nvidia-smi
如果电脑中没按过CUDA,可以在这个网址下载安装包3GB左右,注意自己的显卡和cuda版本要对应。
https://developer.nvidia.com/cuda-downloads
然后我之前玩stable diffusion安装过cuda。执行下边这命令可以查看安装的cuda版本。nvcc --version
然后检查现在docker能否调用GPU,nvidia提供了一个示例镜像专门用于检查。
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
看结果,很幸运,应该是好使的。
-
下载一个Nvidia官方docker镜像,免去在容器中手动安装cuda、cudnn的烦恼,访问Nvidia官方容器网站NGC。
容器地址:https://catalog.ngc.nvidia.com/containers
在网站中找到自带pytorch环境的。
网站容器首页提示,想用这个容器,还需要安装Nvidia的容器工具包。
去nvidia容器工具包的github页面看看。
https://github.com/NVIDIA/nvidia-container-toolkit
然后找到了安装向导:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
发现貌似这个工具包不支持windows,但是更大概率是windows不需要。所以我打算先硬着头皮装这个容器,说不定好使。# 容器介绍里的命令,运行试试,看能不能启动。。。镜像竟然有8GB。 docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:23.05-py3
虽然运行起来了,但是貌似也有点问题,提示共享内存限制可能影响pytorch运行。
执行nvidia-smi看看GPU识别没?果然直接用就行。
然后我们先把容器停掉,正式运行需要增加一些参数。
-
启动容器
# 启动容器(/D/zorro是我glm3的下载目录,你要改成你自己的。64gb是我PC的内存大小,你要改成你自己的。) docker run --gpus all -itd --name glm3 -p 8501:8501 -p 8000:8000 --shm-size=64gb -v /D/zorro:/data nvcr.io/nvidia/pytorch:23.05-py3 # 查看python版本 python --version # 执行smi命令查看GPU识别是否正常 nvidia-smi
-
部署GLM3
因为模型和代码一直在更新,后期也做微调,所以模型和代码放在映射文件夹中,方便后期更新。在宿主机上执行下面命令下载代码和模型,将他们复制到/D/zorro也就是映射目录中
# 下载代码 git clone https://github.com/THUDM/ChatGLM3 cd ChatGLM3 # 下载模型 git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
在容器内执行安装
# 安装项目依赖 cd /data pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple pip3 config set install.trusted-host mirrors.aliyun.com pip3 install -r requirements.txt
-
运行GLM3
运行Gradio版WebUI
export MODEL_PATH=/data/chatglm3-6b python /data/basic_demo/web_demo.py # 提示缺frpc_linux_amd64_v0.2,并且只能上hf下载,算了反正不上,而且有替代的streamlit
运行streamlit版WebUI
export MODEL_PATH=/data/chatglm3-6b streamlit run /data/basic_demo/web_demo2.py # 芜湖,能正常启动
当然我的显存有12GB,勉强跑起来了。8GB的小伙伴看一下官方的量化方案:https://github.com/THUDM/ChatGLM3
运行cli版
export MODEL_PATH=/data/chatglm3-6b python /data/basic_demo/cli_demo.py
运行Api版
export MODEL_PATH=/data/chatglm3-6b python /data/openai_api_demo/openai_api.py
-
打包
将容器转为镜像
#打开容器列表 docker ps #找到目标容器的ID(例如559853df42ad) #将容器转为镜像的命令 #docker commit -a 作者姓名 -m 内容备注 容器ID 镜像名称 : 镜像版本 docker commit -a "pujh" -m "chatglm3-6b" 559853df42ad zorro-glm3:v1.0.1
将镜像导出本地
#docker save -o tar文件名 镜像名称 : 镜像版本 docker save -o zorro-glm3.tar zorro-glm3:v1.0.1
ok了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了