跳轉到主要內容
工程的博客

引入MLflow:一個開放源碼的機器學習平台Beplay体育安卓版本

分享這篇文章

人都試圖做機器學習的發展知道它是複雜的。超出一般的問題在軟件開發,機器學習(ML)開發帶有多個新的挑戰。在磚,我們與數百家公司使用毫升,我們一再聽到同樣的問題:

  1. 有無數的工具。數以百計的開源工具覆蓋毫升生命周期的每個階段,從數據準備、模型訓練。但是,與傳統的軟件開發,團隊為每個階段選擇一個工具,在毫升你通常想嚐試每一個可用的工具(如算法)是否能改善結果。毫升開發者因此需要使用和productionize數十名庫。
  2. 很難跟蹤實驗。可配置參數的機器學習算法有很多,不管你獨自工作或團隊,很難跟蹤哪些參數,代碼和數據進入每個實驗產生一個模型。

  3. 很難繁殖的結果。沒有詳細的跟蹤,團隊常常無法得到相同的代碼工作。無論你是數據科學家訓練代碼傳遞給一個工程師用於生產,或者你回到你的過去的工作來調試問題,毫升的複製步驟工作流程是至關重要的。

  4. 很難部署毫升。移動模型生產可以挑戰由於過多的部署工具和環境需要運行(例如REST服務,批量推理,或移動應用程序)。沒有標準的方法將模型從任何圖書館的這些工具,創建一個新的風險隨著每一個新的部署。

因為這些挑戰,很明顯,毫升發展演變成為健壯,可預測和廣泛,傳統的軟件開發。為此,許多組織已經開始建立內部機器學習的平台Beplay体育安卓版本在ML生命周期管理。例如,Facebook、穀歌和超級FBLearner流,的敏感性,米開朗基羅管理數據準備、模型訓練和部署。然而,即使這些內部平台是有限的:典型的ML平台隻支持少量的Beplay体育安卓版本內置算法,或單一毫升庫,他們與每個公司的基礎設施。用戶無法方便地利用新的ML庫,或與更廣泛的社區分享他們的工作。

在磚,我們相信應該有更好的方式來管理毫升生命周期,我們興奮的宣布MLflow:機器學習一個開源平台Beplay体育安卓版本今天,我們釋放α

機器學習MLflow:一個開放的平台Beplay体育安卓版本

MLflow靈感來源於現有的ML平台,但它被設計成Beplay体育安卓版本開放在兩個感覺:

  1. 開放的接口:MLflow設計工作與任何毫升庫,算法,部署工具或語言。它是圍繞REST api和簡單的數據格式(比如,一個模型可以被視為一個lambda函數),可以使用各種各樣的工具,而不是隻提供少量的內置功能。這也使得它容易MLflow添加到您的現有的立即毫升代碼你可以從中受益,並共享代碼庫,其他人在您的組織可以使用任何毫升。
  2. 開源:我們釋放MLflow作為開源項目圖書館用戶和開發人員可以擴展。此外,MLflow開放格式很容易共享工作流步驟和模型如果你希望開源的代碼組織。

Mlflow仍然是目前在α,但我們相信,它已經提供了一個有用的框架與ML代碼,我們很樂意聽到你的反饋。在這篇文章中,我們將詳細介紹MLflow和解釋其組件。

MLflow Alpha版本的組件

第一,alpha版本MLflow有三個組件:

MLflow組件

MLflow跟蹤

MLflow跟蹤是一個API和UI用於日誌記錄參數,代碼版本,指標和輸出文件運行時機器學習代碼後可視化。通過幾行簡單的代碼,您可以跟蹤參數,指標,和工件:

進口mlflow#日誌參數(鍵-值對)mlflow.log_param (“num_dimensions”,8)mlflow.log_param (“正規化”,0.1)#日誌一個度量;在整個運行指標可以更新mlflow.log_metric (“準確性”,0.1)mlflow.log_metric (“準確性”,0.45)#日誌構件(輸出文件)mlflow.log_artifact (“roc.png”)mlflow.log_artifact (“model.pkl”)

