佐罗兔(2)基于docker安装ChatGLM3

佐罗兔——rabbitzorro


首先我找了一个B站的教学视频,但是他不是基于Docker的
https://www.bilibili.com/video/BV1gN4y1r7RX
作者一看就是专业讲课的,说三句水两句,不过教程的结构还是可以借鉴的。

我的PC配置: N卡RTX3060 12GB版、i5、32G内存


  1. 傻瓜安装了docker Desktop


  2. 对docker进行一些前置配置

    # 查看docker版本,我的版本是23.0.5
    docker -v
    # 查看docker目前的源,其中的Registry Mirrors就是镜像源
    docker info
    # 添加docker国内镜像源,docker desktop源的配置比较简单
    

    设置截图


  3. 在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
    看结果,很幸运,应该是好使的。


  4. 下载一个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
    然后我们先把容器停掉,正式运行需要增加一些参数。


  5. 启动容器

    # 启动容器(/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

  6. 部署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
    
    
  7. 运行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
    
  8. 打包

    将容器转为镜像

    #打开容器列表
    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了。

posted @   浦金宏  阅读(908)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示