Baize-Chatbot AI部署搭建

? ? ? ? Baize,中文名白澤,中國(guó)古代神話中的瑞獸。能言語(yǔ),通萬(wàn)物之情,知鬼神之事,“王者有德”才出現(xiàn),能辟除人間一切邪氣;
????????自稱可以通過(guò)chatgpt在幾小時(shí)內(nèi)訓(xùn)練一個(gè)你自己的chatbot,并且只需要一張GPU顯卡。目前開(kāi)源的模型有Baize-7B/13B/30B/Healthcare-7B。中文模型Baize Chinese-7B也即將開(kāi)源,值得期待。更多詳細(xì)信息就不做過(guò)多介紹了,直接去github了解。
項(xiàng)目地址:https://github.com/project-baize/baize-chatbot
現(xiàn)將搭建過(guò)程以及注意的問(wèn)題整理如下:
一、環(huán)境配置
操作系統(tǒng):CentOS7.9(虛擬機(jī))? # 如果是windows系統(tǒng)并且有GPU效果會(huì)更好。
CPU:i7-4720HQ? 8核
內(nèi)存:12G? ?(內(nèi)存一定要多多益善,否則各種無(wú)法分配內(nèi)存的報(bào)錯(cuò)。)
SWAP:17G (之所以給swap這么大是因?yàn)槲覂?nèi)存不夠使了。)
Python版本:項(xiàng)目推薦使用python3.8
二、部署
1、克隆項(xiàng)目
[root@Python3 data]# git clone https://github.com/project-baize/baize-chatbot.git
[root@Python3 data]# ls
baize-chatbot
2、安裝依賴
[root@Python3 data]# cd baize-chatbot/? ? # 進(jìn)入項(xiàng)目路徑
[root@Python3 baize-chatbot]# ls
collect.py? data? demo? finetune.py? LICENSE? preprocess.py? README.md? requirements.txt
[root@Python3 baize-chatbot]# cd demo/? ? # 進(jìn)入demo文件夾
[root@Python3 demo]# ls
app_modules? app.py? assets? requirements.txt
[root@Python3 demo]# pip3 install -r requirements.txt? # 開(kāi)始安裝依賴
注意:這個(gè)安裝依賴的過(guò)程中指向國(guó)內(nèi)的源是不行的,需要想辦法讓服務(wù)器出去才行,這個(gè)過(guò)程會(huì)很漫長(zhǎng),也會(huì)遇到超時(shí)的情況,如果安裝哪個(gè)模塊超時(shí)了,可以單獨(dú)將該模塊下載安裝。比如我遇到的,在下載torch-2.0.0-cp38-cp38-manylinux1_x86_64.whl這個(gè)模塊時(shí),總是下到一半就超時(shí)了,這時(shí)候根據(jù)報(bào)錯(cuò)提示的url,我將torch的url復(fù)制到我香港的服務(wù)器上下載下來(lái),然后通過(guò)pip安裝(pip3 install torch-2.0.0-cp38-cp38-manylinux1_x86_64.whl -i https://mirrors.aliyun.com/pypi/simple/)單獨(dú)安裝torch可以指向國(guó)內(nèi)源。
3、啟動(dòng)項(xiàng)目
# 臨時(shí)定義環(huán)境變量
????base_model=decapoda-research/llama-7b-hf?
????lora_model=project-baize/baize-lora-7B
# 啟動(dòng)?
????python3 app.py?$base_model?$lora_model

????????注意:在執(zhí)行啟動(dòng)命令的時(shí)候,需要先關(guān)閉服務(wù)器出外網(wǎng)的代理,否則會(huì)報(bào)SSL HTTPS連接錯(cuò)誤,此時(shí)用國(guó)內(nèi)環(huán)境就可以,在這過(guò)程中需要下載許多依賴以及模型包,會(huì)出現(xiàn)多次斷開(kāi)的情況,沒(méi)事多執(zhí)行幾遍就可以了。直到看到http:/127.0.0.1:7860就算是啟動(dòng)成功了;
三、配置反向代理
????????由于監(jiān)聽(tīng)在服務(wù)器的127.0.0.1:7860,要想外網(wǎng)訪問(wèn)就得通過(guò)nginx代理出去;配置方法如下:

????????注意:nginx需要配置支持websocket連接,否則在向baize提問(wèn)的時(shí)候會(huì)報(bào)如下錯(cuò)誤:

通過(guò)打開(kāi)瀏覽器控制臺(tái)發(fā)現(xiàn)是被websocket給攔截了,所以需要配置nginx支持websocket;

四、訪問(wèn)

????????然后就可以愉快的向你的baize-chatbot提問(wèn)了,然而由于我是用的是CPU,并且還用了swap分區(qū),我就向它問(wèn)了個(gè)Hello,等了快1個(gè)小時(shí)也沒(méi)回答我,這不是模型的問(wèn)題,而是我機(jī)器性能實(shí)在是跟不上。就到這吧,努力搬磚,換新機(jī)器。