背景
随着业务的发展,需要使用到模型的场景越来越多,实现一个统一的模型管理平台来规范模型处理流程,提供模型从训练、发布到预测的生命周期管理,可以极大地方便算法同学的快速迭代模型。因此,从功能角度看,要求模型管理平台至少需要具备以下能力:
提供模型生命周期管理,包含模型注册、发布、加载、预测、卸载
保障离线训练与在线预测的一致性
平台架构
Model Admin:模型管理后台
Model Management:提供模型的注册、发布、模拟预测等功能
Transformer Management:提供预处理实现在离线机器学习平台(LAI)热加载的功能
File Management:提供预处理文件配置管理功能
Model Service:模型服务
Model API:提供模型预测接口
Feature:获取特征流程
Preprocessing:预处理流程
Prediction:预测流程
Model Loading:提供模型加载/卸载
XGBoost:XGBoost模型加载
TensorFlow:TensorFlow模型加载
PMML:PMML模型格式加载
HDFS:存放由机器学习平台(LAI)训练生成的模型相关文件
MySQL:存放模型管理后台写入模型配置等数据
Redis:存放用户、用户-物品交叉特征
RocksDB:存放物品特征
核心功能
模型注册
为了方便感知线上都有哪些模型,在模型发布前,需要先在平台预先注册模型名,后续机器学习平台(LAI)的模型发布组件需要填写相关的模型名和模型配置key
模型发布
- 模型发布分成两步,首先得先通过机器学习平台(LAI)的模型发布组件进行模型发布(此时的发布只是将模型相关文件发往HDFS)
- 然后再通过模型管理界面,手动点击发布按钮,往指定的环境发布模型(操作成功后模型服务会感知到并进行模型加载)
模型预测
模型被模型服务加载后,可以通过模型管理界面的模拟请求按钮进入模拟请求界面(判断模型是否加载完毕可以通过界面上显示的日期版本(代表的是最新版本),如下图红框,未有版本加载时显示为0),填写请求相关参数即可请求模型预测出结果
未来规划
下沉模型预处理到C++层,优化模型预测性能
模型请求监控
模型部署容器化隔离