靴子在Walgreens MLOps聯盟磚Lakehouse平台Beplay体育安卓版本
標準化毫升實踐Lakehouse:引入Walgreens MLOps加速器
在這個博客中,我們引入MLOps日益增長的重要性和MLOps加速器聯合Walgreens靴子聯盟(WBA)和磚。MLOps加速器設計標準化毫升實踐,減少時間productionize ML模式,提高數據科學家之間的合作和ML工程師,在人工智能產生業務價值和投資回報。在這篇文章中,我們解釋中的應用在磚MLOps Lakehouse平台Beplay体育安卓版本,WBA自動化以及standarizes MLOps,如何複製他們的成功。
MLOps是什麼和為什麼它是必要的嗎?
MLOps, DevOps的成分+ DataOps + ModelOps,是一組流程和自動化,幫助組織管理代碼,數據和模型。
但把MLOps付諸實踐帶來了挑戰。在機器學習(ML)係統、模型、代碼和數據都隨時間而變化,它可以創建在刷新時間表和ML管道摩擦;與此同時,模型性能可能會隨時間而降低數據漂移要求重新訓練模型。此外,作為數據科學家不斷探索數據集和應用各種方法來改善他們的模型,他們可能會發現新的功能或其他模型的家庭更好的工作。然後他們更新代碼並重新部署它。
一個成熟MLOps係統需要一個健壯的和自動持續集成/持續部署(CI / CD)係統測試和部署毫升管道,以及連續培訓(CT)和連續監測(CM)。監測管道標識模型性能下降,可以觸發自動重新訓練。
MLOps最佳實踐允許數據科學家迅速探索和實現新的想法在特性工程模型架構,和hyperparameters——並自動構建、測試和部署新管道的生產環境。一個健壯的係統和自動MLOps auguments AI倡議組織思想的商業價值提升並生成數據和ML的投資回報。
和Lakehouse WBA加速毫升&分析好嗎
沃爾格林,一個最大的零售藥店,是主要的健康和幸福企業,轉換到lakehouse架構作為毫升和分析需要先進。Azure磚已成為選擇的數據平台,而三角洲湖是策劃和語義數據來源用於毫升,Beplay体育安卓版本用例分析和報告。
除了他們的技術,提供創新的方法也發生了變化。在轉換之前,每個業務單元獨立負責毫升和分析。作為轉換的一部分,沃爾格林靴子聯盟(WBA),在IT組織,建立一個集中的組織激活數據,包括毫升和分析。這個平台可Beplay体育安卓版本以幫助productionize業務的需要,加快將發現轉化為可操作的生產工具。
在工作中有很多的例子Lakehouse在Walgreens解鎖毫升和分析的能力。例如,RxAnalytics有助於預測庫存水平和換取個人藥物類別和商店。這是至關重要的為平衡成本和客戶的需求。也有類似的ML應用在零售方麵與零售營運資本等項目。
WBA的用例跨製藥、零售、金融、市場營銷、物流等等。這些用例都是三角洲的中心湖和磚。他們的成功讓我們共建一個MLOps加速器建立跨組織的標準化毫升開發最佳實踐,從項目初始化生產減少時間超過1年的幾周。我們將深入WBA MLOps加速器的設計選擇next。
了解部署代碼模式
有兩個主要MLOps部署模式:“部署模型”和“部署代碼”。For the deploy model, model artifacts are promoted across environments. However, this has several limitations, which大MLOps書詳細概述。相比之下,部署代碼使用代碼作為真理的唯一來源為整個ML體係,包括資源配置和ML管道代碼,並促進跨環境代碼。部署代碼依賴於CI / CD的自動化測試和部署毫升管道(即featurization、培訓、推理和監視)。這導致模型通過訓練適應管道在每個環境中,如下圖所示。總之,將代碼部署到部署毫升管道代碼可以自動重新訓練和部署模型產生的管道。
監測管道中漂移分析數據和模型在線/離線數據之間的生產或傾斜。數據漂移或模型性能降低時,觸發模型再培訓,whichin本質隻是重新運行培訓管道從相同的代碼庫更新數據集,導致模型的一個新版本。建模時代碼或更新部署配置,把請求發送和觸發器CI / CD工作流。
如果一個組織限製數據科學家的訪問從開發到生產數據或登台環境,部署代碼允許培訓生產數據,同時尊重訪問控製。數據科學家的陡峭的學習曲線和相對複雜的存儲庫結構是缺點,但在長期采用部署代碼模式將促進協作,確保無縫地自動化,可再生的過程productionize毫升管道。
展示這個部署代碼模式及其效益,我們將穿過WBA MLOps加速器和實現基礎設施的部署,蔡先生工作流和ML管道。
WBA MLOps加速器概述
我們先去了堆棧。WBA發展內部工具部署大規模基礎設施和提供數據磚工作區。WBA利用Azure DevOps和Azure回購CI / CD和版本控製,分別。MLOps加速器,聯合開發由磚和WBA是一個存儲庫,可以分叉的部署和集成數據磚工作區筆記本,圖書館,工作,init腳本等等。它提供了預定義的ML步驟,筆記本驅動毫升管道、CI / CD和預構建的Azure管道,隻需要升級配置文件來運行的。在DataOps方麵,我們使用三角洲和湖磚特性的商店功能管理。建模實驗與MLflow跟蹤和管理。此外,我們采用磚預覽功能,模型監測,監測數據漂移在生產環境中,推廣實驗平台。Beplay体育安卓版本
加速器的存儲庫結構,描述下麵,有三個主要組件:毫升管道、配置文件和CI / CD工作流。加速器存儲庫同步到每個磚工作區與CI / CD在相應的環境中工作流。WBA使用Prodfix開發工作,QA測試,督促生產。Azure支持資源和其他基礎設施和由WBA的內部管理工具套件。
MLOps用戶之旅
一般來說,有兩種類型的團隊/角色參與整個工作流程:毫升工程師和科學家的數據。我們將指導您完成以下部分用戶的旅程。
開始一個項目,毫升工程師將初始化毫升項目資源和存儲庫通過部署基礎設施管道,分叉MLOps加速器庫毫升項目存儲庫,設置CI / CD配置和共享存儲庫與數據科學團隊。
一旦準備好項目存儲庫,數據科學家可以立即開始迭代ML模塊和筆記本。提交和PRs,代碼合並將觸發CI / CD運動員對於單元測試和集成測試,並最終部署。
毫升管道部署後,毫升工程師可以更新部署配置,調度等一批推理工作和集群設置,通過提交更改配置文件和合並PRs。就像代碼更改,修改配置文件觸發相應的CI / CD工作流重新部署資產磚工作區。
Lakehouse基礎設施管理
MLOps加速器建立在基礎設施係統,創建、更新和配置所有Azure和磚資源。在本節中,我們將介紹係統執行用戶旅途的第一步:初始化項目資源。使用正確的工具,我們可以自動配置Azure和磚資源為每毫升項目。
編排Azure資源
在WBA,所有部署到Azure由一個集中的團隊,創建所需的Azure資源管理(ARM)模板和參數文件。他們還授權訪問和維護這些模板部署管道。
WBA建立了FastAPI microservice稱為部署API使用特定於環境的YAML配置文件收集所有項目的資源需求和它的配置在一個地方。部署API跟蹤YAML配置是否發生了變化,因此,是否需要更新的資源。每個資源類型可以使用部署後配置鉤子,可包括額外的自動化增強中央的活動部署管道。
配置數據磚
使用部署API部署後磚工作空間,它是一張白紙。以確保磚工作區配置根據項目的需求,部署API使用部署後配置鉤,發送的配置數據磚工作區微係統,執行更新。
配置一個磚工作空間的第一個方麵是同步的用戶和組的訪問通過磚的磚SCIM集成。微係統執行SCIM集成通過添加和刪除用戶根據他們的會員組配置為給定的訪問。它給每一組細粒度的訪問權限,例如集群創建特權和磚SQL。除了SCIM集成和權限,微係統可以創建默認集群政策,自定義集群政策,創建集群,為內部安裝python庫定義init腳本。
連接這些點
部署API,磚配置自動化和MLOps加速器一起工作在一個相互依存的方式所以項目可以進行迭代,測試和productionize迅速。一旦基礎設施部署,毫升工程師填寫的信息(如工作區URL、用戶組、存儲帳戶名稱)在項目存儲庫配置文件。這些信息然後被預定義的CI / CD管道和毫升資源定義。
自動化部署Azure的管道
下麵是code-promoting過程的概述。git分支風格和CI / CD工作流固執己見,但每個用例可調。由於在WBA不同性質的項目,每個團隊的操作方式可能略有不同。他們可以自由地選擇最適合其目的的加速器的組件和定製他們的項目分叉的加速器。
促進工作流代碼
項目所有者首先定義一個生產部門(“主”分支在我們的例子中架構)。數據科學家做所有他們的ML開發在非生產部門Prodfix工作區。在發送之前PRs“大師”分支,數據科學家的代碼提交可以觸發測試和批處理作業部署在開發工作區。一旦準備好生產的代碼,創建一個公關,和一個完整的測試套件在QA環境中運行。如果測試通過,評論者通過公關,部署工作流調用。促使工作區,培訓管道將注冊執行最終的模型,和推理和監測管道將被部署。這是一個時間性,每個環境:
- Prodfix:探索性數據分析(EDA),模型探索,培訓和推理管道都應該在Prodfix開發環境。數據科學家也應該設計監視器配置和分析指標Prodfix因為他們理解的基礎模型和指標監控最好的。
- 質量保證:單元測試和集成測試是運行在QA。監控創建和分析管道必須測試集成測試的一部分。一個示例集成測試DAG如下所示。它是可選的部署培訓或推理在QA管道。
- 刺激:培訓、推理和監測管道與CD部署到生產環境中工作流。培訓和推理將作為經常性的工作筆記本的工作流。監控管道三角洲生活表(DLT)管道。
管理工作區資源
除了代碼,毫升資源MLflow實驗中,模型和配置工作和推行CI / CD。因為執行集成測試工作運行,我們需要建立一個定義為每一個集成測試工作。這也有助於組織曆史測試和調查測試結果進行調試。在代碼庫中,DLT管道和工作規範作為YAML文件保存。如前所述,加速器使用WBA的內部工具來管理工作區資源的權限。DLT,工作,測試規範提供有效載荷數據磚api,但由一個定製的包裝器庫使用。權限控製是在環境概要文件中配置YAML文件在“蔡先生/配置”文件夾中。
高級項目結構如下所示。
├──蔡先生<蔡先生配置│├──配置│└──主要- - - - - -azure- - - - - -pipeline.yml<azure管道├──delta_live_tables<DLT規格,每一個DLT必須有一個相應的YAML文件├──init_scripts<集群init腳本├──工作<工作規範,每一個工作來必須有一個部署相應的YAML文件├──庫<自定義庫(輪文件)不包括在高鈣├──src<毫升管道和筆記本電腦└──測試<測試規範,每一個測試是一份工作- - - - - -運行- - - - - -提交在磚工作區
例如,下麵是一個簡化的“培訓。yml“文件”/工作”文件夾中。部署為它定義了如何訓練管道筆記本工作叫“訓練”和“訓練”筆記本運行在美國中部時間午夜每天使用一個集群和11.0毫升運行時和1工人節點。
<工作/ training.yml >名稱:培訓email_notifications:no_alert_for_skipped_runs:假timeout_seconds:600年時間表:quartz_cron_expression:000* * ?timezone_id:美國/中央pause_status:停頓max_concurrent_runs:1任務:- task_key:培訓notebook_task:notebook_path:' {REPO_PATH} / src /筆記本電腦/火車'new_cluster:spark_version:11.0.x-cpu-ml-scala2點node_type_id:“Standard_D3_v2”num_workers:1timeout_seconds:600年email_notifications:{}描述:運行模型訓練
這裏是同步存儲庫的步驟:
- 進口磚的存儲庫工作區回購
- 建立指定MLflow實驗文件夾和授予權限基於配置文件的配置
- 創建一個模型在MLflow模型基於配置概要文件注冊表和授予權限
- 運行測試(測試用MLflow實驗和模型注冊表,所以它需要執行步驟1 - 3。測試必須運行在任何資源部署)。
- 創建DLT管道
- 創建所有的工作
- 清理廢棄的工作
標準化毫升管道
有預定義的ML管道幫助數據科學家創建可重用和可再生的ML代碼。的共同毫升工作流是一個連續的過程數據攝入,featurization、培訓、評估、部署和預測。MLOps加速器存儲庫中,這些步驟模塊化和磚使用筆記本。(見回購Git集成詳情)。數據科學家可以定製的“步驟”用例。司機筆記本定義管道參數和編製邏輯。加速器包括培訓管道,推理管道和監控管道。
├──src│├──數據集│├──筆記本││├──Train.py││├──Batch-Inference.py││├──MonitorAnalysis.py│├──步驟< python模塊││├──__init__ . py││├──跑龍套。py <效用函數││├──攝取。py <加載原始數據集││├──featurize。py <生成特性││├──create_feature_table。py <寫功能表││├──featurelookup。py <查找功能在FS││├──火車。py < MLflow火車和日誌模型││├──評估。py <評價││├──預測。py <預測││├──部署。py <促進注冊模型分段/生產││└──main.py│└──測試<單元測試
數據與工件管理
現在讓我們來談談數據和工件毫升管道的管理,數據和模型在ML體係不斷發展的。管道是三角洲和MLflow為中心的。我們在三角洲執行輸入和輸出數據的格式,並使用MLflow日誌實驗試驗和模型工件。
WBA MLOps加速器,我們也使用磚特性的商店是建立在三角洲和MLflow,上遊血統(即跟蹤模型。從數據來源和特性模型)和下遊血統(即。從模型到部署端點)。預計算功能寫入特定項目的功能表和模型訓練與上下文特性一起使用。推理過程使用磚的批評分功能特性存儲API。在部署、功能表寫成一個步驟的培訓渠道。這種方式,生產模型總是加載最新版本的特性。
管道編排
所述,培訓和推理是批處理作業,而監控是部署為一個DLT管道。培訓管道從三角洲表存儲在ADLS首先加載數據,然後工程師寫的特性和工作特性。然後,它從功能表生成一個訓練數據集,一個毫升模型符合訓練數據集,和日誌模型特性存儲API。最後一步訓練管道模型的驗證。如果模型,它自動促進模型相應的階段(QA環境“暫存”和“生產”刺激)。
推理管道調用“fs.score_batch ()”加載模型從模型中注冊並生成預測。用戶不需要提供完整的特性集的得分數據,隻是功能表鍵。特性存儲API查找的預先計算功能和連接上下文功能評分。
在開發階段,監測數據科學家確定的配置模型,如哪些指標需要被跟蹤評估模型的性能(如最低,馬克斯,意思是,中位數的所有列,聚合時間窗,模型質量指標,和漂移指標)。
在生產環境中,推理請求(模型的輸入)和相應的預測結果記錄到管理的三角洲表與監控過程。真正的標簽通常到達後,來自一個單獨攝入管道。標簽可用時,應添加到請求表,以及模型評價分析。監控指標都存儲回單獨三角洲Lakehouse中的表和可視化數據磚SQL儀表板。基於選擇漂移指標閾值警報設置。監控框架還允許模型A / B測試和公平和偏見的研究為未來的用例。
結論
MLOps業內是一個新興領域,人們正在開發工具大規模自動化端到端的毫升周期。結合DevOps和軟件開發最佳實踐,MLOps也展開DataOps ModelOps。WBA和磚聯合MLOps加速器後,“部署代碼”模式。從第一天護欄毫升開發項目初始化,大大減少了時間船毫升管道從年周生產。加速器使用三角洲湖等工具,功能存儲,MLflow毫升生命周期管理。這些工具MLOps直觀的支持。基礎設施和資源管理,加速器依靠WBA內部堆棧。開源平台也喜歡起程拓殖提Beplay体育安卓版本供類似的功能。不要讓複雜的加速器嚇跑你。如果你有興趣生產采用ML最佳實踐在本文中所討論的,我們提供一個參考實現創建生產就緒MLOps在磚上的解決方案。 Please提交這個請求得到參考實現存儲庫。
如果你有興趣加入與WBA這激動人心的旅程,請查看在WBA工作。彼得是雇傭一個校長MLOps工程師!
關於作者
Yinxi張磚是一種高級數據科學家,她工作的地方與客戶建立端到端毫升係統規模。beplay体育app下载地址加入磚之前,Yinxi成為毫升專家在能源行業工作了7年,優化生產常規和可再生能源資產。她擁有一個從休斯頓大學電子工程博士學位。Yinxi前馬拉鬆運動員,現在是一個快樂的修行者。
高級數據科學家飛飛王是磚,與客戶建立合作,優化,productionize毫升管道。beplay体育app下载地址此前,飛飛在迪士尼度過了5年高級科學家的決定。她在應用數學和計算機科學博士co-major來自愛荷華州立大學,在那裏她的研究關注的是機器人。
彼得·哈利迪是WBA機器學習工程總監。他是一個丈夫和父親的芝加哥郊區的一分之三。他在分布式計算係統工作二十多年了。在沃爾格林當他不工作,他可以在廚房裏找到從頭做各種各樣的食物。他也是一個出版詩人和房地產投資者。