在利用 kashgari 训练 BERT+BiLSTM+CRF 模型后,如何将模型预测结果进行部署是一个很重要的问题。按照 kashgari的官方文档 介绍,考虑采用 Tensorflow serving 来做模型预测的部署。
TensorFlow Serving 是一个用于机器学习模型 serving 的高性能开源库。它可以将训练好的机器学习模型部署到线上,使用 gRPC 作为接口接受外部调用。更加让人眼前一亮的是,它支持模型热更新与自动模型版本管理。这意味着一旦部署 TensorFlow Serving 后,就再也不需要为线上服务操心,只需要关心线下的模型训练。
TensorFlow Serving 可以方便我们部署 TensorFlow 模型,可以使用 TensorFlow Serving 的 Docker 镜像来使用 TensorFlow Serving ,安装命令如下:
docker pull tensorflow/serving
接下来将演示如何利用 tensorflow serving 来部署 kashgari 中的模型,项目结构如下:
上图中的 data 是标注的 NER 数据集,即标注出文本中的时间,采用 BIO 标注规则。chinese_wwm_ext 文件夹为哈工大的预训练模型文件。model_train.py 为模型训练的代码,主要功能是完成时间序列标注模型的训练,完整的代码如下:
# -*- coding: utf-8 -*-
# time: 2019-09-12
# place: Huangcun Beijing
import kashgari
from kashgari import utils
from kashgari.