【奶奶看了都會】雲伺服器部署開源ChatGLM-6B,讓你也能擁有自己的ChatGPT

卷福同學發表於2023-04-16

1.背景

大家好啊,我是小卷。

最近ChatGPT不僅釋出了GPT-4,而且解除封印可以聯網了。不得不讚嘆AI更新迭代的速度真快,都跟不上節奏了。但是大家也注意到了吧,隨著ChatGPT的每次更新,OpenAI對其開放使用的限制也越來越大。之前國內網隨便訪問GPT3,現在動不動就封號

所以,今天就來教大家部署國內清華大學開源的ChatGLM-6B。簡單介紹下,ChatGLM是對話語言模型,對中文問答和對話進行了最佳化。當前訓練模型有62億引數,後續還會推出1300億引數的大模型,期待國內的ChatGLM能越做越強大。

ChatGLM的開源地址:THUDM/ChatGLM-6B

廢話不多說了,直接上效果,以下是由ChatGLM中文對話的結果(不是ChatGPT哦)

(PS:文末給大家準備了ChatGLM的免費體驗地址 和 算力平臺免費體驗方式,一定看到文章結尾哦)

2.準備工作

官方說明ChatGLM對硬體的配置要求至少13G的視訊記憶體

要準備的東西如下:

  • 一臺GPU雲伺服器(16GB視訊記憶體,32G記憶體)
  • 雲伺服器上已安裝好顯示卡驅動cuda和pytorch框架(平臺都有現成的映象,直接安裝即可)

再來說說伺服器廠商的選擇,GPU伺服器比較貴,所以小卷對比了一些大廠和小廠的GPU規格,這裡只看配置符合要求且價錢合適的

廠商配置價錢優勢
阿里雲4核-15G記憶體-16視訊記憶體NVIDIA T41878/月大廠服務,但是價錢太貴
騰訊雲10核-40G- NVIDIA T48.68/小時大廠服務,但獨佔1顆GPU價錢略高
華為雲8核-32G-16視訊記憶體NVIDIA T43542/月太貴
mistGPU8核-32G-24G視訊記憶體NVIDIA 30904.5/小時缺點:只有1GB免費儲存
攬睿星舟10核-40G-24G視訊記憶體NVIDIA 30901.9/小時推薦,配置高且價錢低,現在NVIDIA 3090有特價

我們這裡使用攬睿星舟這個算力平臺的伺服器,價錢就是優勢哦。需要注意的是,GPU伺服器要選按量計費,就是你用的時候按使用時長計費,不用時關掉就不會計費

3.伺服器配置

這一步購買伺服器並安裝環境,比較簡單

3.1註冊使用

開啟攬睿星舟官網註冊地址:https://www.lanrui-ai.com/register?invitation_code=4104

註冊賬號時邀請碼填寫4104,這樣平臺會給你免費充值一筆錢

我們們就可以免費體驗伺服器了。右上角也可以給自己賬戶充值

3.2購買伺服器並安裝映象

在網站的算力市場購買需要的伺服器配置,這裡我選的是3090-24G這款,點選使用按鈕進入映象安裝介面

執行環境映象選公共映象 -> pytorch 直接用最新的就行,然後高階設定裡選擇預訓練模型chatglm-6b(這樣會預先載入chatGLM的模型到伺服器,無需再手動下載)然後建立例項(確保自己賬號裡有足夠的餘額)

等待5分鐘左右,工作空間就建立好了,點選進入 -> JupyterLab 進入伺服器,接下來就準備ChatGLM的安裝就行了

4.部署ChatGLM

4.1Git加速配置

為了避免git clone太慢,提前在命令列設定git學術資源加速

# 執行下面2條命令,設定git學術資源加速
git config --global http.proxy socks5h://172.16.16.39:8443
git config --global https.proxy socks5h://172.16.16.39:8443

後面的步驟中再執行git clone命令就不會卡住了。

要取消git學術加速也簡單,執行下面的命令(所有步驟執行完後再取消哦~)

# 取消git學術資源加速
git config --global --unset https.proxy
git config --global --unset http.proxy

