chatgpt平替,清华chatglm本地化部署教程(aigc大模型风口,校招找工作必备),包含weiui部署,api部署,对话框部署
ChatGLM-6B 是一個開源的、支持中英雙語的對話語言模型,基于 General Language Model (GLM) 架構(gòu),具有 62 億參數(shù)。結(jié)合模型量化技術(shù),用戶可以在消費級的顯卡上進行本地部署(INT4 量化級別下最低只需 6GB 顯存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技術(shù),針對中文問答和對話進行了優(yōu)化。經(jīng)過約 1T 標識符的中英雙語訓練,輔以監(jiān)督微調(diào)、反饋自助、人類反饋強化學習等技術(shù)的加持,62 億參數(shù)的 ChatGLM-6B 已經(jīng)能生成相當符合人類偏好的回答
為了方便方便我們測試,我們需要進行本地化部署,本教程將進行l(wèi)inux服務器端進行部署,進行三種形式的部署,webui界面,命令行方式,api調(diào)用的方式,方便大家多種方式進行使用
網(wǎng)頁端demo
命令行demo
api調(diào)用
一 .webui部署教程
1 先下載代碼
git clone https://github.com/Akegarasu/ChatGLM-webui2 使用anaconda安裝虛擬環(huán)境
python版本3.10.6
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117 pip install --upgrade -r requirements.txtcuda版本根據(jù)自己的顯卡來選擇,我是使用的3090
3 啟動命令
下面的幾個參數(shù)比較重要
–model-path: chatglm6b模型的地址,建議自己下載,不要使用默認的參數(shù),會自動嚇到cache里面,多機器部署的時候很麻煩
–listen: 監(jiān)聽端口
–port: 訪問的端口號
–share: 是否使用gradio進行部署,建議不用開啟
–precision: fp32(CPU only), fp16, int4(CUDA GPU only), int8(CUDA GPU only) 使用精度,根據(jù)自己部署設(shè)備的顯存來選,int4占用的顯存小一點
–cpu: use cpu
啟動完就可以用了
二 .命令行部署
1 下載代碼
git clone https://github.com/THUDM/ChatGLM-6B.git2 使用anaconda創(chuàng)建虛擬環(huán)境
使用 pip 安裝依賴:pip install -r requirements.txt,其中 transformers 庫版本推薦為 4.27.1,但理論上不低于 4.23.1 即可。3 啟動命令
運行倉庫中 cli_demo.py:python cli_demo.py 程序會在命令行中進行交互式的對話,在命令行中輸入指示并回車即可生成回復,輸入 clear 可以清空對話歷史,輸入 stop 終止程序。三 .api調(diào)用方式
1 下載代碼
git clone https://github.com/imClumsyPanda/ChatGLM-6B-API.git2 使用anaconda創(chuàng)建虛擬環(huán)境
使用 pip 安裝依賴:pip install -r requirements.txt,其中 transformers 庫版本推薦為 4.26.1,但理論上不低于 4.23.1 即可。 首先需要安裝額外的依賴 pip install fastapi uvicorn3 啟動命令
Linux 系統(tǒng)請運行 chatglm_api.pychatglm_api 腳本正常運行后,可以通過如下代碼調(diào)用 ChatGLM-6B 模型來生成對話:
import requests
user_msg, history = “你好”, []
resp = requests.post(f"http://127.0.0.1:8080/predict?user_msg={user_msg}“, json=history)
if resp.status_code == 200:
response, history = resp.json()[“response”], resp.json()[“history”]
print(response)
你好👋!我是人工智能助手 ChatGLM-6B,很高興見到你,歡迎問我任何問題。
user_msg = “晚上睡不著該怎么辦”
resp = requests.post(f"http://127.0.0.1:8080/predict?user_msg={user_msg}”, json=history)
if resp.status_code == 200:
response, history = resp.json()[“response”], resp.json()[“history”]
print(response)
晚上睡不著可能會讓你感到焦慮或不舒服,但以下是一些可以幫助你入睡的方法:
返回數(shù)據(jù)
如果這些方法無法幫助你入睡,你可以考慮咨詢醫(yī)生或睡眠專家,尋求進一步的建議。
默認部署在本地的 8000 端口,通過 POST 方法進行調(diào)用
curl -X POST "http://127.0.0.1:8000" \-H 'Content-Type: application/json' \-d '{"prompt": "你好", "history": []}'得到的返回值為
{"response":"你好👋!我是人工智能助手 ChatGLM-6B,很高興見到你,歡迎問我任何問題。","history":[["你好","你好👋!我是人工智能助手 ChatGLM-6B,很高興見到你,歡迎問我任何問題。"]],"status":200,"time":"2023-03-23 21:38:40" }四 低成本部署
模型量化
默認情況下,模型以 FP16 精度加載,運行上述代碼需要大概 13GB 顯存。如果你的 GPU 顯存有限,可以嘗試以量化方式加載模型,使用方法如下:
進行 2 至 3 輪對話后,8-bit 量化下 GPU 顯存占用約為 10GB,4-bit 量化下僅需 6GB 占用。隨著對話輪數(shù)的增多,對應消耗顯存也隨之增長,由于采用了相對位置編碼,理論上 ChatGLM-6B 支持無限長的 context-length,但總長度超過 2048(訓練長度)后性能會逐漸下降。
如果你的內(nèi)存不足的話,可以直接加載量化后的模型,僅需大概 5.2GB 的內(nèi)存:
私信我獲取chatgpt類對話大模型交流群
總結(jié)
以上是生活随笔為你收集整理的chatgpt平替,清华chatglm本地化部署教程(aigc大模型风口,校招找工作必备),包含weiui部署,api部署,对话框部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓怎么转移到iphone_如何将联系人
- 下一篇: HTML+CSS 简易搜索框