在前面weekly中已经详细描述了非结构化抽取的模型及抽取流水线设计,本次将介绍如何部署模型。本文内容适用于 x86_64 (amd64) 架构 linux 系统安装与部署 gBuilder 模型。如需模型训练功能,需要部署模型的服务器插有 GPU 计算卡(建议 Nvidia V100 或 2080 Ti 及以上配置的计算卡或显卡)。如目标服务器不包含计算卡,也可以用于部署模型推理(inference)服务。
同时本次介绍适用于有可访问公网网络环境的服务器部署。在完成部署之后,模型端点服务可以脱离网络环境离线运行(只要 gBuilder 非结构化模块能通过本机或内网访问到模型端点即可)。
部署包包含三部分内容:
-
模型本体(包含 config.yml 配置文件)
-
预训练模型(需要提前解压并部署在运行模型端点的服务器上)
-
gBuilder SDK (model-runner)
安装python环境
centos7服务器,自带的是python2.7,所以需要升级到python3
-
查看当前python版本
[root@localhost /]# python
Python 2.7.5 (default, Aug 4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
可以看到执行python,默认是2.7
-
安装依赖包
编译python源码时,需要一些依赖包,一次安装完毕
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
-
安装wget
这个包是为了下载python源码
yum install wget
-
下载源码包
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
此处下载的最新的python3.8,如果想安装其他版本,到python官网下载页面下载对应的版本即可。
-
解压安装
# 解压压缩包
tar -zxvf Python-3.8.1.tgz
# 进入文件夹
cd Python-3.8.1
# 配置安装位置
./configure prefix=/usr/local/python3
# 安装
make && make install
如果最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录
[root@localhost /]# cd /usr/local/
[root@localhost local]# ls
bin etc games include lib lib64 libexec python3 sbin share src
-
添加软连接
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
#添加 pip3 的软链接
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
测试一下python3
[root@localhost local]# python3
Python 3.8.1 (default, Apr 28 2023, 11:12:14)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
安装 gBuilder SDK (model-runner)
-
解压
gbuilder_model-runner.zip
文件,在解压后的文件夹中按照 Python 版本选择合适的model_runnner-*.whl
文件,如 Python 3.7 应选择model_runner-0.0.1-cp37-cp37m-linux_x86_64.whl
,小版本无需考虑(例如 Python 3.8.14 依然算 Python 3.8,使用 cp38 的包); -
创建python虚拟环境
#找到pip安装位置 find / -name pip-* #安装python虚拟环境 python3 -m venv gbuilder-env #激活虚拟环境 source gbuilder-env/bin/activate
-
执行命令,安装 whl 包:
python3 -m pip install model_runner-xxxxxxxx.whl
。如果网速特别慢,可以考虑使用国内 pip 镜像,例如:python3 -m pip install model_runner-xxxx -i https://pypi.tuna.tsinghua.edu.cn/simple
。#安装前先更新pip pip install --upgrade pip #安装命令 python3 -m pip install model_runner-xxxx -i https://pypi.tuna.tsinghua.edu.cn/simple 下面给出几个可选的源: - 阿里云 http://mirrors.aliyun.com/pypi/simple/ - 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ - 豆瓣(douban) http://pypi.douban.com/simple/ - 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ - 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
-
验证安装,在安装完成 gBuilder SDK 后,执行命令:
gbuilder -h
,如果看到gBuilder Model Runner Version: 0.0.1
字样的输出,则说明 model runner 安装成功。
准备预训练模型
请创建目录:/home/public/embeddings
,将预训练模型解压放入该目录中,该目录需要包含下列模型目录,且访问权限为 755 及以上:
bert-base-chinese
chinese-bert-wwm-ext
roberta_pretrained
部署模型
-
解压模型,进入模型文件夹;
-
安装模型所需依赖:
python3 -m pip install -r requirements.txt
。如果遇到网络问题,可以按照前文所述的操作使用国内 pip 镜像; -
检查 config.yml 文件,尤其是 port 字段,不能与已有服务重复,否则会导致模型端点启动失败;
-
在模型目录下,执行命令启动端点服务:
gbuilder -c config.yml
,部分模型需要较长时间下载额外资源才能正常启动,若仍然提示某某包不存在,可直接使用python3 install 包名 进行安装,当看到输出gBuilder Model Server Started.
且没报错时,部署成功;
注册模型端点
在 gBuilder 非结构化模块中,非结构化管理 - 模型管理(需要管理员权限)中,注册刚才启动的模型端点。需要注意的是,端点地址需要与刚才注册的模型相匹配,可以按照需求自己写一些端点描述信息, 需要正确设置端点类型(例如,BertNER 模型需要设置为命名实体识别模型)。模型端点接受的标签集合需要与模型相匹配,可以使用“批量管理标签”功能进行批量添加。完成上述内容后,当模型状态显示绿色正常时,说明注册成功。