Uber机器学习平台Michelangelo

Michelangelo是Uber内部建设的 ML-as-a-service平台。

Uber机器学习平台Michelangelo

让我们先了解通常情况下机器学习的工程流程有哪些:

  1. 数据的管理
  2. 模型的训练
  3. 模型的进化
  4. 模型的部署
  5. 模型的预测
  6. 预测的监控

下面我们介绍Michelangelo,来看看Michelangelo是如何对这些流程进行支持的。

数据的管理

Uber机器学习平台Michelangelo

Offline

Uber的交易和日志数据都存储在HDFS的Data Lake中,通过Spark或者Hive SQL就很容易的对Data Lake中的数据进行计算。Michelangelo提供了运行Spark或者Hive Job的容器,通过它可以提交或触发计算Job。计算的特征结果可以放入Hive中,这样可以让计算的特征数据进行共享,另外也可以将计算结果存入训练数据集存储中,这些数据后面主要用来对模型的训练。

Online

Online部分的数据主要来自于Kafka,通过流式计算提取特征,这些特征一部分存储离线部分的Hive中,用于离线的批量分析。另外,流式计算的结果写入Cassandra中,这部分的存储数据用与、Online部分的快速查询。

模型的训练

Uber机器学习平台Michelangelo

模型训练通过指定需要训练的模型类型(Michelangelo目前已经含有决策树、线性及逻辑回归、无监督模型、时序模型以及深度学习模型,也支持用户自定义上传的模型),同时配置模型的超参数,同时配置数据源信息以及训练所需要的计算资源,就可以完成模型的自动训练,将训练模型序列化存储到模型仓库Cassandra中。

模型的演进

Michelangelo提供模型版本的管理,同时提供各种可视化分析工具,帮助对模型的效果及性能进行分析和调试。

Uber机器学习平台Michelangelo

回归模型效果可视化工具。

Uber机器学习平台Michelangelo

分类模型效果可视化工具。

Uber机器学习平台Michelangelo

树模型效果可视化工具。

Uber机器学习平台Michelangelo

特征效果可视化分析工具。

模型部署

Uber机器学习平台Michelangelo

1)Online部分的部署

Online模型部署到Online预测服务中,这些服务集群通过负载均衡器以及提供RPC调用来完成对单个数据或批量数据的快速预测。

2)Offline部分的部署

Offline部分将模型发布到模型运行容器环境中,然后可以根据需要去触发模型运行。

模型的预测

Uber机器学习平台Michelangelo

预测的监控

Uber机器学习平台Michelangelo

Michelangelo提供预测的监控样例数据对新的模型效果进行监控。


分享到:


相關文章: