【ChatGLM3 量化】python 和 C++ 兩種實(shí)現(xiàn)方式
首先介紹使用python量化的方式:
可在線運(yùn)行的notebook示例:在kaggle網(wǎng)站搜索:chatglm3-int4
第一步先安裝依賴包:
接著下載模型并進(jìn)行在線量化,這里叫在線量化是因?yàn)樗炕曛蟛]有保存量化后的模型:
最后即可使用量化后的模型進(jìn)行提問(wèn):

除了使用python方式外,還有更高效的C++量化推理方式:
可在線運(yùn)行的notebook鏈接:在kaggle網(wǎng)站搜索:chatglm3-cpp
首先需要克隆倉(cāng)庫(kù):(若該網(wǎng)址無(wú)法克隆,可在下一步的模型下載中找到對(duì)應(yīng)的壓縮包)
接著跳轉(zhuǎn)到該項(xiàng)目目錄下:
接著下載已經(jīng)轉(zhuǎn)換好的ggml型號(hào)模型:
然后我們就可以編譯該項(xiàng)目了:
下一步我們使用cpu來(lái)進(jìn)行模型推理:
然后我們考慮使用gpu來(lái)推理,再進(jìn)行一次編譯:(在這里有報(bào)錯(cuò)可以查看文章最后的問(wèn)題解決方案)
編譯完后我們就可以使用gpu來(lái)進(jìn)行推理了,速度有大幅度提升:
最后我們希望使用python包來(lái)調(diào)用C++版本的gpu推理,那么安裝對(duì)應(yīng)的python包:(在這里也常常報(bào)錯(cuò),請(qǐng)文章查看最后的問(wèn)題解決方案)
最終我們就可以使用python體驗(yàn)到快速的推理了:

問(wèn)題解決方案
?cuBlAS 編譯錯(cuò)誤(Value ‘sm_30‘ is not defined for option ‘gpu-name‘):可能是因?yàn)殡娔X中有安裝重復(fù)的CUDA工具包,需要卸載掉:
2. 提示沒有 CMAKE_CUDA_ARCHITECTURES 參數(shù):在命令行中添加 -DCMAKE_CUDA_ARCHITECTURES 參數(shù),參數(shù)值是一個(gè)數(shù)字,具體的值需要上 N 卡網(wǎng)址查找
3. 找不到對(duì)應(yīng)的CUDA型號(hào),或者CUDA版本不匹配:添加-DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.1/bin/nvcc? 參數(shù),這里注意修改下路徑


