雷鋒網(wǎng) AI 研習(xí)社按:機(jī)器學(xué)習(xí)開(kāi)發(fā)有著遠(yuǎn)超傳統(tǒng)軟件開(kāi)發(fā)的復(fù)雜性和挑戰(zhàn)性,現(xiàn)在,Databricks 開(kāi)源 MLflow 平臺(tái)有望解決其中的四大痛點(diǎn)。 據(jù)雷鋒網(wǎng) AI 研習(xí)社了解,嘗試過(guò)機(jī)器學(xué)習(xí)開(kāi)發(fā)的同學(xué)們都知道,它的復(fù)雜性遠(yuǎn)超軟件開(kāi)發(fā),且伴隨著多種全新的挑戰(zhàn)。在 Databricks,我們與上百家用到機(jī)器學(xué)習(xí)的公司共事,反復(fù)聽(tīng)到如下顧慮:
鑒于上述挑戰(zhàn),毫無(wú)疑問(wèn),為了使機(jī)器學(xué)習(xí)開(kāi)發(fā)像傳統(tǒng)軟件開(kāi)發(fā)一樣,具有魯棒性、可預(yù)測(cè)性以及廣泛傳播,它必須得到大幅進(jìn)化。為此,許多組織都開(kāi)始打造內(nèi)部機(jī)器學(xué)習(xí)平臺(tái)來(lái)管理機(jī)器學(xué)習(xí)生命周期。例如,F(xiàn)acebook,Google 和 Uber 已經(jīng)打造 FBLearner Flow,TFX 和 Michelangelo 來(lái)管理數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練和部署。然而,即使是這些內(nèi)部機(jī)器學(xué)習(xí)平臺(tái),也存在限制:只支持少量?jī)?nèi)置算法或者單個(gè) ML 庫(kù),并且綁定的是自家公司的基礎(chǔ)架構(gòu)。用戶不能輕松利用新的 ML 庫(kù),也很難將自己的研究分享到更廣的社群。 在 Databricks,我們相信有更好的方式來(lái)管理機(jī)器學(xué)習(xí)生命周期,基于此我們推出全新的開(kāi)源機(jī)器學(xué)習(xí)平臺(tái) MLflow。目前,alpha 版本已發(fā)布。 MLflow:全新的開(kāi)源機(jī)器學(xué)習(xí)平臺(tái)MLflow 從現(xiàn)有 ML 平臺(tái)中得到靈感,在設(shè)計(jì)上擁有以下兩項(xiàng)開(kāi)放理念:
MLflow 現(xiàn)在仍為 alpha 版,但是我們認(rèn)為該版本在處理 ML 代碼上已非常有用,我們也樂(lè)意收到大家的反饋。接下來(lái)是對(duì) MLflow 以及相關(guān)組件的詳細(xì)介紹。 組件MLflow alpha 版由以下 3 個(gè)組件構(gòu)成: MLflow TrackingMLflow Tracking 是一個(gè) API,當(dāng)你在運(yùn)行機(jī)器學(xué)習(xí)代碼打算后續(xù)可視化時(shí),它是展示參數(shù)記錄、代碼版本、metric 和輸出文件的 UI。只需幾行簡(jiǎn)單的代碼,你就能夠追蹤參數(shù),metric 和 artifact: 你可以在任何環(huán)境(獨(dú)立腳本、notebook 等)下使用 MLflow Tracking 將結(jié)果記錄到本地文件或者服務(wù)器,之后再將多次操作進(jìn)行對(duì)比。借助網(wǎng)頁(yè) UI,你可以查看和對(duì)比多次輸出。團(tuán)隊(duì)也能使用這些工具來(lái)比較不同用戶的實(shí)驗(yàn)結(jié)果。 圖:MLflow Tracking UIMLflow ProjectsMLflow Projects 提供打包可重用代碼的標(biāo)準(zhǔn)格式。每個(gè) project 只是一個(gè)代碼目錄或 Git 庫(kù),使用一個(gè) descriptor 文件來(lái)說(shuō)明其依賴關(guān)系以及如何運(yùn)行代碼。MLflow Project 由一個(gè)簡(jiǎn)單的 YAML 文件(MLproject)定義。 project 能借助 Conda 環(huán)境來(lái)說(shuō)明其依賴關(guān)系。一個(gè) project 可能存在多個(gè)調(diào)用程序的 entry 點(diǎn)(已經(jīng)指定參數(shù))。你可以使用 mlflow run 命令工具運(yùn)行來(lái)自本地文件或 Git 庫(kù)中的 project。 MLflow 將自動(dòng)為 project 設(shè)置正確的環(huán)境并運(yùn)行。另外,如果你在 project 中使用 Tracking API,MLflow 將會(huì)記住執(zhí)行的 project 版本和參數(shù)。你能夠輕松再運(yùn)行相同的代碼。 project 格式使得分享可重用的代碼變得更加簡(jiǎn)單。配合 MLflow Tracking,MLflow Project 可以為你提供在復(fù)現(xiàn)、擴(kuò)展和實(shí)驗(yàn)中極其好用的工具。 MLflow ModelMLflow Model 是一種約定,它將機(jī)器學(xué)習(xí)模型打包成多種格式(稱為 flavor)。MLflow 提供多種工具來(lái)幫助你部署不同 flavor。每個(gè) MLflow Model 作為一個(gè)目錄保存,包含 arbitrary 文件和一個(gè) MLmodel descriptor 文件(該文件中列出了它適用的 flavor)。 在上面這個(gè)例子中,該模型可與支持 sklearn 和 python_function 模型 flavor 的工具一起使用。 MLflow 提供將常見(jiàn)模型部署到不同平臺(tái)上的工具。例如,任何支持 python_function flavor 的模型都能部署到基于 Docker 的 REST 服務(wù)器或 Azure ML、AWS SageMaker 等云平臺(tái)上。 開(kāi)始使用 MLflow按照 的使用說(shuō)明,或前往 GitHub 查看已經(jīng)發(fā)布的代碼。期待大家的反饋。 下一步MLflow 才剛剛起步,所以還有不少工作要做。除了 project 的更新,我們還計(jì)劃介紹重要的全新組件(如 Monitoring)、庫(kù)集成和我們已經(jīng)發(fā)布的擴(kuò)展功能(如對(duì)更多環(huán)境的支持等)。大家可關(guān)注我們的博客以獲取更多信息。 |
|
來(lái)自: 梧桐音遠(yuǎn) > 《學(xué)習(xí)》