ChatGLM-6B 本地部署指南!
?Datawhale干貨?
作者:宋志學(xué),Datawhale成員
注意事項(xiàng)-寫在最前
-
顯卡需要至少6GB的顯存
-
使用GPU部署模型需要自行安裝torch和與自己顯卡匹配的CUDA、cudnn
下載ChatGLM-6B
在GitHub上下載chatglm-6b的源碼,地址如下
https://github.com/THUDM/ChatGLM-6B
開源雙語(yǔ)對(duì)話語(yǔ)言模型 ?| An Open Bilingual Dialogue Language Model
可以使用git clone代碼,也可以下載代碼壓縮包到本地(看你心情)

然后,安裝一些包。
pip?install?-r?requirements.txt
下載int4模型
在Hugging Face上下載chatglm-6b int4量化模型地址如下:
https://huggingface.co/THUDM/chatglm-6b-int4

這些所有文件都需要下載(可能需要一點(diǎn)點(diǎn)魔法,但是相信聰明的你,一定可以!)
在剛剛下載好的chatglm源碼中新建一個(gè)用于下載模型文件的文件夾,命名為chatglm-6b-int4(你也可以換一個(gè)你喜歡的名字)。將Hugging Face上的int4量化模型下載到里面。

修改源碼
web_demo.py
將源碼中wei_demo.py文件中的第5、6兩行代碼中的模型路徑修改為chatglm-6b-int4也就是剛剛下載模型的文件夾。如下圖所示。
切記:不要用./chatglm-6b-in4不要出現(xiàn)"點(diǎn)杠"的形式,如果你把模型文件放在了其他地方,請(qǐng)務(wù)必使用絕對(duì)路徑,如:"G:\日常文件\Chatgpt相關(guān)\ChatGLM-6B\chatglm-6b-int4"。(要使用雙斜杠,雙斜杠,雙斜杠!!!)鼓勵(lì)你像我這樣直接放在源碼里面,免去路徑問題的困擾。(相信你足夠聰明,可以解決這個(gè)問題!)


api.py


cli_demo.py


運(yùn)行代碼
web_demo.py
在下載chatglm源碼的目錄,打開cmd,輸入python web_demo.py經(jīng)過一段時(shí)間的等待,出現(xiàn)如下圖一樣的輸出就代表運(yùn)行成功,在瀏覽器輸入地址:http://127.0.0.1:7860,就可以愉快地使用chatglm啦~
-
gcc報(bào)錯(cuò)不需要管,屬于windows自己?jiǎn)栴},咱們使用GPU運(yùn)行,gcc與我們無(wú)關(guān)
在 CPU 上運(yùn)行時(shí),會(huì)根據(jù)硬件自動(dòng)編譯 CPU Kernel ,請(qǐng)確保已安裝 GCC 和 OpenMP (Linux一般已安裝,對(duì)于Windows則需手動(dòng)安裝),以獲得最佳并行計(jì)算能力。


可以看到顯存占了5.7GB,所以需要至少一張6GB的顯存的顯卡,再來(lái)玩這個(gè)。
- 注意:對(duì)話太長(zhǎng)也會(huì)爆顯存。

api.py
在命令行輸入python api.py,經(jīng)過一段時(shí)間的運(yùn)行,出現(xiàn)如下輸出,就是運(yùn)行成功。

按照官網(wǎng)給的示例
curl -X POST "http://127.0.0.1:8000"
-H 'Content-Type: application/json'
-d '{"prompt": "你好", "history": []}'
可以使用python中的requests庫(kù)進(jìn)行訪問,聰明的你可以把這個(gè)代碼封裝一下實(shí)現(xiàn)多輪對(duì)話。
import?requests
import?json
url?=?'http://127.0.0.1:8000'
headers?=?{'Content-Type':?'application/json'}
data?=?{"prompt":?"你好",?"history":?[]}
response?=?requests.post(url=url,?headers=headers,?data=json.dumps(data))
response.json()

cli_demo.py
在命令行輸入python cli_demo.py,經(jīng)過一段時(shí)間的運(yùn)行,出現(xiàn)如下輸出,就是運(yùn)行成功。

然后,可以和他進(jìn)行對(duì)話,就像運(yùn)行wei_demo.py一樣。

注:以下為號(hào)主的知識(shí)星球廣告
