ChatGLM2-6B-INT4 本地部署

记录一下供下次玩耍参考,当前环境:

Arch Linux:6.6.4-arch1-1
Python:3.11.6
Nvidia:545.29.06
CUDA:12.3
GPU:NVIDIA GeForce RTX 3060 Ti
ChatGLM: chatglm2-6b-int4


  1. Arch Linux 安装 NVIDIA 系包

Wiki 说现在有个新包 nvidia-open,我试过直接用原来的 nvidia 系统会莫名其妙卡,换成新包一切正常

1
sudo pacman -S nvidia-open

如果源码方式运行,上面的就够了,容器运行需要安装多一个,AUR 或者直接 archlinuxcn

1
sudo pacman -S nvidia-container-toolkit

由于显卡满足不了 chatglm2-6b,会爆显存 orch.cuda.OutOfMemoryError: CUDA out of memory.,因此只能用 chatglm2-6b-int4 的版本,这里用源码的方式,方便改动后直接运行

如果是首次安装 nvidia-open 包,需重启系统生效

  1. 克隆官方仓库:gh repo clone THUDM/ChatGLM2-6B,这个 gh 需要额外安装 github-cli,用 git clone 也可以

  2. 进去 ChatGLM2-6B 文件夹,创建一个虚拟环境 python -m venv .venv,执行 source .venv/bin/activate 激活(取消激活 deactivate),又或者利用 oh-my-zsh 的插件功能 virtualenvwrapper,进入项目目录后自动激活(需要安装 python-virtualenvwrapper 包)

  3. 下载依赖 pip install -r requirements.txt

  4. 修改代码 web_demo.pyweb_demo2.py、或 cli_demo.py,将 THUDM/chatglm2-6b 改为 THUDM/chatglm2-6b-int4,接着执行即可

  • python web_demo.py
  • streamlit run web_demo2.py
  • python cli_demo.py

模型会自动下载模型到 ~/.cache/huggingface/hub (或者改为本地已经下载好的路径,可以到 清华大学云盘 下载,这个我没试过,web_demo.py 我自己测试网页会报错,其他两个正常)

如果遇到报错 RuntimeError: Library cudart is not initialized,则需要安装 cuda

1
sudo pacman -S cuda

相同环境用起来,速度 chatglm2-6b-int4chatglm-6b-int4 快一点,其他的没仔细测试