Windows下使用chatglm.cpp的量化模型以实现普通电脑配置也可以来使用ChatGLM3-6B

chatglm.cpp是使用cpu驱动,在加上量化以后降低参数精度,可以让cpu配置不够好的情况下也能使用ChatGLM3-6B。由于本人对于C++和Python并不熟悉,可能在文章会有一些错误理解,请读者谅解。

ChatCLM3的GitHub官方链接:

GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型

chatglm.cpp量化模型的GitHub官方链接:

GitHub - li-plus/chatglm.cpp:ChatGLM-6B & ChatGLM2-6B & ChatGLM3 & GLM4 的C++实现

首先git环境和python环境肯定是要提前准备好的,然后进入到Windows的命令行模式,cd到我们要保存该项目的目录下,后文所指的chatglm安装所在的绝对路径皆是该路径。

1.将ChatGLM.cpp存储库克隆到本地计算机中:

git clone --recursive https://github.com/li-plus/chatglm.cpp.git && cd chatglm.cpp

2.量化模型

过程略长且麻烦,想要逃课可以直接看下一个标题

安装用于加载和量化 Hugging Face 模型的必要软件包:

python -m pip install -U pip

在执行这个命令的时候可能会报错:

Cannot uninstall TBB 0.2 It is a distutils installed project and thus we cannot accurately det

这个问题是使用无法卸载TBB,具体缘由应该是原先安装python环境使用的是conda,现在使用pip安装对于TBB有冲突,无法卸载。

解决方式:

1.手动删除Python路径下\Lib\site-packages包下的llvmlite文件
2.在执行命令 conda uninstall TBB

安装用于加载和量化 Hugging Face 模型的必要软件包:

python -m pip install torch tabulate tqdm transformers accelerate sentencepiece

在执行这个命令的时候可能会报错:

AttributeError: ‘ChatGLMTokenizer‘ object has no attribute ‘sp_tokenizer‘

导致该问题的主要原因是transformers版本的问题,原python环境下的transformers版本过高,满足需求的transformers<4.34

解决方式:

pip uninstall transformers
pip install transformers==4.33.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.douban.com

用于将 ChatGLM-6B 转换为量化的 GGML 格式。例如,要将 fp16 原始模型转换为q4_0(量化 int4)GGML 模型,请运行:chatglm_cpp/convert.py

python chatglm_cpp/convert.py -i THUDM/chatglm-6b -t q4_0 -o models/chatglm-ggml.bin

可以通过指定以下内容自由尝试以下任何量化类型:-t <type>

 这里需要科学上网才能连接到Hugging Face的官网才可以完成量化模型的转换和下载,且该过程可能会有些长。

量化模型逃课

如果不想完成第二步量化模型的过程或者无法科学上网,我将量化后的模型上传到了百度网盘分享出来,下载后存放到models目录下,可以直接拿来使用。

链接:https://pan.baidu.com/s/17fH053Q-tfFK4nPDyYW0nw?pwd=n6yx 
提取码:n6yx

3. 构建和运行

使用 CMake 编译项目:

cmake -B build
cmake --build build -j --config Release

现在,您可以通过运行以下命令与量化的ChatGLM-6B模型聊天:

.\build\bin\Release\main  -m models\chatglm-ggml.bin -p 想要提问的问题

若要在交互模式下运行模型,请添加标志-i

.\build\bin\Release\main  -m models\chatglm-ggml.bin -i

在交互模式下,聊天记录将作为下一轮对话的背景。

4.使用streamlit来通过可视化的网站启动ChatGLM

首先需要下载streamlit

pip install streamlit 

下载运行chatglm_cpp的所需环境

pip install .

修改examples目录下的chatglm3_demo.py第20行模型文件位置 

修改前:

MODEL_PATH = Path(__file__).resolve().parent.parent / "models/chatglm3-ggml.bin"

修改后:

MODEL_PATH = Path(__file__).resolve().parent.parent / "chatglm安装所在的绝对路径\models\chatglm-ggml.bin"

不修改的话,在后续启动的时候会报错

huggingface_hub.errors.HFValidationError: Repo id must use alphanumeric chars or '-', '_', '.', '--' and '..' are forbidden, '-' and '.' cannot start or end the name, max length is 96: 'C:\AI\chatglm.cpp\models\chatglm3-ggml.bin'

最后需要chatglm.cpp的安装目录下原有的chatglm_cpp文件夹的名称修改成chatglmcpp或者其他的,不然会报错: ModuleNotFoundError: No module named 'chatglm_cpp'

启动项目

python -m streamlit run  examples\chatglm3_demo.py 

启动后的就可以得到一个可视化的网站了

 5.快速启动

桌面新建文本文件写入:

conda env list && activate glm3cpp && python -m streamlit run 安装的绝对路径\chatglm.cpp\examples\chatglm3_demo.py

另存为将保存类型的文本文档修改为所有文件,文件名改为run.bat

以后想要运行这个网页版chatglm可以直接双击这个文件

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值