4.2下載ChatGLM原始碼

進入Jupyter的頁面後,可以看到2個目錄,對目錄做下說明:

  • data目錄,存放資料,平臺共享的
  • imported_models目錄,存放預訓練模型,即建立工作空間時你選擇的模型

點選data目錄下,可以看到ChatGLM-6B資料夾,裡面是ChatGLM的原始碼。

如果沒有ChatGLM-6B目錄,那麼我們這一步需要下載程式碼,操作如下:

頁面開啟一個Terminal終端,在Terminal終端執行命令

git clone https://github.com/THUDM/ChatGLM-6B.git

4.3 安裝依賴

1.執行命令切換到ChatGLM-6B的目錄

cd ChatGLM-6B

2.接著修改requirements.txt檔案,把後續所有需要的依賴都加上,下面的配置加在檔案末尾即可,如果檔案裡已加上這3個依賴,無需再修改。

chardet
streamlit
streamlit-chat

3.加完之後save儲存下檔案,如圖

4.接著命令列執行下面命令安裝依賴

# 使用預設映象源下載會超時,這裡用了清華的pip映象源地址
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

這一步可能會執行報錯

ERROR: Could not install packages due to an OSError: Missing dependencies for SOCKS support.

解決方法:切換到root使用者後再執行命令

# 切換root使用者
sudo su

# 重新執行
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

4.4 啟動指令碼修改

  • 因為模型是單獨資料夾儲存的,所以需要修改啟動指令碼中讀模型檔案的程式碼
  • 為了能從公網訪問我們的ChatGLM,需要修改監聽地址為0.0.0.0,埠為27777,這個是攬睿星舟平臺的除錯地址

修改步驟:

1.修改web_demo2.py檔案中的模型路徑,替換為模型的絕對路徑,修改方法如下:

修改前的程式碼

    tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
    model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()

修改後的程式碼

    tokenizer = AutoTokenizer.from_pretrained("/home/user/imported_models/chatglm-6b", trust_remote_code=True)
    model = AutoModel.from_pretrained("/home/user/imported_models/chatglm-6b", trust_remote_code=True).half().cuda()

修改完後ctrl + s儲存一下

4.5啟動ChatGLM

ChatGLM-6B目錄下,命令列執行

python3 -m streamlit run ./web_demo2.py --server.port 27777 --server.address 0.0.0.0

啟動ChatGLM的webui介面

看到http://0.0.0.0:27777字樣說明成功啟動了

5.使用

我們需要從瀏覽器訪問剛部署的服務,回到攬睿星舟平臺

在工作空間頁面上點選自定義服務複製除錯連結,然後把複製的連結在瀏覽器上開啟

然後你就可以在這個頁面開始對話了

注意第一次對話時,程式會載入模型檔案,耗時會比較長,可以從剛才啟動的命令列檢視載入進度

等第一次載入完成後,後面再對話,響應就很快了

6.對話效果

到這一步,所有安裝部署過程就成功完成了,我們來看看效果吧,複製的連結在手機端也能開啟,下面是手機端的效果

7.關閉服務以及重啟服務

  • 因為我們的服務按使用量收費的,所以不用時在頁面上點選停止執行即可

  • 然後想重新執行服務的時候,點工作空間頁面上的啟動按鈕。工作空間重新建立後,進入Jupyter,透過命令列再次啟動
# 進入ChatGLM-6B目錄
cd data/ChatGLM-6B/
# 沒掛系統盤時,要重新安裝依賴
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 啟動服務
python3 -m streamlit run ./web_demo2.py --server.port 27777 --server.address 0.0.0.0

8.免費體驗ChatGLM

小卷給大家準備了2個免費體驗的方式:

(1)透過下面連結註冊平臺賬號,邀請碼寫4104,平臺會免費充點錢,然後可自行部署體驗。

https://www.lanrui-ai.com/register?invitation_code=4104

(2)小卷給大家準備了自己的ChatGLM體驗地址,能用上幾天。獲取方式:公眾號卷福同學發關鍵詞ChatGLM

相關文章