重慶提供行業(yè)網(wǎng)站建站報(bào)價(jià)seo營(yíng)銷論文
在Windows 10上部署ChatGLM2-6B:掌握信息時(shí)代的智能對(duì)話
- 硬件環(huán)境
- ChatGLM2-6B的量化模型最低GPU配置說(shuō)明
- 準(zhǔn)備工作
- ChatGLM2-6B安裝部署
- ChatGLM2-6B運(yùn)行模式
- 解決問(wèn)題
- 總結(jié)
隨著當(dāng)代科技的快速發(fā)展,我們進(jìn)入了一個(gè)數(shù)字化時(shí)代,其中信息以前所未有的速度傳播。在這個(gè)信息爆炸的時(shí)代,我們不僅面臨著巨大的機(jī)遇,還面臨著挑戰(zhàn)。為了更好地應(yīng)對(duì)和充分利用這一趨勢(shì),我們需要掌握一些關(guān)鍵技能和工具。本文將向您介紹如何在Windows 10專業(yè)版22H2 x64操作系統(tǒng)上部署ChatGLM2-6B,這是一個(gè)強(qiáng)大的自然語(yǔ)言處理模型,用于智能對(duì)話。
本文面向的操作系統(tǒng)為 window10 專業(yè)版 22H2 x64,基于GPU的運(yùn)算
硬件環(huán)境
名稱 | 參數(shù) |
---|---|
PC | HP Elite Tower 880 G9 |
CPU | 16G |
GPU | NVIDIA RTX3060 |
處理器 | 12th Gen Intel? Core?i7-12700 2.10GHz |
操作系統(tǒng) | window 10 專業(yè)版 22H2 x64 |
ChatGLM2-6B的量化模型最低GPU配置說(shuō)明
名稱 | 參數(shù) | 顯存要求 |
---|---|---|
ChatGLM2-6B | FP16 | 13G |
ChatGLM2-6B | INT4 | 6G |
ChatGLM2-6B-32K | FP16 | 20G |
ChatGLM2-6B-32K | INT4 | 13G |
注意:如果僅使用CPU部署,則ChatGLM2-6B的量化模型最低CPU 32G
準(zhǔn)備工作
在部署ChatGLM2-6B之前,您需要進(jìn)行一些準(zhǔn)備工作
- 安裝Git和Git LFS: 您可以從Git官方網(wǎng)站下載Git,并在安裝時(shí)務(wù)必選擇安裝Git LFS選項(xiàng),以支持大型文件的版本控制。
# window版Git安裝時(shí)注意勾選git LFS選項(xiàng)即可
# Linux系統(tǒng)在安裝完Git后,需額外安裝git LFS
# 驗(yàn)證git是否正常: 出現(xiàn)版本信息為正常
git --version
# 驗(yàn)證git lfs是否正常:出現(xiàn)Git LFS initalized為正常
git lfs install
- 安裝CUDA: CUDA是NVIDIA的并行計(jì)算平臺(tái),用于加速深度學(xué)習(xí)任務(wù)。您需要確保安裝了與您的NVIDIA顯卡驅(qū)動(dòng)程序兼容的CUDA版本【CUDA下載地址】
# 查看NVIDIA CUDA version 和 Driver Version,一定要注意相關(guān)版本信息
nvidia-smi
# 在下載頁(yè)面選擇相關(guān)版本和信息后,下載安裝包進(jìn)行安裝即可
- 安裝Python【下載地址】: 安裝Python,建議使用Python 3.10.10版本,并在安裝時(shí)勾選將Python添加到系統(tǒng)變量PATH中。
注意:無(wú)需下載最新版本,本文選用python v3.10.10
更據(jù)安裝包進(jìn)行即可,注意勾選將python添加至系統(tǒng)變量PATH
- 安裝PyTorch【下載地址】: 根據(jù)您的CUDA版本選擇合適的PyTorch版本,并使用pip安裝。確保PyTorch與CUDA版本兼容。
# 注意pytorch的版本,保證其和CUDA版本兼容
# 選擇stable版,其余更據(jù)自己系統(tǒng)和情況選擇,本文使用CUDA 11.8為最新版本(雖然CUDA版本為12.2,但是其支持向下兼容)
# 復(fù)制紅框內(nèi)容,在命令行中進(jìn)行安裝,等待完成
# 驗(yàn)證pytorch是否正常:進(jìn)入命令行或PowerShell
python
>>> import torch
>>> print(torch.cuda.is_available())
>>> True
# 返回True即為正常
>>> quit()
ChatGLM2-6B安裝部署
- 下載倉(cāng)庫(kù)代碼: 使用Git克隆ChatGLM2-6B倉(cāng)庫(kù)并安裝依賴。
git clone https://github.com/THUDM/ChatGLM2-6B.git
cd ChatGLM2-6B
pip install -r requirements.txt
- 下載ChatGLM2-6B模型: 在項(xiàng)目目錄下創(chuàng)建一個(gè)名為“model”的文件夾,并下載ChatGLM2-6B的模型文件。
mkdir model && cd model
git clone https://huggingface.co/THUDM/chatglm2-6b
git clone https://huggingface.co/THUDM/chatglm2-6b-int4
git clone https://huggingface.co/THUDM/chatglm2-6b-32k
git clone https://huggingface.co/THUDM/chatglm2-6b-32k-int4
請(qǐng)確保您下載了標(biāo)記為L(zhǎng)FS(Large File Storage)的文件,以獲取完整的模型文件。
ChatGLM2-6B運(yùn)行模式
在部署ChatGLM2-6B時(shí),您可以選擇不同的運(yùn)行模式,包括Gradio網(wǎng)頁(yè)模式、Streamlit網(wǎng)頁(yè)模式、命令行模式和API模式。以>下是每種模式的簡(jiǎn)要說(shuō)明:
Gradio網(wǎng)頁(yè)模式
- 準(zhǔn)備工作
# 進(jìn)入項(xiàng)目目錄
cd ChatGLM2-6B
# 復(fù)制一份web_demo.py
copy web_demo.py web_demo_bak.py
2.模型參數(shù)調(diào)整
tokenizer = AutoTokenizer.from_pretrained("model\\chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("model\\chatglm2-6b", trust_remote_code=True).cuda()
3.服務(wù)參數(shù)調(diào)整
# demo.queue().launch(share=False, inbrowser=True)
# concurrency_count: 表示可以同時(shí)使用網(wǎng)頁(yè)的人數(shù),超過(guò)就需要排隊(duì)等候
# server_name: 開啟局域網(wǎng)訪問(wèn)
# server_port: 指定端口訪問(wèn)
demo.queue(concurrency_count=5,
).launch(share=False, inbrowser=True, server_name="0.0.0.0", server_port=8080)
- 啟動(dòng)
python web_demo.py
Streamlit網(wǎng)頁(yè)
# 同Gradio配置類似,進(jìn)行調(diào)整web_demo2.py
# 啟動(dòng)
streamlit run web_demo2.py
# 此命令會(huì)開啟局域網(wǎng)服務(wù),端口:8501
CLI模式
# 配置一致,調(diào)整cli_demo.py
# 啟動(dòng)
python cli_demo.py
# 命令行中輸入只是并回車即可生成回復(fù),輸入clear:清空對(duì)話歷史;輸入stop:終止程序
API模式
# 安裝fastapi uvicorn依賴
pip install fastapi uvicorn
# 配置api.py
python api.py
# 補(bǔ)充:可設(shè)置ip和端口
# api.py
...
uvicorn.run(app, host='x.x.x.x', port=8000, workers=1)
訪問(wèn)接口: http://x.x.x.x:8000/; 請(qǐng)求方式:POST
特別說(shuō)明: 如果顯存不足,可使用量化方式加載模型
# int4
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).quantize(4).cuda()
# int8
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).quantize(8).cuda()
解決問(wèn)題
在部署過(guò)程中,可能會(huì)遇到一些問(wèn)題。以下是一些常見問(wèn)題和解決方法:
運(yùn)行web_demo.py報(bào)錯(cuò):AssertionError:Torch not compiled with CUDA enabled(torch和CUDA版本不匹配)
# 首先檢查cuda能否使用
python -c "import torch; print(torch.cuda.is_availabled())"
# 返回False, 說(shuō)明torch版本與CUDA不匹配
# 使用指令 nvidia-smi查看CUDA版本,然后到pytorch官方網(wǎng)站下載相應(yīng)的CUDA安裝
# 先卸載原torch
pip uninstall torch
# 安裝指定CUDA版本的torch
pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu121
gcc不是內(nèi)部或外部命令
安裝TDM-GCC,注意勾選 openmp 【TDM-GCC下載】
總結(jié)
通過(guò)按照以上步驟進(jìn)行操作,您將能夠成功在Windows 10上部署ChatGLM2-6B,從而掌握信息時(shí)代的智能對(duì)話能力。這將為您提供一個(gè)有趣而強(qiáng)大的工具,用于與ChatGLM2-6B進(jìn)行智能對(duì)話,并深入了解自然語(yǔ)言處理的潛力。希望本文能幫助您充分利用信息時(shí)代的機(jī)遇,同時(shí)也能夠解決可能出現(xiàn)的問(wèn)題。