MLOps Stack 的 Databricks Asset Bundle
您可以使用 GitHub 上的 Databricks 資產套件組合、Databricks CLI 和 Databricks MLOps Stack 存放庫來建立 MLOps Stack。 MLOps Stack 是 Azure Databricks 上的 MLOps 專案,遵循現成的生產最佳做法。 請參閱什麼是 Databricks Asset Bundles?。
若要建立、部署和執行 MLOps Stacks 專案,請完成下列步驟:
需求
- 請確定目標遠端工作區已啟用工作區檔案。 請參閲工作區檔案是什麼?。
- 在您的開發計算機上,確定已安裝 Databricks CLI 0.212.2 版或更新版本。 若要檢查已安裝的 Databricks CLI 版本,請執行 命令
databricks -v
。 若要更新 Databricks CLI 版本,請參閱 安裝或更新 Databricks CLI。 (套件組合不適用於 Databricks CLI 0.18 版和以下版本。
步驟 1:設定驗證
設定 Databricks CLI 以進行驗證。
本文假設您想要使用 OAuth 使用者對機器 (U2M) 驗證,以及名為 DEFAULT
的對應 Azure Databricks 組態設定檔進行驗證。
注意
U2M 驗證適用於即時試用這些步驟。 針對完全自動化的工作流程,Databricks 建議您改用 OAuth 機器對機器 (M2M) 驗證。 請參閱驗證中的 M2M 驗證設定指示。
針對每個目標工作區執行下列命令,使用 Databricks CLI 在本機起始 OAuth 權杖管理。
在下列命令中,將
<workspace-url>
取代為您的 Azure Databricks 個別工作區網址,例如https://adb-1234567890123456.7.azuredatabricks.net
。databricks auth login --host <workspace-url>
Databricks CLI 會提示您儲存輸入為 Azure Databricks 組態設定檔的資訊。 按
Enter
以接受建議的設定檔名稱,或輸入新或現有設定檔的名稱。 任何具有相同名稱的現有設定檔,會以您輸入的資訊覆寫。 您可使用設定檔,在多個工作區之間快速切換驗證內容。若要取得任何現有設定檔的清單,請在個別的終端機或命令提示字元中,使用 Databricks CLI 來執行
databricks auth profiles
命令。 若要檢視特定設定檔的現有設定,請執行databricks auth env --profile <profile-name>
命令。在網頁瀏覽器中,完成畫面上的指示,登入 Azure Databricks 工作區。
若要檢視設定檔目前的 OAuth 權杖值和權杖即將到期的時間戳記,請執行下列其中一個命令:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
如果您有多個具有相同
--host
值的設定檔,您可能需要一起指定--host
和-p
選項,以協助 Databricks CLI 尋找正確的相符 OAuth 權杖資訊。
步驟 2:建立配套專案
使用 Databricks 資產組合範本 來建立 MLOps Stacks 專案的入門檔案。 若要這樣做,請從執行下列命令開始:
databricks bundle init mlops-stacks
回答畫面上的提示。 如需回答這些提示的指引,請參閱 GitHub 上的 Databricks MLOps Stacks 存放庫中啟動新專案。
第一個提示提供設定 ML 程式代碼元件、CI/CD 元件或兩者的選項。 此選項可簡化初始設定,因為您可以選擇只建立立即相關的元件。 (若要設定其他元件,請再次執行初始化命令。選取下列其中一項:
CICD_and_Project
(預設) - 設定 ML 程式代碼和 CI/CD 元件。Project_Only
- 僅設定 ML 程式代碼元件。 此選項可供數據科學家開始使用。CICD_Only
- 僅設定 CI/CD 元件。 此選項可供 ML 工程師設定基礎結構。
回答所有畫面提示之後,範本會建立 MLOps Stacks 專案的入門檔案,並將其新增至您目前的工作目錄。
視需要自定義 MLOps Stacks 專案的入門檔案。 若要這樣做,請遵循新專案中下列檔案中的指引:
角色 目標 文件 此存放庫的第一次使用者 瞭解此存放庫中的 ML 管線和程式代碼結構 README.md
資料科學家 開始為全新的專案撰寫 ML 程式代碼 <project-name>/README.md
資料科學家 更新現有專案的生產 ML 程式代碼(例如模型定型邏輯) docs/ml-pull-request.md
資料科學家 修改生產模型 ML 資源(例如模型定型或推斷作業) <project-name>/resources/README.md
MLOps / DevOps 設定目前 ML 專案的 CI/CD docs/mlops-setup.md
針對自定義實驗,實驗宣告內的對應會對應至建立實驗作業的要求承載,如 POST /api/2.0/mlflow/experiment/create 中所定義,以 YAML 格式表示。
若要自定義作業,作業宣告內的對應會對應至以YAML格式表示的POST /api/2.1/jobs/create 中所定義的建立作業作業要求承載。
提示
您可以使用覆寫 Databricks Asset Bundles 中的叢集設定中所述的技術來定義、合併和覆寫套件組合中新工作叢集的設定。
針對自定義模型,模型宣告內的對應會對應至以YAML格式表示的POST /api/2.1/unity-catalog/models 中所定義的建立 Unity 目錄模型作業要求承載。
對於自訂管道,管道宣告中的對應會對應至 REST API 參照中 POST /api/2.0/pipelines 所定義之建立管道作業的要求酬載,以 YAML 格式表示。
步驟 3:驗證套件組合專案
檢查套件組合組態是否有效。 若要這樣做,請從專案的根目錄執行 Databricks CLI,其所在位置 databricks.yml
如下:
databricks bundle validate
如果傳回套件組合設定的摘要,則驗證成功。 如果傳回任何錯誤,請修正錯誤,然後重複此步驟。
步驟 4:部署套件組合
將項目的資源和成品部署到所需的遠端工作區。 若要這樣做,請從專案的根目錄執行 Databricks CLI,其所在位置 databricks.yml
如下:
databricks bundle deploy -t <target-name>
<target-name>
取代為檔案中databricks.yml
所需目標的名稱,例如dev
、 test
staging
或 prod
。
步驟 5:執行已部署的套件組合
專案的已部署 Azure Databricks 作業會在其預先定義的排程上自動執行。 若要立即執行已部署的作業,請從專案的根目錄執行 Databricks CLI,其所在位置 databricks.yml
如下:
databricks bundle run -t <target-name> <job-name>
<target-name>
取代為部署作業之databricks.yml
檔案中所需目標的名稱,例如dev
、test
staging
或prod
。<job-name>
取代為 內其中.yml
一個檔案中的<project-name>/databricks-resources
作業名稱,例如batch_inference_job
、write_feature_table_job
或model_training_job
。
Azure Databricks 作業的連結隨即出現,您可以複製到網頁瀏覽器以在 Azure Databricks UI 中開啟作業。
步驟 6:刪除已部署的套件組合 (選擇性)
如果您不再需要部署項目的資源和成品,請從專案的根目錄執行 Databricks CLI,其所在位置 databricks.yml
如下:
databricks bundle destroy -t <target-name>
<target-name>
取代為檔案中databricks.yml
所需目標的名稱,例如dev
、 test
staging
或 prod
。
回答螢幕上的提示,以確認刪除先前部署的資源和成品。