Spark團隊開源新作:全流程機器學習平台MLflow

Spark團隊開源新作:全流程機器學習平台MLflow

來自專欄 AI前線20 人贊了文章

本文由 「AI前線」原創(ID:ai-front),原文鏈接:Spark團隊開源新作:全流程機器學習平台MLflow

策劃編輯 | Natalie

作者 | Matei Zaharia

譯者 | 無明

編輯 | Vincent

AI 前線導讀:在昨天開幕的 Spark+AI Summit 大會上,Spark 和 Mesos 的核心作者兼 Databrick 首席技術專家 Matei Zaharia 宣布推出開源機器學習平台 MLflow,這是一個能夠覆蓋機器學習全流程(從數據準備到模型訓練到最終部署)的新平台,旨在為數據科學家構建、測試和部署機器學習模型的複雜過程做一些簡化工作。Matei 表示,研究工作主要圍繞著「如何為開發者提供類似谷歌 TFX、Facebook FBLearner Flow 等平台類似的好處,但是要以開放的方式——不僅在開源的意義上開放,而且是可以使用任何工具和演算法的意義上開放"的想法展開。

Matei 為 MLflow 撰寫了一篇介紹文章,AI 前線對文章進行了編譯。這個全新的機器學習平台到底有何新特性?讓我們來一探究竟。

更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)

每個做過機器學習開發的人都知道機器學習的複雜性,除了軟體開發中常見的問題之外,機器學習還存在很多新的挑戰。作為一家大數據解決方案公司,Databricks 與數百家使用機器學習的公司合作,所以能夠清楚地了解他們的痛點,比如工具太過複雜、難以跟蹤實驗、難以重現結果、難以部署模型。由於這些挑戰的存在,機器學習開發必須變得與傳統軟體開發一樣強大、可預測和普及。為此,很多企業已經開始構建內部機器學習平台來管理機器學習生命周期。例如,Facebook、谷歌和優步分別構建了 FBLearner Flow、TFX 和 Michelangelo 來進行數據準備、模型訓練和部署。但這些內部平台存在一定的局限性:典型的機器學習平台只支持一小部分內置演算法或單個機器學習庫,並且被綁定在公司內部的基礎設施上。用戶無法輕易地使用新的機器學習庫,或與社區分享他們的工作成果。

Databricks 認為應該使用一種更好的方式來管理機器學習生命周期,於是他們推出了 MLflow,一個開源的機器學習平台。

MLflow:開放式機器學習平台

MLflow 的靈感來源於現有的機器學習平台,但以開放性作為主要設計目標:

  1. 開放介面:MLflow 可與任何機器學習庫、演算法、部署工具或編程語言一起使用。它基於 REST API 和簡單的數據格式(例如,可將模型視為 lambda 函數)而構建,可以使用各種工具,而不只是提供一小部分內置功能。用戶可以很容易地將 MLflow 添加到現有的機器學習代碼中,並在組織中共享代碼,讓其他人也能運行這些代碼。
  2. 開源:MLflow 是一個開源項目,用戶和機器學習庫開發人員可以對其進行擴展。此外,利用 MLflow 的開放格式,可以輕鬆地跨組織共享工作流步驟和模型。

Mlflow 目前仍處於 alpha 階段,但它已經提供了一個可用的框架來處理機器學習代碼。接下來將詳細介紹 MLflow 和它的組件。

MLflow 的組件(alpha 版)

MLflow 的 alpha 版本包含了三個組件:

MLflow 的跟蹤組件支持記錄和查詢實驗數據,如評估度量指標和參數。MLflow 的項目組件提供了可重複運行的簡單包裝格式。最後,MLflow 的模型組件提供了用於管理和部署模型的工具。

MLflow 的跟蹤組件

MLflow 的跟蹤組件提供了一組 API 和用戶界面,用於在運行機器學習代碼時記錄參數、代碼版本、度量指標和輸出文件,以便在後續進行可視化。通過幾行簡單的代碼就可以跟蹤參數、度量指標和文件:

用戶可使用跟蹤組件(通過獨立腳本或 notebook)將結果記錄到本地文件或伺服器上,然後通過 Web UI 來查看和比較多次運行結果。團隊也可以使用這些工具來比較不同用戶的運行結果。

MLflow 的項目組件

