|一键启动在线推理服务,轻松实现在线部署,这有个「炼丹」利器


机器之心发布
机器之心编辑部
本文详细介绍了如何使用百度 Paddle Serving 来实现高效的服务化部署 。
常见的深度学习模型开发流程需要经过问题定义、数据准备、特征提取、建模、训练几个过程 , 以及最后一个环节——将训练出来的模型部署应用到实际业务中 。 如下图所示 , 当前用户在训练出一个可用的模型后 , 可以选择如下四种部署方式:
服务器端高性能部署:将模型部署在服务器上 , 利用服务器的高性能帮助用户处理推理业务;
服务化部署:将模型以线上服务的形式部署在服务器或者云端 , 用户通过客户端或浏览器发送需要推理的输入内容 , 服务器或者云通过响应报文将推理结果返回给用户;
移动端部署:将模型部署在移动端上 , 例如手机或者物联网的嵌入式端;
Web 端部署:将模型部署在网页上 , 用户通过网页完成推理业务 。
今天我们就来讲讲如何使用飞桨的服务化部署框架 Paddle Serving 来实现第二种部署方式 。
|一键启动在线推理服务,轻松实现在线部署,这有个「炼丹」利器
本文插图

这时可能会有读者说了:部署?算了吧 , 我直接用 python 也能做推理 , 而且部署太复杂了 , 都是企业才能干的事情 , 与我无关 。
这位客官慢走!今天咱们说的 Paddle Serving 用起来可是非常简单 , 而且部署成功后 , 那可是在线服务 , 可谓「独乐乐不如众乐乐!」 , 不仅自己可以使用它做推理 , 而且还可以让其他人使用手机、电脑等设备通过客户端或浏览器一起使用推理服务 , 瞬间让你人气值爆棚!下面我们就先介绍一种最基础的用法 , 0 代码完成在线服务部署!
0 代码完成在线服务部署
使用 Paddle Serving 部署在线推理服务的过程非常简单 , 主要分为 3 个步骤 , 获取可用于部署在线服务的模型、启动服务端和使用客户端访问服务端进行推理 , 也就是说最多 3 步就可以完成部署 , 是不是和把大象关到冰箱里一样简单?
具体怎么操作 , 咱们以常用的波士顿房价预测模型为例来快速体验一下如何将这个模型部署到服务器上 。 为了方便用户使用 , 飞桨已经把波士顿房价预测等比较常用的模型文件保存在 GitHub 或 Gitee 上 , 欢迎大家下载体验 。
Paddle Serving 部署用例的下载地址:
https://github.com/PaddlePaddle/Serving/tree/develop/python/examples
如果用户想了解如何训练或保存用于部署的模型 , 可以参考如下地址:
https://github.com/PaddlePaddle/Serving/blob/develop/doc/SAVE_CN.md
在获取模型后 , 用户仅需要在服务器上执行如下命令即可部署推理在线服务 。
python -m paddle_serving_server_gpu.serve --model fit_a_line/uci_housing_model --thread 10 --port 9393 --name uci
其中 paddle_serving_server_gpu.serve 是使用 GPU 部署在线服务的模块 , 如果使用 CPU 则是 paddle_serving_server.serve 。 其它参数则分别是模型所在位置、当前服务的并发数量、服务端口和 HTTP 服务的名称 。
在部署成功后 , 用户就可以在自己的设备上使用如下 cURL 命令向服务器请求推理服务 。
curl -H ''Content-Type:application/json'' -X POST -d '{''feed'':[{''x'': [0.0137, -0.1136, 0.2553, -0.0692, 0.0582, -0.0727, -0.1583, -0.0584, 0.6283, 0.4919, 0.1856, 0.0795, -0.0332]}], ''fetch'':[''price'']}' http://X.X.X.X:9393/uci/prediction
其中 “X” 和其后的一串数字是波士顿房价预测这个模型用于推理的 13 个特征值 , 而 “price” 是咱们希望获取的推理结果 。 “X.X.X.X”是服务器的地址 , 而 “9393” 和“uci”分别和前面部署命令中 port 和 name 参数指定的值相对应 。


推荐阅读