chatglm-6b搭建
# 环境配置
# 环境要求
win10
pyenv
# python环境
参考pyenv安装。
# 安装CUDA相关
参考英伟达驱动安装
# 安装pytorch
参考pytorch安装
# 安装git-lfs
从 Hugging Face Hub 下载模型需要先安装Git LFS (opens new window),然后运行
# 模型推理
使用chatglm的过程属于推理过程。
# 配置
本次运行环境为win10(正常windows非WSL子系统)
# 前置操作
防止vpn导致无法访问
# demo.queue().launch(share=False, inbrowser=True)改为
os.environ["no_proxy"] = "localhost,127.0.0.1,::1"
demo.queue().launch(server_name="0.0.0.0", server_port=7890,share=False, inbrowser=True)
2
3
4
# chatGLM-6B
通过chatGLM来在消费级显卡上运行大模型,项目已经准备好demo脚本可直接启动。
可先查看量化等级对硬件配置要求chatGLM-6B (opens new window)
git clone https://github.com/THUDM/ChatGLM-6B.git
# 模型
chatGLM-6B启动demo时会自动下载模型,但从transformers下载很慢,可以改为手动从国内镜像源下载,本地加载模型的方式实现。
因为国内镜像源也是通过git方式下载,所以对于模型参数来说下载可能还达不到满速,此时可以把模型分为模型实现和参数,模型实现可通过git下载(需安装git-lfs),模型参数可以通过清华网站下载通过多线程可以到40Mbps
下载模型实现
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm-6b
下载模型参数
点击下载 (opens new window) ,参数需要放在上面git clone模型实现的目录下。
int4量化
以上是标准模型,如果电脑配置低可使用量化后的模型
模型实现 :
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm-6b-int4/tree/main
int4模型参数 (opens new window) ,全部放到模型实现目录下
# 运行
# 普通运行
找到chatglm-6b下的python web_demo.py
,把模型路径改成实际路径,windows下对\转义
chatglm6b='D:\tom\\ai\huggingface.co\\chatglm-6b'
tokenizer = AutoTokenizer.from_pretrained(chatglm6b, trust_remote_code=True)
model = AutoModel.from_pretrained(chatglm6b, trust_remote_code=True).half().cuda()
2
3
# int4量化
修改web_demo.py,增加quantize(4)参数,如果使用int8量化改为quantize(8),前提是需要下载int量化的模型参考【配置】
chatglm6b='D:\yxk\\ai\huggingface.co\\chatglm-6b-int4'
model = AutoModel.from_pretrained(chatglm6b, trust_remote_code=True).quantize(4).half().cuda()
2
# 使用cpu运行
如果没有显卡可以通过cpu运行
改为:
model = AutoModel.from_pretrained(chatglm6b, trust_remote_code=True).float()
# 命令行运行
需要安装readline,python3安装命令
pip install pyreadline3 or python -m pip install pyreadline
# 报错
AssertionError: Torch not compiled with CUDA enabled
原因
驱动为正确安装或不支持CUDA或使用运行方式不对
解法
如果使用cpu运行应该配置
model = AutoModel.from_pretrained(chatglm6b, trust_remote_code=True).float()
如果使用gpu运行应该正确安装CUDA
参考
Something went wrong Expecting value: line 1 column 1
web_demo.py起来输入文字发送报错
原因
开了vpn或代理导致,关闭即可
参考
RuntimeError: Internal: D:\a\sentencepiece\sentencepiece\src\sentencepiece_processor.cc(1102) [model_proto->ParseFromArray(serialized.data(), serialized.size())]
原因
通常是AutoTokenizer.from_pretrained和AutoModel.from_pretrained加载的模型不一致
OSError: You seem to have cloned a repository without having git-lfs installed. Please install git-lfs and run `git lfs install` followed by `git lfs pull` in the folder you cloned
原因
安装git-lfs
# 参考
- [1] chatGLM (opens new window)
- [2] chatGLM-6B-github (opens new window)
- [3] int4量化参数-配合模型实现 (opens new window)
- [4] int4量化-模型实现 (opens new window)
- [5] win10安装CUDA cuDNN安装 (opens new window)
- [6] 参考部署1 (opens new window)
- [7] 参考部署2 (opens new window)
- [8] 友链k8sGPT (opens new window)
- [9] pytorch安装 (opens new window)