【ChatGLM3 量化】python 和 C++ 两种实现方式
首先介绍使用python量化的方式:
可在线运行的notebook示例:在kaggle网站搜索:chatglm3-int4
第一步先安装依赖包:
接着下载模型并进行在线量化,这里叫在线量化是因为它量化完之后并没有保存量化后的模型:
最后即可使用量化后的模型进行提问:

除了使用python方式外,还有更高效的C++量化推理方式:
可在线运行的notebook链接:在kaggle网站搜索:chatglm3-cpp
首先需要克隆仓库:(若该网址无法克隆,可在下一步的模型下载中找到对应的压缩包)
接着跳转到该项目目录下:
接着下载已经转换好的ggml型号模型:
然后我们就可以编译该项目了:
下一步我们使用cpu来进行模型推理:
然后我们考虑使用gpu来推理,再进行一次编译:(在这里有报错可以查看文章最后的问题解决方案)
编译完后我们就可以使用gpu来进行推理了,速度有大幅度提升:
最后我们希望使用python包来调用C++版本的gpu推理,那么安装对应的python包:(在这里也常常报错,请文章查看最后的问题解决方案)
最终我们就可以使用python体验到快速的推理了:

问题解决方案
cuBlAS 编译错误(Value ‘sm_30‘ is not defined for option ‘gpu-name‘):可能是因为电脑中有安装重复的CUDA工具包,需要卸载掉:
2. 提示没有 CMAKE_CUDA_ARCHITECTURES 参数:在命令行中添加 -DCMAKE_CUDA_ARCHITECTURES 参数,参数值是一个数字,具体的值需要上 N 卡网址查找
3. 找不到对应的CUDA型号,或者CUDA版本不匹配:添加-DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.1/bin/nvcc 参数,这里注意修改下路径


