LLM-01 大模型 本地部署執行 ChatGLM2-6B-INT4(6GB) 簡單上手 環境配置 單機單卡多卡 2070Super8GBx2 打怪升級!

武子康發表於2024-07-21

搬遷說明

之前在 CSDN 上發文章,一直想著努力發一些好的文章出來!這篇文章在 2024-04-17 10:11:55 已在 CSDN 釋出

寫在前面

其他顯示卡環境也可以!但是最少要有8GB的視訊記憶體,不然很容易爆。
如果有多顯示卡的話,單機多卡也是很好的方案!!!

背景介紹

目前借到一臺演算法組的伺服器,我們可以檢視一下目前顯示卡的情況

nvidia-smi

PS: (後續已經對CUDA等進行了升級,可看我的其他文章,有升級的詳細過程)

專案地址

官方的地址:

# 需要克隆專案
https://github.com/THUDM/ChatGLM2-6B
# 模型下載(如果你沒有科學,麻煩一點需要手動下載)
https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/?p=%2Fchatglm2-6b-int4&mode=list
# 模型下載(如果可以科學,官方下載的體驗是比較舒適的)
https://huggingface.co/THUDM/chatglm2-6b-int4

我們需要對專案進行克隆,同時需要下載對應的模型,如果你有科學,可以忽略模型的下載,因為你啟動專案的時候它會自己下載。

配置要求

根據官方的介紹,可以看到對應的顯示卡要求,根據我的情況(2070Super 8GB * 2),我這裡選擇下載了INT4的模型。

安裝Pyenv

由於很多不同的專案隊python版本的要求不同,同時對版本的要求也不同,所以你需要配置一個獨立的環境。
這裡你可以選擇 Conda,也可以選擇pyenv,或者docker。我選的方案是:pyenv

# pyenv 官方地址
https://github.com/pyenv/pyenv

安裝完成之後,記得配置一下環境變數:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

如果你和我一樣使用的是 ZSH 的話:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

測試Pyenv

# 檢視當前系統中的Python情況
pyenv versions

使用Pyenv

# Python版本
pyenv local 3.10
# 獨立環境
python -m venv env
# 切換環境
source env/bin/active
# cd 到專案目錄
# 安裝Python庫 pip install - requirements.txt

你將看到類似的內容,我這裡在 MacBook 上測試的:

安裝依賴

# Python版本
pyenv local 3.10
# 獨立環境
python -m venv env
# 切換環境
source env/bin/active
# cd 到專案目錄
# 安裝Python庫 pip install - requirements.txt

注意: 這是兩個部分:(這是我伺服器的配置,你也要搞清楚你的內容放置在哪裡) 如下圖:

  • 專案資料夾 /home/jp/wzk/chatglm2-6b-int4/ChatGLM2-6B
  • 模型資料夾 /home/jp/wzk/chatglm2-6b-int4/chatglm2-6b-int4

專案資料夾:

模型資料夾

啟動專案

在專案的目錄下,我們利用現成的直接啟動:web_demo.py

# 先開啟看一眼
vim web_demo.py

model_path 是你下載的模型資料夾(如果你不是手動下載的話,可以不改,這樣的話會自動下載)

PS: 此時需要到最後一行,修改對外暴露服務

# 程式碼修改為這樣
demo.queue().launch(server_name="0.0.0.0", server_port=7861, share=False, inbrowser=True)

退出儲存,我們啟動服務:

python web_demo.py

使用專案

完成上述的操作,稍等後看到:

根據你的伺服器IP和埠,訪問即可:

多卡啟動

由於單卡很容易爆 OOM,正好這裡是 2 * 2070Super 8GB,我們簡單的修改一下程式碼,就可以將模型分到兩張顯示卡中。
官方給的方案是,透過accelerate庫來啟動。

修改剛才的 web_demo.py,詳細位置請看圖:

# GPU 數量修改為2 
model = load_model_on_gpus(model_path, num_gpus=2)

重新啟動即可,就已經是多卡啟動了!!!

相關文章