搬遷說明
之前在 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)
重新啟動即可,就已經是多卡啟動了!!!