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 T4 | 1878/月 | 大廠服務,但是價錢太貴 |
騰訊雲 | 10核-40G- NVIDIA T4 | 8.68/小時 | 大廠服務,但獨佔1顆GPU價錢略高 |
華為雲 | 8核-32G-16視訊記憶體NVIDIA T4 | 3542/月 | 太貴 |
mistGPU | 8核-32G-24G視訊記憶體NVIDIA 3090 | 4.5/小時 | 缺點:只有1GB免費儲存 |
攬睿星舟 | 10核-40G-24G視訊記憶體NVIDIA 3090 | 1.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