使用 MLflow 的 ML 生命週期管理

本文說明如何在 Databricks 中使用 MLflow 來進行機器學習生命週期管理。 它也包含介紹每個 MLflow 元件和內容連結的範例,說明這些元件如何裝載於 Azure Databricks 內。

Databricks 中的 ML 生命週期管理是由受控 MLflow 提供。 Azure Databricks 提供完全受控且裝載的 MLflow 版本,與企業安全性功能、高可用性和其他 Azure Databricks 工作區功能整合,例如實驗和執行管理和筆記本修訂擷取。

第一次用戶應該從開始使用 MLflow 實驗開始,以示範基本的 MLflow 追蹤 API。

什麼是 MLflow?

MLflow 是一個 開放原始碼 平臺,用於管理端對端機器學習生命週期。 它有下列主要元件:

  • 追蹤:可讓您追蹤實驗來記錄和比較參數和結果。
  • 模型:可讓您從各種 ML 連結庫管理和部署模型到各種模型服務與推斷平臺。
  • 專案:可讓您以可重複使用、可重現的形式封裝 ML 程式代碼,以與其他數據科學家共用,或傳輸至生產環境。
  • 模型登錄:可讓您集中化模型存放區來管理模型的完整生命週期階段轉換:從暫存到生產環境,以及版本設定和批注的功能。 Databricks 在 Unity 目錄中提供模型登錄的受管理版本。
  • 模型服務:可讓您將 MLflow 模型裝載為 REST 端點。 Databricks 提供統一介面來部署、控管及查詢您提供的 AI 模型。

MLflow 支援 JavaPythonRREST API。

MLflow 數據會使用平臺管理的密鑰,由 Azure Databricks 加密。 不支援使用 客戶自控金鑰進行受控服務的 加密。

MLflow 追蹤

Azure Databricks 上的 MLflow 提供追蹤和保護機器學習和深度學習模型的定型執行整合式體驗。

模型生命週期管理

MLflow 模型登錄 是集中式模型存放庫和 UI 和一組 API,可讓您管理 MLflow 模型的完整生命週期。 Databricks 提供 Unity 目錄中 MLflow 模型登錄的託管版本。 Unity 目錄提供集中式模型控管、跨工作區存取、譜系和部署。 如需在 Unity 目錄中管理模型生命週期的詳細資訊,請參閱 在 Unity 目錄中管理模型生命週期。

如果您的工作區未針對 Unity 目錄啟用,您可以使用 工作區模型登錄

模型登錄概念

  • 模型:從實驗記錄的 MLflow 模型,或以其中一個模型類別 mlflow.<model-flavor>.log_model 的方法記錄的執行。 記錄模型之後,您可以將它註冊到模型登錄。
  • 已註冊的模型:已向模型登錄註冊的 MLflow 模型。 已註冊的模型具有唯一的名稱、版本、模型譜系和其他元數據。
  • 模型版本:已註冊模型的版本。 將新的模型新增至模型登錄時,會新增為第 1 版。 註冊至相同模型名稱的每個模型都會遞增版本號碼。
  • 模型別名:別名是特定已註冊模型版本之具名的可變動參考。 別名的一般用法是指定要在模型定型工作流程中指定的環境中部署哪些模型版本,或撰寫以特定別名為目標的推斷工作負載。 例如,您可以將「詐騙偵測」已註冊模型的「冠軍」別名指派給應該為大部分生產流量提供服務的模型版本,然後撰寫以該別名為目標的推斷工作負載(也就是使用「冠軍」版本進行預測)。
  • 模型階段 (僅限工作區模型登錄):模型版本可以指派一或多個階段。 MLflow 提供常見使用案例的預先定義階段: 預備生產封存。 有了適當的許可權,您可以在階段之間轉換模型版本,也可以要求模型階段轉換。 Unity 目錄中不會使用模型版本階段。
  • 描述:您可以標註模型的意圖,包括描述,以及小組有用的任何相關信息,例如演算法描述、採用的數據集或方法。

範例筆記本

如需說明如何使用模型登錄建置機器學習應用程式以預測風力發電廠每日電力輸出的範例,請參閱下列內容:

模型部署

Databricks 模型服務 提供統一介面,以部署、控管和查詢 AI 模型。 您提供的每個模型都可作為 REST API,您可以整合到 Web 或用戶端應用程式中。

模型服務支援服務:

  • 自訂模型。 這些是以 MLflow 格式封裝的 Python 模型。 它們可以在 Unity 目錄或工作區模型登錄中註冊。 範例包括 scikit-learn、XGBoost、PyTorch 和 Hugging 臉部轉換器模型。
  • 基礎模型 API 所提供的最先進的開放式模型。 這些模型是經過策劃的基礎模型架構,可支援優化的推斷。 基本模型,如 Llama-2-70B-chat、BGE-Large 和 Mistral-7B,可用於立即搭配按令牌付費定價使用,以及需要效能保證和微調模型變體的工作負載可以使用布建的輸送量來部署
  • 外部模型。 這些是裝載在 Databricks 外部的模型。 範例包括基礎模型,例如 OpenAI 的 GPT-4、人類學的 Claude 等等。 服務外部模型的端點可以集中控管,客戶可以為其建立速率限制和訪問控制。

您也可以部署 MLflow 模型以進行離線推斷,請參閱 部署批次推斷的模型。