跳轉到主要內容
Beplay体育安卓版本平台的博客

第1部分:實施CI / CD使用磚筆記本和Azure DevOps的磚

分享這篇文章
討論了代碼可以被發現在這裏

這是一個由兩部分組成的係列文章的第一部分的博客文章,展示如何配置和構建端到端MLOps解決方案與筆記本和磚回購API。這篇文章提出了一種CI / CD框架磚,基於筆記本。管道與微軟Azure DevOps集成生態係統的持續集成(CI)和回購API持續交付的一部分(CD)。在第二篇文章中,我們將展示如何利用回購API功能來實現一個完整的CI / CD生命周期在磚和擴展了MLOps解決方案。

與磚回購的CI / CD

幸運的是,與提供的新功能磚回購回購API,我們現在的設備齊全的涵蓋所有關鍵方麵版本控製、測試和管道支撐MLOps方法。磚回購允許克隆整個git存儲庫在磚和回購API的幫助下,我們可以自動化這個過程,首先克隆git存儲庫,然後看看我們感興趣的分支。毫升從業人員現在可以使用存儲庫結構眾所周知從ide構建他們的項目,依靠筆記本或. py文件實現的模塊(支持任意文件格式在回購計劃路線圖)。因此,整個項目是您選擇的版本控製工具(Github,Gitlab,Azure回購僅舉幾例)和集成與常見的CI / CD管道很好。磚回購的API允許我們更新一個回購(Git項目簽出的回購磚)的最新版本的一個特定的Git分支。

團隊可以遵循古典Git流GitHub流在開發過程中循環。整個Git存儲庫可以與磚回購的檢出。用戶可以使用和編輯筆記本以及純Python文件或其他文本文件類型與任意文件的支持。這允許我們使用經典的項目結構,並結合從Python文件導入模塊的筆記本:

  1. 開發個人特性在一個特性分支和測試使用單元測試(例如,實現筆記本電腦)。
  2. 推動的變化特性分支,CI / CD管道將運行集成測試。
  3. CI / CD管道在Azure DevOps可以觸發磚回購的API來更新這個測試項目的最新版本。
  4. CI / CD管道引發通過就業API集成測試工作。集成測試可以實現為一個簡單的筆記本,它將在第一次運行的管道,我們想測試測試配置。這可以通過運行一個適當的筆記本執行相應的模塊或通過觸發使用真正的工作喬布斯API
  5. 檢查結果將整個測試運行標記為綠色或紅色。

磚的CI / CD的解決方案,數據團隊可以遵循古典git流或GitHub流在開發周期。整個git存儲庫可以與磚回購的檢出。

現在,讓我們研究如何實現上麵描述的方法。作為一個典型工作流程,我們將專注於數據來自Kaggle貸款俱樂部競爭。類似於許多金融機構,我們想了解和預測個人收入數據,例如,評估應用程序的信用評分。為了這樣做,我們分析各種申請人特性和屬性,從當前的職業、住房、教育定位數據、婚姻狀況和年齡。這是銀行的信息收集,(例如,在過去的信用應用程序),它現在是用來訓練一個回歸模型。

此外,我們知道,我們的業務變化動態,每天有大量的新觀察。經常攝入新數據,再培訓模型是至關重要的。因此,重點是完全自動化的培訓工作以及整個持續部署管道。以確保高質量的成果和新訓練模型的預測能力高,每次訓練後我們添加一個評估步驟的工作。這裏毫升模型相比得分數據集策劃,目前部署生產版本。因此,隻有新的迭代模型推廣可以發生具有較高的預測能力。

作為一個項目正在積極開發和工作,完全自動化的測試新代碼和晉升到下一個階段的生命周期利用Azure DevOps框架單元測試/集成評價在推/拉請求。測試通過Azure DevOps策劃框架和磚平台上執行。Beplay体育安卓版本這涵蓋了CI過程的一部分,確保我們的代碼測試覆蓋率高,減少人類的監督。

持續交付的部分完全依賴回購API,我們使用編程接口來檢查我們的代碼的最新版本Git分支和部署最新的腳本運行的工作負載。這允許我們簡化工件部署過程,容易促進從開發到測試代碼版本暫存到生產環境。這樣一個架構保證了各種環境完全隔離,通常喜歡在增加安全環境。不同的階段:開發、過渡和刺激分享隻有版本控製係統,最大限度地減少潛在幹擾強烈批評生產工作負載。同時,探索性的工作和創新是解耦的開發環境可能更輕鬆訪問控製。

執行CI / CD管道使用Azure DevOps和磚

在以下代碼存儲庫,我們實現了ML項目與CI / CD管道由Azure DevOps。在這個項目中,我們使用筆記本電腦進行數據準備和模型訓練。

