最簡化ChatGLM2-6b小白部署教程【windows系統(tǒng),16G內(nèi)存即可,對顯卡無要求,CPU運行】
一.前言
近期清華KEG和智譜AI公司一起發(fā)布了中英雙語對話模型ChatGLM2-6B(小尺寸LLM),開源在https://github.com/THUDM/ChatGLM2-6B,可單機部署推理和fine-tune。雖然默認程序是GPU運行且對顯卡要求不高,官方也說默認需要13G的顯存,使用量化模型貌似只需要6G顯存,但對于我這種平民玩家,不租云服務器的話,單靠我這GTX3050 4G的卡怕是跑不動了,所以就嘗試CPU部署量化后的ChatGLM2-6b-int4模型(不同版本的ChatGLM2部署方法基本一致,只是加載的模型和需要的硬件環(huán)境有區(qū)別)
二.機器配置&環(huán)境
本人機器配置: 系統(tǒng)WIN10 CPU R5-5600H GPU GTX3050 4G 內(nèi)存16G
環(huán)境:python 3.11(>=3.8即可),需要科學上網(wǎng)(需要訪問git和huggingface)
三.代碼下載&項目所需python環(huán)境安裝
git源碼下載
#創(chuàng)建目錄并進入 mkdir ChatGLM2-6b-int4 cd ChatGLM2-6b-int4 # git源碼下載 git clone https://github.com/THUDM/ChatGLM2-6B cd ChatGLM2-6B
git過程如果使用vpn下載報錯,需要配置git代理
git config --global https.proxy http://127.0.0.1:10809 & git config --global https.proxy https://127.0.0.1:10809
(具體ip端口號可在 網(wǎng)絡和Internet>代理 中查看)
如需取消代理設置如下
git config --global --unset http.proxy & git config --global --unset https.proxy
python虛擬環(huán)境創(chuàng)建并切換(conda創(chuàng)建環(huán)境切換也ok)
#創(chuàng)建虛擬環(huán)境(pip安裝的包僅在此環(huán)境下,相關的依賴都在chatglm2b項目下) python -m venv glm_env #切換環(huán)境 glm_env\Scripts\activate
安裝項目依賴包(指定阿里云鏡像源)
torch下載時間相對較長
#安裝項目依賴并指定鏡像源 pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
安裝成功嘍
四.模型相關文件下載&加載
chatglm2-6b-int4模型地址(huggingface) 也可以在清華國內(nèi)模型地址(不需要科學上網(wǎng),chatglm2-6b-int4一共三個文件)下載,但是后者少了一些模型文件以外的配置文件(推理時需要),文件較小,也可以單獨下載(文章頂部),如果只下載了模型的三個文件,在推理時會報錯如下
然后我們開始下載模型了
量化后的int4模型文件接近4G,不過也看出來出租屋這100M寬帶不止100M呀。。。,很給力一會就下完了。在項目目錄下面創(chuàng)建THUDM\chatglm2-6b-int4兩級目錄,將模型相關文件放置文件夾,文件目錄如下
回到項目根目錄下在cli_demo.py web_demo.py web_demo2.py api.py內(nèi)修改部分代碼,cli_demo為例,其他相同(主要修改模型加載路徑以及改為CPU運行).
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda() #修改成 tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b-int4", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM/chatglm2-6b-int4", trust_remote_code=True).float()
四.命令端|web 端推理
然后在項目目錄下執(zhí)行cli_demo.py,提示沒有安裝readline
嘗試pip安裝readline一直失敗(試了各種鏡像源),最后pip install pyreadline3解決,但又報了其他錯誤
這時候發(fā)現(xiàn)自己的路徑用 / (THUDM/chatglm2-6b-int4), 趕緊替換為 \,我估計經(jīng)常在linux下開發(fā)的同學都會犯這個錯誤,然后我們繼續(xù)執(zhí)行 python cli_demo.py,發(fā)現(xiàn)沒有GCC命令,百度了下發(fā)現(xiàn)在CPU上運行量化后的int4模型,需要安裝gcc和openmp,正好TDM-GCC可以順帶安裝openmp,于是下載了TDM-GCC,安裝過程中需要勾選安裝openmp
最終,我們和chatglm2對上了話,但回復速度實在太慢,而且好像介紹自己都有問題(畢竟是量化后的模型),簡單的快排更尬了。。。。。。有條件的還是用顯卡,或者google colab、阿里云之類的云服務器
推理過程中使用的資源情況
網(wǎng)頁版的話直接執(zhí)行python web_demo.py即可(web_demo2也一樣,只是ui頁面不同),程序會運行一個 Web Server,然后啟動瀏覽器輸入對話內(nèi)容即可
五.api部署
安裝fast等相關依賴包,然后curl本地默認端口即可得到回復
#安裝fastapi等包,以上包在install requirements文件時應該已經(jīng)安裝過了,uvicorn是python 輕量級 ASGI web服務器框架 pip install fastapi uvicorn -i https://mirrors.aliyun.com/pypi/simple #項目根目錄下執(zhí)行 api.py python api.py #程序默認部署在本地8000端口,通過curl post直接調(diào)用 curl -X POST "http://127.0.0.1:8000" -H 'Content-Type: application/json' -d '{"prompt": "你好,請介紹下自己", "history": []}'
相關文章
Python XlsxWriter模塊Chart類用法實例分析
這篇文章主要介紹了Python XlsxWriter模塊Chart類用法,結(jié)合實例形式分析了Python XlsxWriter模塊Chart類功能、圖表繪制常用方法及相關操作注意事項,需要的朋友可以參考下2019-03-03CentOS7上使用pyenv搭建Django環(huán)境
本文主要介紹了CentOS7上使用pyenv搭建Django環(huán)境,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11對Pytorch中nn.ModuleList 和 nn.Sequential詳解
今天小編就為大家分享一篇對Pytorch中nn.ModuleList 和 nn.Sequential詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08python筆記(1) 關于我們應不應該繼續(xù)學習python
關于Python,如果你要學習,建議大家查看一下網(wǎng)站:因為本人也是剛剛決定收集點零碎時間來學習下它,推薦可能并不是最好的2012-10-10windows下安裝python的C擴展編譯環(huán)境(解決Unable to find vcvarsall.bat)
這篇文章主要介紹了windows下安裝python的C擴展編譯環(huán)境(解決Unable to find vcvarsall.bat),需要的朋友可以參考下2018-02-02