640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

开工第一天,小伙伴们是不是还没有从过年的状态转换过来?今天给大家介绍一个AI Studio新功能,能让大家用自己训练好的模型,轻松生成在线预测服务,通过在线API调用,而且是免费的哦~

大家是不是已经跃跃欲试了呢?那就快到AI Studio亲自体验一下吧。希望这个开年小“福利”,能帮助大家尽快找到开工的感觉。


经常登录AI Studio的朋友可能早就发现——AI Studio改版了:

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

这次升级,AI Studio不光调整了前端页面,还增加了不少新功能,其中就包含我们今天要说的在线部署及预测功能。

功能说明

在线部署与预测为开发者提供训练模型向应用化API转换的功能. 开发者在AI Studio平台通过单机项目NoteBook页面完成模型训练后, 通过创建一个在线服务, 应用模型生成在线API, 使用该API可以直接检验模型效果或实际应用到开发者的私有项目中.目前, 该功能暂时仅对单机项目开放。

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

通过训练任务生成模型文件

  • 在训练任务过程中, 通过调用paddle.fluid.io.save_inference_model`实现模型的保存,保存后的目录需要可以被在线服务使用. 我们以房价预测的线性回归任务为例, 具体代码如下


  • 使用已有模型, 可以通过!wget在Notebook中传输模型文件到环境目录。以房价预测的线性回归模型为例, 通过!wget https://ai.baidu.com/file/4E1D1FCC670E4A5E8441634201658107 -O fit_a_line.inference.model传输文件, 解压后直接被在线服务使用.


创建一个在线服务640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

完成模型训练后, 在单机项目页面点击【创建预测服务】

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

第一步 选择模型文件

  • 勾选模型文件640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

  • 设置主程序, 主程序为paddle.fluid.io.save_inference_model中参数main_program配置的程序, 在房价预测的示例中,我们使用默认参数调用save_inference_model, 因此将__model__文件设置为主程序. 

    640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

    640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

第二步 确认输入输出

填写模型的输入输出参数. 以房价预测的线性回归模型为例(参数参考), 添加参数如下图所示.

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

第三步 制作参数转换器

参数转换器帮助用户转化合法输入并完成数据预处理.

  • 方式一:自定义转换器(Python2.7)(推荐).

输入参数转换器方法


输出参数转换器方法


640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

转换器代码示例, 以房价预测为例.

输入参数转换器:


输出参数转换器:


  • 方式二: 默认参数, 不设置转换器.

    用户的API参数直接传递给模型. 640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

第四步 沙盒部署

用户可以同时部署之多五个沙盒服务, 用来对比模型优化结果.

录入名称点击【生成沙盒】或者点击【暂存】将沙盒保存到草稿箱.

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

测试沙盒服务

对沙盒列表中的沙盒服务进行测试,验证是否配置正确。

第一步 点击【测试】打开测试页面

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

第二步 填写json格式请求参数

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

第三步 点击【发送】检验返回结果

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

部署在线服务

点击【正式部署】部署线上API.

  • 一个项目可以创建五个沙盒服务, 并选择其中一个沙盒服务部署为线上服务.

  • 沙盒服务如果连续超过24小时无调用将自动调整为暂停状态.

  • 线上服务如果连续超过14天无调用将自动调整为暂停状态.

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

调用在线服务

依据API key、服务地址和用户自定义参数, 实现对服务的调用.

请求方式

  • HTTP请求URL: [服务地址] [?] [apiKey=xxx]

  • HTTP请求方法: POST

  • HTTP Body: 用户自定义参数

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

调用示例

以房价预测项目为例.

  • CURL


640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

  • Python


640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

以上,就是今天要给大家介绍的,在线部署及预测功能,大家都来试试吧~!