架構MLOps Lakehouse
2022年6月22日 在的見解
在磚,我們已經幫助成千上萬的客戶將機器學習(ML)投入生產。beplay体育app下载地址殼牌在160個活躍的人工智能項目節約數百萬美元;康卡斯特公司管理100年代的機器學習模型與MLflow輕鬆;和許多其他的已經建立了成功的ML-powered解決方案。
在與我們合作之前,許多客戶難以毫升放入生產一個充分的理由:beplay体育app下载地址機器學習操作(MLOps)是具有挑戰性的。MLOps包括共同管理代碼(DevOps),數據(DataOps)和模型(ModelOps),在生產的道路。最常見的和痛苦的挑戰我們所看到的是一個數據之間的差距和ML,經常跨越連接工具和團隊。
為了解決這個挑戰,磚機器學習建立在Lakehouse架構擴大其關鍵benefits-simplicity和開放MLOps。
我們的平Beplay体育安卓版本台簡化了ML通過定義一個以數據為中心的工作流程,結合最佳實踐從DevOps, DataOps, ModelOps。機器學習管道,管道最終數據,數據流經的幾個角色。數據工程師攝取和準備數據;數據科學家構建模型數據;毫升工程師監控模型指標;和業務分析師檢查預測。磚簡化生產機器學習通過使這些數據團隊合作和管理大量的數據在一個平台,而不是孤島。Beplay体育安卓版本例如,我們的特色商店允許你productionize模型和共同特征:數據科學家創建模型的“意識到”他們需要什麼特性,以便毫升工程師可以部署模型與簡單的流程。
MLOps磚方法是建立在開放的行業標準。DevOps,我們與Git和CI / CD工具集成。對於DataOps,我們建立三角洲湖lakehouse,事實上的體係結構開放和高性能數據處理。對於ModelOps,我們建立MLflow模型管理,最流行的開源工具。此基礎上的開放格式和api允許我們的客戶我們的平台適應他們多樣化的需求。beplay体育app下载地址Beplay体育安卓版本例如,顧客集中模型管理beplay体育app下载地址我們MLflow提供可以使用內置的模型或其他服務的解決方案,根據他們的需求。
我們興奮地分享MLOps架構在這個博客。我們將討論共同的挑戰DevOps + DataOps + ModelOps,概述我們的解決方案,並描述我們的參考體係結構。為更深層次的潛水,下載大MLOps書和參加MLOps會談在即將到來的數據+人工智能峰會2022。
共同管理代碼、數據和模型
MLOps是一個一係列流程和自動化管理代碼、數據和模型的兩個目標性能穩定和長期的ML係統的效率。簡而言之,MLOps = DevOps + DataOps + ModelOps。
開發、分期和生產
在他們的商業之旅——或麵向客戶的應用程序,毫升資產(代碼、數據和模型)通過一係列的階段。他們需要開發(“開發”階段),(“登台”階段),測試和部署(“生產”階段)。完成這項工作在執行環境,如磚工作區。
所有above-execution環境、代碼、數據和模型分為開發、分期和刺激。這些分歧可以理解的質量保證和訪問控製。資產開發可能更廣泛訪問,但沒有質量保證。資產在生產中通常關鍵業務,保證最高的但卻有嚴格的測試和質量控製誰可以修改它們。
主要挑戰
上麵的需求很容易爆炸的複雜性:應該如何管理代碼、數據和模型,在開發、測試和生產,在多個團隊,與並發症,如訪問控製、多種技術在玩嗎?我們已經觀察到這種複雜性導致一些關鍵挑戰。
操作流程
不直接翻譯MLOps DevOps的想法。DevOps,執行環境之間的緊密對應,代碼和數據;例如,隻生產環境運行生產級代碼,它隻產生生產級數據。毫升模型複雜的故事,模型和生命周期階段通常異步操作的代碼。你可能想要推動一個新的模型版本將代碼更改之前,反之亦然。考慮以下場景:
- 檢測欺詐性交易,您將開發一個毫升管道通過每周一個模型。你每季度更新代碼,但每周新模式自動訓練,測試和搬到生產。在這個場景中,模型生命周期超過生命周期的代碼。
- 使用大的神經網絡分類文檔,培訓和部署模型通常是一個一次性的過程由於成本。但隨著下遊係統定期改變,您更新服務和監控代碼來匹配。在這個場景中,生命周期比模型生命周期更快的代碼。
協作和管理
MLOps必須平衡數據科學家需要有靈活性和可見性與衝突的需要開發和維護模型毫升工程師控製生產係統。數據科學家需要運行代碼生產數據和日誌,模型,和其他生產係統的結果。毫升工程師需要限製訪問生產係統維護穩定,有時為了保護數據隱私。解決這些需求變得更加具有挑戰性的平台時從多個不相交的縫合技術,不共享一個單一的訪問控製模型。Beplay体育安卓版本
集成和定製
許多工具毫升不設計成開放;例如,一些毫升工具出口模型隻在黑盒JAR文件等格式。許多數據工具並不是專為毫升;例如,數據倉庫要求導出數據毫升工具,提高存儲成本和治理頭疼。當這些組件工具不是基於開放格式和api,是不可能將它們集成到一個統一的平台。Beplay体育安卓版本
簡化MLOps Lakehouse
滿足MLOps的要求,磚建造的方法上Lakehouse架構。Lakehouses統一功能從湖泊和數據倉庫的數據在一個架構中,這種簡化是通過使用開放格式和api,權力這兩種類型的工作負載數據。MLOps類似地,我們提供一個更簡單的結構,因為我們建立MLOps開放數據標準。
之前我們深入了解我們的體係結構方法的細節,我們解釋它在一個較高的水平,突出其主要優點。
操作流程
我們的方法擴展了DevOps想法毫升,定義明確的語義為“移動生產”意味著什麼代碼,數據和模型。現有的DevOps工具和CI / CD流程可以重用為毫升管道管理代碼。特性計算、推理和其他數據管道模型訓練代碼遵循相同的部署過程,簡化操作。指定隻要MLflow獨立模型Registry-permits代碼和模型更新,解決的關鍵挑戰DevOps方法適應毫升。
協作和管理
我們的方法是基於一個統一的平台,支持數據工程,探索性數據科學、生產毫升Beplay体育安卓版本和業務分析,所有支撐共享lakehouse數據層。毫升數據管理在同樣lakehouse架構用於其他數據管道,簡化交接。訪問控製執行環境、代碼、數據和模型允許正確的團隊得到正確的級別的訪問,簡化管理。
集成和定製
我們的方法是基於開放格式和api: Git CI / CD和相關工具,三角洲湖和Lakehouse架構,MLflow。代碼、數據和模型存儲在雲賬戶(訂閱)的開放格式,支持服務與開放的api。下麵描述的參考體係結構可以完全實現在磚,每個模塊可以集成與您現有的基礎設施和定製。例如,模型培訓可能是完全自動化的,部分自動或手動。
參考體係結構為MLOps
現在我們已經準備好審查參考體係結構實現MLOps磚Lakehouse的平台。Beplay体育安卓版本這個架構和磚都是cloud-agnostic,可用在一個或多個雲。因此,這是一個參考體係結構要適應您的特定需求。指大MLOps書更多的討論體係結構和潛在的定製。
概述
這種架構解釋我們的MLOps過程在一個較高的水平。下麵,我們描述了體係結構的關鍵組件和循序漸進的工作流毫升管道環境轉移到生產環境中。
組件
我們定義我們的方法管理的幾個關鍵資產:執行環境、代碼、數據和模型。
執行環境模型和數據在哪裏創建或使用的代碼。環境被定義為磚工作區(AWS,Azure,GCP)開發、分期和生產、工作空間訪問控製用於執行角色的分離。
架構圖,藍色、紅色和綠色區域代表了三個環境。
內環境,每毫升管道圖(小盒)上運行計算實例由我們的集群管理服務(AWS,Azure,GCP)。這些步驟可能通過工作流和工作(手動或自動運行AWS,Azure,GCP)。每一步應該默認情況下使用磚毫升與預裝庫運行時(AWS,Azure,GCP),但是它也可以使用自定義庫(AWS,Azure,GCP)。
代碼定義毫升管道存儲在Git版本控製。毫升管道包括featurization、模型訓練和調優,推理和監控。在高級別上,“移動毫升生產”是指促進代碼從發展分支,通過分段分支(通常是“主要”),為生產使用和發布分支。這符合DevOps允許用戶集成現有的CI / CD的工具。在上麵的架構圖中,這個過程的促進代碼顯示在頂部。
當開發毫升管道、數據科學家可能開始根據需要筆記本和過渡到模塊化的代碼,在磚或ide。磚回購與你的git提供者集成同步筆記本和源代碼與磚工作區(AWS,Azure,GCP)。磚開發工具讓你從ide和連接現有的CI / CD係統(AWS,Azure,GCP)。
數據存儲在一個lakehouse架構雲,所有在你的賬戶。管道featurization,推理和監控都可以當成數據管道。例如,模型監控應該遵循大獎章架構進步的數據從原始查詢事件細化為儀表板總表。在上麵的架構圖中,數據顯示在底部一般“Lakehouse”數據,隱藏部門開發、分期和生產級數據。
默認情況下,原始數據和功能表應該存儲為三角洲表性能和一致性保證。三角洲湖提供了一個開放的、高效的結構化和非結構化數據的存儲層,以優化的三角洲引擎在磚(AWS,Azure,GCP)。特色商店表隻是三角洲表與血統等額外的元數據(AWS,Azure,GCP)。原始文件和訪問控製表,可以根據需要授予或限製。
模型是由MLflow,它允許從任何毫升庫統一管理模式,對於任何部署模式,內部,沒有磚。磚提供了一個管理的版本MLflow訪問控製,可伸縮性數以百萬計的模型和開源的超集MLflow api。
在發展中,MLflow跟蹤服務器跟蹤原型模型和代碼快照,參數,規格,和其他元數據(AWS,Azure,GCP)。在生產中,相同的過程再現性和治理的保存記錄。
連續部署(CD), MLflow模型注冊跟蹤模型部署狀態,並通過人與CD係統集成(AWS,Azure,GCP通過api()和AWS,Azure,GCP)。模型代碼分開注冊服務跟蹤模型生命周期的生命周期。這種鬆散耦合的模型和代碼提供了靈活性更新生產模型沒有代碼更改,反之亦然。例如,自動化培訓管道可以訓練一個更新模型(一個“發展”模式),測試它(“登台”模型)並將其部署(“生產”模型),在生產環境中。
下麵的表總結了“發展”的語義“暫存”和“生產”代碼,數據和模型。
資產 | dev /臨時/刺激的語義 | 管理 | 與執行環境 |
---|---|---|---|
代碼 | Dev:未測試的管道。 暫存:管道測試。 刺激:管道準備部署。 |
毫升管道代碼存儲在Git,分為開發、分期和發布分支。 | 促使環境應該隻運行prod-level代碼。開發環境可以運行任何級別的代碼。 |
數據 | Dev:“開發”數據意味著數據生產的開發環境。 分期(同上,刺激) |
數據位於Lakehouse,根據需要可共享的環境中通過表訪問控製或雲存儲權限。 | 刺激可能是可讀的數據開發或登台環境中,或者它可能是限製來滿足管理需求。 |
模型 | Dev:新模型。 暫存:測試和電流刺激模式。 刺激:模型準備部署。 |
模型存儲在注冊中心MLflow模型,它提供了訪問控製。 | 模型可以通過他們的dev - >分段- >促使生命周期在每個環境。 |
工作流
與體係結構的主要組件上麵介紹的那樣,我們現在可以穿過的工作流毫升管道從開發到生產。
開發環境:數據科學家主要是在開發環境中運作,構建代碼毫升管道包括特性計算、模型訓練、推論,監控等等。
- 創建開發分支:新的或更新的管道是原型的開發分支Git項目通過回購和同步數據磚工作區。
- 探索性數據分析(EDA):數據科學家在交互式探索和分析數據,使用筆記本迭代過程,可視化,磚SQL。
- 功能表刷新:Featurization邏輯封裝為管道可以從功能存儲和讀取其他Lakehouse表和寫入存儲的特性。功能管道可能會從其他毫升管道分別管理,特別是如果他們屬於不同的團隊。
- 模型訓練和其他管道:數據科學家開發這些管道在隻讀生產數據或修訂或合成數據。在這個參考體係結構,管道(不是模型)是提升對生產;看到完整的白皮書在需要的時候為促進模型的討論。
- 提交代碼:新的或更新的ML管道致力於源代碼控製。更新可能會影響單個毫升管道或許多。
登台環境:毫升工程師的登台環境,毫升管道進行測試。
- 合並(拉)要求:合並請求staging分支(通常是“主要”分支)觸發一個持續集成(CI)的過程。
- 單元測試(CI):CI過程首先運行單元測試不與數據或其他服務。
- 集成測試(CI):CI過程然後再運行集成測試測試毫升共同管道。集成測試列車模型可以使用小型數據或幾個迭代速度。
- 合並:如果測試通過,代碼可以被合並到staging分支。
- 減少發布分支:準備好後,代碼可以部署到生產通過削減代碼發布,並觸發CI / CD係統更新的生產工作。
生產環境:毫升工程師自己的生產環境,毫升管道在哪裏部署。
- 功能表刷新:這個管道吸入新的生產數據和刷新功能存儲表。它可以是一個批處理或流的工作計劃,引發或連續運行。
- 模型訓練:模型訓練的完整的生產數據和推到MLflow模型注冊表。培訓可以通過代碼更改或觸發自動化培訓工作。
- 持續部署(CD):CD過程需要新模型(模型注冊階段= None),測試他們(過渡到“階段=分期”),如果成功部署他們(促進他們”階段=生產”)。CD可能實現使用模型注冊中心人和/或您自己的CD係統。
- 推理和服務:模型注冊的生產模式可以部署在多個模式:批處理和高通量流工作用例和低延遲(REST API)的在線服務用例。
- 監控:對於任何部署模式,模型的輸入記錄到三角洲表查詢和預測。從那裏,工作可以漂移監測數據和模型,磚的SQL指示板可以顯示狀態和發送警報。在開發環境中,數據科學家可以授予訪問日誌和指標對生產問題進行調查。
- 培訓:模型可以接受再培訓,對最新的數據通過一個簡單的計劃,可以觸發再培訓或監視工作。
實現MLOps架構
我們希望這個博客給你一種以數據為中心的MLOps如何架構基於Lakehouse模式簡化了代碼的聯合管理,數據和模型。這個博客是短,忽略很多細節。開始實施或改進MLOps架構,我們建議如下:
- 閱讀完整的電子書,它提供了更多的細節和定製工作流步驟和討論的選項。下載它在這裏。
- 參加6月的觀眾數據+人工智能峰會2022會談MLOps。首選包括:
- 高層會談
- 第二天開幕主題演講:創始人和產品經理分享最新的視覺和路線圖為開源和磚項目DS &毫升左右。
- 毫升Lakehouse:將數據和ML一起加速AI用例:磚產品經理和客戶的機器學習在Lakehouse架構概述。
- 潛水在MLOps磚
- MLOps磚:駕車指南:這篇文章的作者將討論的細節電子書指導和演示MLOps過程數據磚。
- MLflow管道:加速MLOps從開發到生產:磚工程師深潛最新MLflow創新。
- 使生產毫升磚特色商店存儲:磚工程師做深度的特性。
- beplay体育app下载地址客戶討論他們毫升平台Beplay体育安卓版本
- 高層會談
- 跟你的磚賬戶團隊,誰能指導您完成討論您的需求,幫助你適應這個參考架構項目,培訓並根據需要參與更多的資源和實現。
更多背景MLOps,我們建議:
- 以數據為中心的ML平台的必要性Beplay体育安卓版本→這篇文章解釋了MLOps需要詳細data-centricity,它穿過一個具體的例子的數據團隊開發一個新的ML-powered應用程序。
- 三個原則來選擇機器學習平台Beplay体育安卓版本→這篇文章是一個級別高於當前的職位。它討論了ML技術選擇平台,給高層指導,和引用相關客戶的故事。Beplay体育安卓版本
- 全麵指導特色商店商店都對自己整個主題→特性。本指南是深潛水。