讓我們看看我們如何測試這些筆記本在磚上。Azure DevOps是一個非常受歡迎的框架,完成CI / CD工作流可以在Azure。有關更多信息,請查看提供功能的概述持續集成與磚

我們使用Azure DevOps管道為YAML文件。管道把磚筆記本當簡單的Python文件,所以我們可以在CI / CD管道運行它們。我們把YAML文件Azure CI / CD azure-pipelines.yml內部管道。最有趣的部分該文件是一個磚回購的API來更新調用CI / CD磚項目的狀態和調用數據磚工作API來觸發執行集成測試工作。我們開發這兩個項目部署。py腳本/筆記本。我們可以叫它在以下方式在Azure DevOps管道:

腳本:|python部署/ deploy.pyenv:DATABRICKS_HOST: $ (DATABRICKS_HOST)DATABRICKS_TOKEN:$ (DATABRICKS_TOKEN)displayName:“在磚上運行集成測試”

DATABRICKS_HOSTDATABRICKS_TOKEN環境變量databricks_cli所需的包來驗證我們對磚工作區我們使用。這些變量可以通過Azure托管DevOps變量組。

讓我們檢查部署。py腳本了。在腳本中,我們使用databricks_cli API使用磚工作的API。首先,我們要創建一個API客戶端:

.get_config配置= EnvironmentVariableConfigProvider () ()api_client = _get_api_client(配置,command_name =“cicdtemplates——”)

之後,我們可以創建一個新的臨時回購磚為我們的項目和拉的最新修訂我們的新創建的回購:

#讓我們創建回購服務repos_service = ReposService (api_client)#讓我們存儲路徑新回購repo_path =f '{repos_path_prefix}_{分支}_{str(datetime.now () .microsecond)}#讓我們克隆GitHub回購在磚使用回購API回購= repos_service。create_repo(=提供者url = git_url提供者,路徑= repo_path)#讓我們付款所需的分支repos_service.update_repo (id=回購(“id”),分支=分支)

接下來,我們可以啟動的執行集成測試工作磚:

res = jobs_service.submit_run (run_name =“我們的名字”existing_cluster_id = existing_cluster_id notebook_task = repo_path + notebook_path)run_id = res [“run_id”]

最後,我們等待工作完成並檢查結果:

真正的:狀態= jobs_service.get_run (run_id)打印(狀態)result_state =狀態(“狀態”). get (“result_state”,沒有一個)如果result_state:打印(result_state)斷言result_state = =“成功”打破其他的:time . sleep (5)

使用多個工作區

使用磚回購的API CD可能特別有用的團隊爭取完成隔離dev /階段環境和生產環境。新功能允許數據團隊,通過源代碼在磚上,部署更新後的代碼庫和工件的工作通過一個簡單的命令接口跨多個環境。能夠以編程方式查看最新代碼版本控製係統確保及時和簡單的發布過程。

MLOps實踐,右邊有許多嚴肅的考慮建築之間設置不同的環境。在這項研究中,我們隻關注完全隔離的範式,這也包括了多個MLflow實例與dev /臨時/刺激有關。在光中,模型訓練在開發環境中不會被推到下一個階段是序列化的對象通過一個公共模型加載注冊表。唯一的工件部署新的培訓管道代碼庫中發布和執行交付準備環境,導致一種新的模式訓練和在MLflow注冊。

與嚴格的權限管理這無共享的原則,共同推動/ env,而是放鬆了對開發的訪問模式,允許可靠的和高質量的軟件開發。同時,它提供了一個開發實例中的自由度更高,加快創新團隊和實驗數據。

磚CI / CD的解決方案與開發環境設置,過渡和刺激與共享版本控製係統和數據同步從刺激到其他環境。
與開發環境設置、過渡和刺激與共享版本控製係統和數據同步從刺激到其他環境。

總結

在這篇文章中,我們提出了一個端到端的方法CI / CD管道磚使用notebook-based項目。這個工作流基於回購API功能,不僅讓數據團隊結構和版本控製他們的項目以更實用的方式也大大簡化了CI / CD工具的實現和執行。我們展示了一個結構,在這種結構中,所有操作環境完全隔離,確保高度的安全生產工作負載由毫升。

CI / CD管道是由一個框架磚的選擇和整合統一分析平台順利,觸發執行的代碼和基礎設施提供端到端。Beplay体育安卓版本回購API不僅從根本上簡化版本管理,代碼結構,和開發項目生命周期的一部分,但也持續交付,允許部署生產環境之間工件和代碼。這是一個重要的改進,增加了整體效率和可伸縮性的磚,大大提高軟件開發的經驗。

討論了代碼可以被發現在這裏

引用:

免費試著磚

相關的帖子

看到所有Beplay体育安卓版本平台的博客的帖子
Baidu
map