配置模型
在BML中,Notebook不仅为用户提供了开发环境,而且支持用户将Notebook中开发的模型部署发布到模型仓库以及部署为在线服务。在发布前需要先对已保存的模型配置相应的出入参及数据处理逻辑,从而保证后续模型可被部署。
- 在左侧导航栏中单击“Notebook”。
- 在已创建的“dogcat分类模型”的模型发布列表中,单击待部署版本模型所在行的“模型发布列表”。
在模型发布列表中,单击已保存模型所在行的“配置”,如下所示:
- 模型效果:建议记录准确率、召回率等评估指标,便于后续查阅以及进行多版本模型的对比。
- 模型备注:建议记录模型训练使用的超参数等信息,便于后续查阅。
选择模型文件,如下所示:
可选项为生成当前模型版本时保存的模型文件。
注意事项
- 该脚本用于将选择的模型文件发布成模型服务。
- 用户可以通过修改PredictWrapper的preprocess和postprocess方法来实现自定义的请求预处理和预测结果后处理。
- 当提交该脚本时,系统会根据用户选择的模型文件和脚本内容,来验证是否可以启动模型服务,只有验证通过,才可以进行模型效果校验以及将模型发布到模型仓库。
限制和建议
- CustomException必需存在且是异常类;在自定义的逻辑中,建议当处理进入错误的分支时,抛出CustomException并指定message,指定的message在请求回包中会作为error_msg返回。
- PredictWrapper类必需存在,且必需包含preprocess和postprocess两个方法。
- PredictWrapper的preprocess和postprocess方法,是用户自定义模型服务请求预处理和预测结果后处理的入口。
- preprocess方法接收的第一个参数为用户请求的json字典,对于图像类服务,传入图像的参数key必须是"image",且传入的是图片的base64编码。
系统会根据postprocess方法的返回结果result类型的不同,做以下处理:
- dict: 不作修改
- list: 转换为 {"results": result}
- 其他: 转换为 {"result": result}
- 最终的处理结果可以转换为json字符串,以确保能够正常将结果作为请求回包返回
单击“提交”,完成模型配置。
提交后,系统会自动对当前版本模型进行代码验证,通过后模型会更新为“有效”状态。