Windows本地部署ChatGLM-6B模型并用CPU运行

下载模型代码

git clone https://github.com/THUDM/ChatGLM2-6B

相关代码会下载到ChatGLM2-6B文件夹中

创建虚拟环境

cmd 打开 ChatGLM2-6B文件夹

powershell 复制代码
python -m venv venv  # 创建了一个叫做 venv 的虚拟环境,会出现一个 venv 的文件夹
venv\Scripts\activate.bat # 来激活虚拟环境,如果报错,就先cd到Scripts文件夹,执行activate.bat
pip install -r requirements.txt -i https://pypi.douban.com/simple # 安装所需要的包

下载模型

https://huggingface.co/THUDM/chatglm-6b-int4

从这个网站上下载模型相关的文件

在ChatGLM2-6B文件夹下创建THUDM/chatglm-6b-int4文件夹,将下载的文件放到这个文件夹中

运行

python 复制代码
from transformers import AutoTokenizer, AutoModel

# 绝对路径
tokenizer = AutoTokenizer.from_pretrained("D:\ChatGLM\ChatGLM2-6B\THUDM\chatglm2-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("D:\ChatGLM\ChatGLM2-6B\THUDM\chatglm2-6b-int4", trust_remote_code=True).float()
model = model.eval()
input = "我该怎么训练你"
response, history = model.chat(tokenizer, input, history=[])
print(response)

运行结果

问题

1、报错 No module named 'transformers_modules.THUDM/chatglm-6b'

win系统下子文件夹的路径应该写成\("THUDM\chatglm-6b"), 原代码写的是linux文件系统用的/ ("THUDM/chatglm-6b")。

2、quantization_kernels_parallel.so 加载失败

这是因为ctypes在Windows环境下的bug还没修复,python3.10目前还有问题。需要对quantization.py 中的 ctypes.cdll.LoadLibrary相关代码 进行处理:

python 复制代码
将
kernels = ctypes.cdll.LoadLibrary(kernel_file)
修改为
kernels = ctypes.CDLL(kernel_file, winmode = 0)

也有人会手动编译,步骤如下,也可以尝试

(1)手动编译,在模型path下

cpp 复制代码
gcc -fPIC -pthread -fopenmp -std=c99 quantization_kernels_parallel.c -shared -o quantization_kernels_parallel.so
gcc -fPIC -pthread -fopenmp -std=c99 quantization_kernels.c -shared -o quantization_kernels.so

(2)然后在原先模型加载后手动加载一下手动编译的kernel

python 复制代码
model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4",trust_remote_code=True).float()
model = model.quantize(bits=4, kernel_file="Your Kernel Path")

参考文献

https://blog.csdn.net/u013817537/article/details/131500501

https://blog.csdn.net/chaishen10000/article/details/131274928

https://zhuanlan.zhihu.com/p/640677084

相关推荐
鄃鳕11 分钟前
python 字典 列表 类比c++【python】
c++·python
可触的未来,发芽的智生17 分钟前
新奇特:黑猫警长的纳米世界,忆阻器与神经网络的智慧
javascript·人工智能·python·神经网络·架构
程序员三藏24 分钟前
Jmeter接口测试与压力测试
自动化测试·软件测试·python·测试工具·jmeter·接口测试·压力测试
烛阴1 小时前
用 Python 揭秘 IP 地址背后的地理位置和信息
前端·python
大宝剑1701 小时前
python环境安装
开发语言·python
Element_南笙1 小时前
吴恩达新课程:Agentic AI(笔记2)
数据库·人工智能·笔记·python·深度学习·ui·自然语言处理
倔强青铜三1 小时前
苦练Python第69天:subprocess模块从入门到上瘾,手把手教你驯服系统命令!
人工智能·python·面试
倔强青铜三1 小时前
苦练 Python 第 68 天:并发狂飙!concurrent 模块让你 CPU 原地起飞
人工智能·python·面试
星期天要睡觉2 小时前
深度学习——循环神经网络(RNN)实战项目:基于PyTorch的文本情感分析
人工智能·python·rnn·深度学习·神经网络
ERROR_LESS2 小时前
【ADS-1】【python基础-2】基本语法与数据结构(列表、字典、集合)
python