用Flask部署模型示例
工程
训练出模型后,还要把模型应用起来,所以还需要一些工程工作需要实现。nlp 模型不太适合在本机部署,最终选择了在 GPU 机器上部署模型,然后终端通过 http 请求获取预测文本显示的方案。
后台部署
Flask 是一个 Web 应用程序框架,灵活,轻便,容易上手。本文简单介绍如何利用 flask 启动一个 web 服务,以及如何访问和调用我们的功能接口。首先我们创建一个 conda 环境:
conda create -n flask python=3.6
source activate flask
pip install flask
代码中增加一个接口函数:
from flask import Flask
from flask import request
app = Flask(__name__)
def model_infer(data):
return data
# route把一个函数绑定到对应的 url 上
@app.route("/plugin",methods=['GET',])
def send():
data = request.args.get('data')
# 模型预测逻辑
out = model_infer(data)
return out
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8080, debug=False)
执行 run.py 代码,后台服务开启运行:
客户端请求:
url = http://ip:8080/plugin?data="输入"
其中 model_infer 函数需要实现模型的 infer 前向计算逻辑,从请求中获取 data 字段作为输入,infer 预测的结果列表作为输出返回给调用方。
经过上面的工作,我们已经提供了一个服务接口,返回我们对对联的预测结果。
个性签名:时间会解决一切