MLflow 的項目組件提供了一種用於打包可重用代碼的標準格式。項目可以是一個包含代碼的目錄或 Git 倉庫,並使用一個描述符文件來描述依賴關係以及如何運行代碼。MFflow 項目通過一個叫作 MLproject 的 YAML 文件進行定義。

項目可以通過 Conda 來指定依賴關係。一個項目可能包含多個帶有命名參數的運行入口。用戶可以使用 mlflow run 命令行工具來運行項目,項目代碼可以在本地,也可以在 Git 倉庫里:

MLflow 將自動為項目設置合適的環境並運行它。另外,如果在項目中使用了 MLflow Tracking API,MLflow 將記住執行過的項目版本(即 Git 的提交操作)和參數,這樣就可以很輕鬆地重新運行完全相同的代碼。

無論是在企業還是在開源社區,項目格式讓共享可重用代碼變得更加容易。結合 MLflow 的跟蹤組件,MLflow 項目為可重現性、可擴展性和實驗提供了很好的工具。

MLflow 的模型組件

MLflow 的模型組件提供了一種將機器學習模型打包成多種格式的規範,這些格式被稱為「flavor」。MLflow 提供了多種工具來部署不同 flavor 的模型。每個 MLflow 模型被保存成一個目錄,目錄中包含了任意模型文件和一個 MLmodel 描述符文件,文件中列出了相應的 flavor。

在這個例子中,模型可以與支持 sklearn 或 python_function 的工具一起使用。

MLflow 提供了將常見模型部署到不同平台的工具。例如,任何支持 python_function 的模型都可以部署到基於 Docker 的 REST 伺服器或雲平台上(如 Azure ML 和 AWS SageMaker),也可以作為 Apache Spark 的用戶定義函數,用於進行批量和流式推斷。如果使用 Tracking API 將 MLflow 模型輸出為文件,MLflow 還會自動記住它們是由哪個項目運行生成的。

MLflow 入門

要使用 MLflow,請按照 mlflow.org 上的說明進行操作,或使用 Github 上的 alpha 版代碼。

在 Databricks 上託管 MLflow

如果要使用 MLflow 的託管版本,可以在 databricks.com/mlflow 註冊。Databricks 上的 MLflow 與 Databricks Unified Analytics 平台集成,包括 Notebooks、Jobs,Databricks Delta 和 Databricks 安全模型,為用戶提供了安全、生產就緒的方式大規模地運行現有的 MLflow 作業。

後續計劃

MLflow 剛剛展露頭角,因此還有很多事情要做。後續計劃引入新組件(如監控)、與其他庫的集成以及擴展已發布的組件(例如支持更多環境類型)。

MLflow 官網

mlflow.org

MLflow GitHub 地址

github.com/databricks/m

英文原文

databricks.com/blog/201

今日薦文

9400億美金市值的蘋果,在AI賽場已經落後了


課程推薦

人工智慧時代,如何快速且有效地入門?需要哪些數學基礎?怎樣掌握機器學習主要方法?

工學博士、副教授王天一在他的《人工智慧基礎課》里,會帶你鞏固人工智慧基礎,梳理人工智慧知識框架,了解人工智慧的最佳應用場景。新註冊用戶,立減 30 元。

現在訂閱,有以下福利:

  1. 限時優惠¥58,6 月 9 日會上漲到¥68

  2. 每邀請一位好友購買,你可獲得 ¥12 現金返現,好友也將獲得 ¥6 返現。多邀多得,上不封頂,立即提現。

t.cn/R30nlbz (二維碼自動識別)

面向17W+AI愛好者、開發者和科學家,每周一節免費AI公開課,囊括上萬人的AI學習社群,提供最新AI領域技術資訊、一線業界實踐案例、搜羅整理業界技術分享乾貨、最新AI論文解讀。回復「AI前線」、「TF」等關鍵詞可獲取乾貨資料文檔。

如果你希望看到更多類似優質報道,記得點個贊再走!┏(^0^)┛


推薦閱讀:

矽谷之路54:深入淺出Spark(七)如何排序100TB
2018-03-16:ubuntu安裝pyspark
矽谷之路34:深入淺出Spark(一)什麼是Spark
Spark 分區?
hadoop 和spark如何系統的學習?

TAG:分散式系統 | Spark | 人工智慧 |