欢迎光临散文网 会员登陆 & 注册

【ChatGLM3 量化】python 和 C++ 两种实现方式

2023-11-04 15:37 作者:AI日日新  | 我要投稿

首先介绍使用python量化的方式:

可在线运行的notebook示例:在kaggle网站搜索:chatglm3-int4

第一步先安装依赖包:

接着下载模型并进行在线量化,这里叫在线量化是因为它量化完之后并没有保存量化后的模型:

最后即可使用量化后的模型进行提问:


除了使用python方式外,还有更高效的C++量化推理方式:

可在线运行的notebook链接:在kaggle网站搜索:chatglm3-cpp

首先需要克隆仓库:(若该网址无法克隆,可在下一步的模型下载中找到对应的压缩包)

接着跳转到该项目目录下:

接着下载已经转换好的ggml型号模型:

然后我们就可以编译该项目了:

下一步我们使用cpu来进行模型推理:

然后我们考虑使用gpu来推理,再进行一次编译:(在这里有报错可以查看文章最后的问题解决方案)

编译完后我们就可以使用gpu来进行推理了,速度有大幅度提升:

最后我们希望使用python包来调用C++版本的gpu推理,那么安装对应的python包:(在这里也常常报错,请文章查看最后的问题解决方案)

最终我们就可以使用python体验到快速的推理了:

问题解决方案

  1.  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  参数,这里注意修改下路径


【ChatGLM3 量化】python 和 C++ 两种实现方式的评论 (共 条)

分享到微博请遵守国家法律