佐罗兔(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![img]() 
 如果电脑中没按过CUDA,可以在这个网址下载安装包3GB左右,注意自己的显卡和cuda版本要对应。
 https://developer.nvidia.com/cuda-downloads
 然后我之前玩stable diffusion安装过cuda。执行下边这命令可以查看安装的cuda版本。nvcc --version![img]() 然后检查现在docker能否调用GPU,nvidia提供了一个示例镜像专门用于检查。 docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark![img]() 
 看结果,很幸运,应该是好使的。
 
- 
下载一个Nvidia官方docker镜像,免去在容器中手动安装cuda、cudnn的烦恼,访问Nvidia官方容器网站NGC。 
 容器地址:https://catalog.ngc.nvidia.com/containers
 在网站中找到自带pytorch环境的。
 ![img]() 
 网站容器首页提示,想用这个容器,还需要安装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运行。 
 ![img]() 
 执行nvidia-smi看看GPU识别没?果然直接用就行。
 ![img]() 
 然后我们先把容器停掉,正式运行需要增加一些参数。
 
- 
启动容器 # 启动容器(/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![img]() 
- 
部署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![img]() 运行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了。
 
                    
                
 









 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号