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提供預測的監控樣例數據對新的模型效果進行監控。


分享到:


相關文章: