共用方式為


適用於 Gen AI 代理程式和 ML 模型生命週期的 MLflow

本文說明如何使用 Databricks 上的 MLflow 來開發高品質的產生 AI 代理程式和機器學習模型。

注意

如果您剛開始使用 Azure Databricks,請考慮在 Databricks Community Edition上嘗試 MLflow。

什麼是 MLflow?

MLflow 是一個開放原始碼平臺,可用於開發模型和產生式 AI 應用程式。 它有下列主要元件:

  • 追蹤:可讓您追蹤實驗以便記錄並比較 parameters 與實驗結果。
  • 模型:可讓您從各種 ML 連結庫管理和部署模型到各種模型服務與推斷平臺。
  • 模型登錄:可讓您使用模型版本設定和批註功能,管理從預備環境到生產環境的模型部署程式。
  • AI 代理程式評估和追蹤:可協助您比較、評估及排除代理程式故障,從而開發高品質的 AI 代理程式。

MLflow 支援 JavaPythonRREST API。

Databricks 管理的 MLflow

Databricks 提供完全受控且託管的 MLflow 解決方案,基於開源體驗,使其更加強大且可擴展,以滿足企業需求。

下圖顯示 Databricks 如何與 MLflow 整合,以定型和部署機器學習模型。

MLflow 與 Databricks 整合,以管理 ML 生命週期。

Databricks 管理的 MLflow 建置在 Unity Catalog 和 Cloud Data Lake 上,以統一 ML 生命週期中的所有數據和 AI 資產:

  1. 功能存放區: Databricks 自動化功能查閱可簡化整合並減少錯誤。
  2. 定型模型: 使用馬賽克 AI 來定型模型或微調基礎模型。
  3. 追蹤:MLflow 會記錄 parameters、指標和工件來評估及比較模型效能。
  4. 模型登錄: MLflow 模型登錄,與 Unity 整合 Catalog 集中管理 AI 模型和人工制品。
  5. 模型服務: 馬賽克 AI 模型服務會將模型部署到 REST API 端點。
  6. 監視: 馬賽克 AI 模型服務會自動擷取請求和回應,以監控和偵錯模型。 MLflow 會使用每個要求的追蹤數據來增強此數據。

模型訓練

MLflow 模型是 Databricks AI 和 ML 開發的核心。 MLflow 模型是封裝機器學習模型和產生 AI 代理程式的標準化格式。 標準化格式可確保 Databricks 上的下游工具和工作流程可以使用模型和代理程式。

Databricks 提供的功能可協助您定型不同類型的 ML 模型。

實驗追蹤

Databricks 使用 MLflow 實驗作為組織單位,在開發模型時追蹤您的工作。

實驗追蹤可讓您在機器學習訓練和代理程式開發期間記錄和管理 parameters、指標、成果和程式碼版本。 將記錄組織成實驗和運行,可以讓您更輕鬆地比較模型、分析效能和進行反覆運算。

利用 Unity Catalog 進行模型註冊

MLflow 模型登錄是用於管理模型部署流程的集中式模型存放庫、UI 和 set API。

Databricks 整合模型登錄與 Unity Catalog,以提供模型的集中式治理。 Unity Catalog 整合可讓您跨工作區存取模型、追蹤模型歷程,以及探索可重複使用的模型。

模型服務

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

雖然它們是不同的元件,但模型服務嚴重依賴 MLflow 模型登錄來處理模型版本控制、相依性管理、驗證和治理。

  • 使用 Databricks模型服務。

AI 代理程式開發和評估

針對 AI 代理程式開發,Databricks 會與 MLflow 整合,類似於 ML 模型開發。 不過,有一些主要差異:

  • 若要在 Databricks 上建立 AI 代理程式,請使用 馬賽克 AI 代理程式架構,其依賴 MLflow 來追蹤代理程式碼、效能計量和代理程序追蹤。
  • 若要在 Databricks 上評估代理程式,請使用 馬賽克 AI 代理程式評估,其依賴 MLflow 來追蹤評估結果。
  • 代理程式的 MLflow 追蹤還包括 MLflow 追踪。 MLflow 追蹤可讓您查看代理程式服務執行的詳細資訊。 追蹤會記錄與要求每個中繼步驟相關聯的輸入、輸出和元數據,讓您快速找出代理程式中非預期行為的來源。

下圖顯示 Databricks 如何與 MLflow 整合,以建立和部署 AI 代理程式。

MLflow 與 Databricks 整合,以管理 genAI 應用程式生命週期。

Databricks 管理的 MLflow 建置在 Unity Catalog 和 Cloud Data Lake 上,以統一 genAI 應用程式生命週期中的所有數據和 AI 資產:

  1. Vector & 功能存放區: Databricks 自動化向量與特徵查詢可簡化整合並減少錯誤。
  2. 建立及評估 AI 代理程式: 馬賽克 AI 代理程式架構和代理程式評估可協助您建立代理程式並評估其輸出。
  3. 追蹤 & 追蹤: MLflow 追蹤會擷取詳細的代理程式執行資訊,以提升 genAI 可觀察性。
  4. 模型登錄: MLflow 模型登錄,與 Unity 整合 Catalog 集中管理 AI 模型和人工制品。
  5. 模型服務: 馬賽克 AI 模型服務會將模型部署到 REST API 端點。
  6. 監視: MLflow 會自動擷取要求和回應,以監視和偵錯模型。

開放原始碼與 Databricks 管理的 MLflow 功能

如需開放原始碼與 Databricks 管理版本之間共用的一般 MLflow 概念、API 和功能,請參閱 MLflow 檔案。 如需 Databricks 管理的 MLflow 專屬功能,請參閱 Databricks 檔。

下列 table 強調開放原始碼 MLflow 與 Databricks 管理的 MLflow 之間的主要差異,並提供文件連結以協助您深入瞭解:

特徵 開放原始碼 MLflow 的可用性 MLflow 在 Databricks 管理下的可用性
安全 用戶必須提供自己的安全性治理層 Databricks 企業級安全性
災害復原 無法取得 Databricks 災害復原
實驗追蹤 MLflow 追蹤 API MLflow 追蹤 API 已整合進 Databricks 進階實驗追蹤功能
模型登錄 MLflow 模型登錄 與 Databricks Unity 整合的 MLflow 模型登錄 Catalog
Unity Catalog 整合 開放原始碼與 Unity Catalog 整合 Databricks Unity Catalog
模型部署 使用者設定的整合與外部服務解決方案 (SageMaker、Kubernetes、容器服務等等) Databricks 模型部署服務 和外部服務解決方案
AI 代理程式 MLflow LLM 開發 MLflow LLM 開發整合了 Mosaic AI 代理架構代理評估
加密 無法取得 使用客戶自控金鑰 加密