最簡化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顯存,但對于我這種平民玩家,不租云服務(wù)器的話,單靠我這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即可),需要科學(xué)上網(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)絡(luò)和Internet>代理 中查看)
如需取消代理設(shè)置如下
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)境下,相關(guā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/

安裝成功嘍

四.模型相關(guān)文件下載&加載
chatglm2-6b-int4模型地址(huggingface) 也可以在清華國內(nèi)模型地址(不需要科學(xué)上網(wǎng),chatglm2-6b-int4一共三個文件)下載,但是后者少了一些模型文件以外的配置文件(推理時需要),文件較小,也可以單獨下載(文章頂部),如果只下載了模型的三個文件,在推理時會報錯如下

然后我們開始下載模型了

量化后的int4模型文件接近4G,不過也看出來出租屋這100M寬帶不止100M呀。。。,很給力一會就下完了。在項目目錄下面創(chuàng)建THUDM\chatglm2-6b-int4兩級目錄,將模型相關(guān)文件放置文件夾,文件目錄如下

回到項目根目錄下在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ā)的同學(xué)都會犯這個錯誤,然后我們繼續(xù)執(zhí)行 python cli_demo.py,發(fā)現(xiàn)沒有GCC命令,百度了下發(fā)現(xiàn)在CPU上運行量化后的int4模型,需要安裝gcc和openmp,正好TDM-GCC可以順帶安裝openmp,于是下載了TDM-GCC,安裝過程中需要勾選安裝openmp

最終,我們和chatglm2對上了話,但回復(fù)速度實在太慢,而且好像介紹自己都有問題(畢竟是量化后的模型),簡單的快排更尬了。。。。。。有條件的還是用顯卡,或者google colab、阿里云之類的云服務(wù)器

推理過程中使用的資源情況

網(wǎng)頁版的話直接執(zhí)行python web_demo.py即可(web_demo2也一樣,只是ui頁面不同),程序會運行一個 Web Server,然后啟動瀏覽器輸入對話內(nèi)容即可

五.api部署
安裝fast等相關(guān)依賴包,然后curl本地默認端口即可得到回復(fù)
#安裝fastapi等包,以上包在install requirements文件時應(yīng)該已經(jīng)安裝過了,uvicorn是python 輕量級 ASGI web服務(wù)器框架
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": []}'- linux環(huán)境部署清華大學(xué)大模型最新版 chatglm2-6b 圖文教程
- macbook安裝環(huán)境chatglm2-6b的詳細過程
- ChatGLM-6B+LangChain環(huán)境部署與使用實戰(zhàn)
- 基于本地知識的問答機器人langchain-ChatGLM 大語言模型實現(xiàn)方法詳解
- ChatGPT平替-?ChatGLM多用戶并行訪問部署過程
- ChatGPT平替-ChatGLM環(huán)境搭建與部署運行效果
- ChatGLM?集成LangChain工具詳解
- 基于prompt?tuning?v2訓(xùn)練好一個垂直領(lǐng)域的chatglm-6b
相關(guān)文章
python xxx.py 和 python -m xxx兩種執(zhí)行方式
本文主要介紹了python xxx.py 和 python -m xxx兩種執(zhí)行方式的使用場景和問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12
詳解python和matlab的優(yōu)勢與區(qū)別
在本文中小編給大家分享的是關(guān)于python和matlab的優(yōu)勢與區(qū)別的知識點以及實例代碼,需要的朋友們參考學(xué)習(xí)下。2019-06-06

