Baize-Chatbot AI部署搭建

Baize,中文名白泽,中国古代神话中的瑞兽。能言语,通万物之情,知鬼神之事,“王者有德”才出现,能辟除人间一切邪气;
自称可以通过chatgpt在几小时内训练一个你自己的chatbot,并且只需要一张GPU显卡。目前开源的模型有Baize-7B/13B/30B/Healthcare-7B。中文模型Baize Chinese-7B也即将开源,值得期待。更多详细信息就不做过多介绍了,直接去github了解。
项目地址:https://github.com/project-baize/baize-chatbot
现将搭建过程以及注意的问题整理如下:
一、环境配置
操作系统:CentOS7.9(虚拟机) # 如果是windows系统并且有GPU效果会更好。
CPU:i7-4720HQ 8核
内存:12G (内存一定要多多益善,否则各种无法分配内存的报错。)
SWAP:17G (之所以给swap这么大是因为我内存不够使了。)
Python版本:项目推荐使用python3.8
二、部署
1、克隆项目
[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/ # 进入项目路径
[root@Python3 baize-chatbot]# ls
collect.py data demo finetune.py LICENSE preprocess.py README.md requirements.txt
[root@Python3 baize-chatbot]# cd demo/ # 进入demo文件夹
[root@Python3 demo]# ls
app_modules app.py assets requirements.txt
[root@Python3 demo]# pip3 install -r requirements.txt # 开始安装依赖
注意:这个安装依赖的过程中指向国内的源是不行的,需要想办法让服务器出去才行,这个过程会很漫长,也会遇到超时的情况,如果安装哪个模块超时了,可以单独将该模块下载安装。比如我遇到的,在下载torch-2.0.0-cp38-cp38-manylinux1_x86_64.whl这个模块时,总是下到一半就超时了,这时候根据报错提示的url,我将torch的url复制到我香港的服务器上下载下来,然后通过pip安装(pip3 install torch-2.0.0-cp38-cp38-manylinux1_x86_64.whl -i https://mirrors.aliyun.com/pypi/simple/)单独安装torch可以指向国内源。
3、启动项目
# 临时定义环境变量
base_model=decapoda-research/llama-7b-hf
lora_model=project-baize/baize-lora-7B
# 启动
python3 app.py $base_model $lora_model

注意:在执行启动命令的时候,需要先关闭服务器出外网的代理,否则会报SSL HTTPS连接错误,此时用国内环境就可以,在这过程中需要下载许多依赖以及模型包,会出现多次断开的情况,没事多执行几遍就可以了。直到看到http:/127.0.0.1:7860就算是启动成功了;
三、配置反向代理
由于监听在服务器的127.0.0.1:7860,要想外网访问就得通过nginx代理出去;配置方法如下:

注意:nginx需要配置支持websocket连接,否则在向baize提问的时候会报如下错误:

通过打开浏览器控制台发现是被websocket给拦截了,所以需要配置nginx支持websocket;

四、访问

然后就可以愉快的向你的baize-chatbot提问了,然而由于我是用的是CPU,并且还用了swap分区,我就向它问了个Hello,等了快1个小时也没回答我,这不是模型的问题,而是我机器性能实在是跟不上。就到这吧,努力搬砖,换新机器。