最簡(jiǎn)化ChatGLM2-6b小白部署教程【windows系統(tǒng),16G內(nèi)存即可,對(duì)顯卡無要求,CPU運(yùn)行】
一.前言
近期清華KEG和智譜AI公司一起發(fā)布了中英雙語對(duì)話模型ChatGLM2-6B(小尺寸LLM),開源在https://github.com/THUDM/ChatGLM2-6B,可單機(jī)部署推理和fine-tune。雖然默認(rèn)程序是GPU運(yùn)行且對(duì)顯卡要求不高,官方也說默認(rèn)需要13G的顯存,使用量化模型貌似只需要6G顯存,但對(duì)于我這種平民玩家,不租云服務(wù)器的話,單靠我這GTX3050 4G的卡怕是跑不動(dòng)了,所以就嘗試CPU部署量化后的ChatGLM2-6b-int4模型(不同版本的ChatGLM2部署方法基本一致,只是加載的模型和需要的硬件環(huán)境有區(qū)別)
二.機(jī)器配置&環(huán)境
本人機(jī)器配置: 系統(tǒng)WIN10 CPU R5-5600H GPU GTX3050 4G 內(nèi)存16G
環(huán)境:python 3.11(>=3.8即可),需要科學(xué)上網(wǎng)(需要訪問git和huggingface)
三.代碼下載&項(xiàng)目所需python環(huán)境安裝
git源碼下載
#創(chuàng)建目錄并進(jìn)入 mkdir ChatGLM2-6b-int4 cd ChatGLM2-6b-int4 # git源碼下載 git clone https://github.com/THUDM/ChatGLM2-6B cd ChatGLM2-6B
git過程如果使用vpn下載報(bào)錯(cuò),需要配置git代理
git config --global https.proxy http://127.0.0.1:10809 & git config --global https.proxy https://127.0.0.1:10809(具體ip端口號(hào)可在 網(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項(xiàng)目下) python -m venv glm_env #切換環(huán)境 glm_env\Scripts\activate
安裝項(xiàng)目依賴包(指定阿里云鏡像源)
torch下載時(shí)間相對(duì)較長(zhǎng)
#安裝項(xiàng)目依賴并指定鏡像源 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一共三個(gè)文件)下載,但是后者少了一些模型文件以外的配置文件(推理時(shí)需要),文件較小,也可以單獨(dú)下載(文章頂部),如果只下載了模型的三個(gè)文件,在推理時(shí)會(huì)報(bào)錯(cuò)如下

然后我們開始下載模型了

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

回到項(xiàng)目根目錄下在cli_demo.py web_demo.py web_demo2.py api.py內(nèi)修改部分代碼,cli_demo為例,其他相同(主要修改模型加載路徑以及改為CPU運(yùn)行).

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 端推理
然后在項(xiàng)目目錄下執(zhí)行cli_demo.py,提示沒有安裝readline

嘗試pip安裝readline一直失敗(試了各種鏡像源),最后pip install pyreadline3解決,但又報(bào)了其他錯(cuò)誤

這時(shí)候發(fā)現(xiàn)自己的路徑用 / (THUDM/chatglm2-6b-int4), 趕緊替換為 \,我估計(jì)經(jīng)常在linux下開發(fā)的同學(xué)都會(huì)犯這個(gè)錯(cuò)誤,然后我們繼續(xù)執(zhí)行 python cli_demo.py,發(fā)現(xiàn)沒有GCC命令,百度了下發(fā)現(xiàn)在CPU上運(yùn)行量化后的int4模型,需要安裝gcc和openmp,正好TDM-GCC可以順帶安裝openmp,于是下載了TDM-GCC,安裝過程中需要勾選安裝openmp

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

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

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

五.api部署
安裝fast等相關(guān)依賴包,然后curl本地默認(rèn)端口即可得到回復(fù)
#安裝fastapi等包,以上包在install requirements文件時(shí)應(yīng)該已經(jīng)安裝過了,uvicorn是python 輕量級(jí) ASGI web服務(wù)器框架
pip install fastapi uvicorn -i https://mirrors.aliyun.com/pypi/simple
#項(xiàng)目根目錄下執(zhí)行 api.py
python api.py
#程序默認(rèn)部署在本地8000端口,通過curl post直接調(diào)用
curl -X POST "http://127.0.0.1:8000" -H 'Content-Type: application/json' -d '{"prompt": "你好,請(qǐng)介紹下自己", "history": []}'- linux環(huán)境部署清華大學(xué)大模型最新版 chatglm2-6b 圖文教程
- macbook安裝環(huán)境chatglm2-6b的詳細(xì)過程
- ChatGLM-6B+LangChain環(huán)境部署與使用實(shí)戰(zhàn)
- 基于本地知識(shí)的問答機(jī)器人langchain-ChatGLM 大語言模型實(shí)現(xiàn)方法詳解
- ChatGPT平替-?ChatGLM多用戶并行訪問部署過程
- ChatGPT平替-ChatGLM環(huán)境搭建與部署運(yùn)行效果
- ChatGLM?集成LangChain工具詳解
- 基于prompt?tuning?v2訓(xùn)練好一個(gè)垂直領(lǐng)域的chatglm-6b
相關(guān)文章
python xxx.py 和 python -m xxx兩種執(zhí)行方式
本文主要介紹了python xxx.py 和 python -m xxx兩種執(zhí)行方式的使用場(chǎng)景和問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12
Python實(shí)現(xiàn)emoji表情的簡(jiǎn)單方法
“表情包”是一種利用圖片來表示感情的一種方式。下面這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)emoji表情的簡(jiǎn)單方法,需要的朋友可以參考下2021-05-05
python實(shí)現(xiàn)順時(shí)針打印矩陣
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)順時(shí)針打印矩陣,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
基于Python編寫一個(gè)批量重命名文件工具(附完整示例)
這篇文章主要為大家詳細(xì)介紹了如何基于Python編寫一個(gè)批量重命名文件工具,文中的示例代碼講解詳細(xì),你只要一步一步跟著做就能直接運(yùn)行2026-03-03
詳解python和matlab的優(yōu)勢(shì)與區(qū)別
在本文中小編給大家分享的是關(guān)于python和matlab的優(yōu)勢(shì)與區(qū)別的知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們參考學(xué)習(xí)下。2019-06-06
Python使用Mechanize模塊編寫爬蟲的要點(diǎn)解析
這篇文章主要介紹了Python使用Mechanize模塊編寫爬蟲的要點(diǎn)解析,作者還講解了Mechanize程序占用內(nèi)存過高問題的相關(guān)解決方法,需要的朋友可以參考下2016-03-03