您可以使用MLflow跟蹤在任何環境中(例如,一個獨立的腳本或一個筆記本)記錄結果本地文件或一個服務器,然後比較多個運行。使用web UI,您可以查看和比較多個運行的輸出。團隊還可以使用工具來比較結果從不同的用戶:

MLflow跟蹤界麵
MLflow跟蹤界麵

MLflow項目

MLflow包裝可重用數據科學項目提供一個標準格式的代碼。每個項目是一個簡單的代碼或Git存儲庫目錄,並使用了一個描述符文件指定其依賴關係以及如何運行代碼。MLflow項目被定義為一個簡單的YAML文件MLproject

名稱:我的項目conda_env: conda.yamlentry_points:主要:參數:data_file:路徑正則化:{類型:浮動,默認的:0.1}命令:“python火車。py - r{正規化}{data_file}”驗證:參數:data_file:路徑命令:“python驗證。py {data_file}”

項目通過Conda環境可以指定它們的依賴項。一個項目可能會有多個入口點,用於調用運行時,命名參數。您可以運行項目使用mlflow運行命令行工具,從本地文件或者從Git存儲庫:

mlflow運行例子/項目- pα=0.5mlflow git運行@githubcom:磚/ mlflow-example.git - pα=0.5

MLflow項目將自動設置正確的環境並運行它。此外,如果您使用MLflow跟蹤API的一個項目,MLflow會記得這個項目版本(即Git commit)和執行任何參數。您可以輕鬆地重新運行相同的代碼。

項目的格式很容易分享可再生的數據科學代碼,是否在你的公司或在開源社區。再加上MLflow跟蹤,MLflow項目為再現性提供了很好的工具,可擴展性和實驗。

MLflow模型

MLflow模型是公約包裝機器學習模型在多種格式稱為“口味”。MLflow提供了各種各樣的工具來幫助您部署不同的口味的模型。每個MLflow模型保存為包含任意文件和一個目錄MLmodel描述符文件,列出可用於的味道。

time_created: 2018 - 02 - 21 - t13:21:34.12口味:sklearn:sklearn_version: 0.19.1pickled_model: model.pklpython_function:loader_module: mlflow.sklearnpickled_model: model.pkl

在這個例子中,該模型可以用於支持的的工具sklearnpython_function模型的味道。

MLflow提供工具部署許多常見的模型類型多樣化的平台。Beplay体育安卓版本例如,任何模型支持python_function味道可以部署到服務器Docker-based休息,和亞馬遜等雲平台Azure毫升SageMaker,作為一個在Apache用戶Beplay体育安卓版本定義函數火花批處理和流推理。如果你輸出MLflow模型作為工件使用跟蹤API, MLflow也會自動記住哪個項目並運行它們來自。

開始使用MLflow

與MLflow開始,按照說明mlflow.org或查看alpha版本代碼Github。我們很高興聽到你的反饋的概念和代碼!

主持MLflow磚上

如果你想運行托管版本MLflow,現在我們也接受注冊www.eheci.com/product/managed-mlflow。MLflow在磚與完整的磚集成統一的分析平台,包括筆記本電腦,工作,Beplay体育安卓版本磚δ磚的安全模型,使您能夠運行您的現有MLflow工作在一個安全的規模,生產使用的方式。

接下來是什麼?

我們與MLflow剛剛開始,所以有很多。除了更新項目,我們計劃介紹主要的新組件(例如,監控)、庫集成和擴展我們已經發布了(例如,支持更多的環境類型)。請繼續關注在我們的博客為更多的信息。

查看MLflow火花+人工智能峰會主題

免費試著磚

相關的帖子

看到所有數據科學和毫升的帖子
Baidu
map