適用於 Gen AI 代理程式和 ML 模型生命週期的 MLflow
本文說明如何使用 Databricks 上的 MLflow 來開發高品質的產生 AI 代理程式和機器學習模型。
注意
如果您剛開始使用 Azure Databricks,請考慮在 Databricks Community Edition上嘗試 MLflow。
什麼是 MLflow?
MLflow 是一個開放原始碼平臺,可用於開發模型和產生式 AI 應用程式。 它有下列主要元件:
- 追蹤:可讓您追蹤實驗以便記錄並比較 parameters 與實驗結果。
- 模型:可讓您從各種 ML 連結庫管理和部署模型到各種模型服務與推斷平臺。
- 模型登錄:可讓您使用模型版本設定和批註功能,管理從預備環境到生產環境的模型部署程式。
- AI 代理程式評估和追蹤:可協助您比較、評估及排除代理程式故障,從而開發高品質的 AI 代理程式。
MLflow 支援 Java、 Python、 R 和 REST API。
Databricks 管理的 MLflow
Databricks 提供完全受控且託管的 MLflow 解決方案,基於開源體驗,使其更加強大且可擴展,以滿足企業需求。
下圖顯示 Databricks 如何與 MLflow 整合,以定型和部署機器學習模型。
Databricks 管理的 MLflow 建置在 Unity Catalog 和 Cloud Data Lake 上,以統一 ML 生命週期中的所有數據和 AI 資產:
- 功能存放區: Databricks 自動化功能查閱可簡化整合並減少錯誤。
- 定型模型: 使用馬賽克 AI 來定型模型或微調基礎模型。
- 追蹤:MLflow 會記錄 parameters、指標和工件來評估及比較模型效能。
- 模型登錄: MLflow 模型登錄,與 Unity 整合 Catalog 集中管理 AI 模型和人工制品。
- 模型服務: 馬賽克 AI 模型服務會將模型部署到 REST API 端點。
- 監視: 馬賽克 AI 模型服務會自動擷取請求和回應,以監控和偵錯模型。 MLflow 會使用每個要求的追蹤數據來增強此數據。
模型訓練
MLflow 模型是 Databricks AI 和 ML 開發的核心。 MLflow 模型是封裝機器學習模型和產生 AI 代理程式的標準化格式。 標準化格式可確保 Databricks 上的下游工具和工作流程可以使用模型和代理程式。
- MLflow 文件 - 模型。
Databricks 提供的功能可協助您定型不同類型的 ML 模型。
- 使用馬賽克 AI訓練 AI 模型。
實驗追蹤
Databricks 使用 MLflow 實驗作為組織單位,在開發模型時追蹤您的工作。
實驗追蹤可讓您在機器學習訓練和代理程式開發期間記錄和管理 parameters、指標、成果和程式碼版本。 將記錄組織成實驗和運行,可以讓您更輕鬆地比較模型、分析效能和進行反覆運算。
- 使用 Databricks 進行實驗追蹤。
- 如需有關執行和實驗追蹤的一般資訊,請參閱 MLflow 文件。
利用 Unity Catalog 進行模型註冊
MLflow 模型登錄是用於管理模型部署流程的集中式模型存放庫、UI 和 set API。
Databricks 整合模型登錄與 Unity Catalog,以提供模型的集中式治理。 Unity Catalog 整合可讓您跨工作區存取模型、追蹤模型歷程,以及探索可重複使用的模型。
- 使用 Databricks Unity Catalog管理模型。
- 如需 Model Registry的一般資訊,請參閱 MLflow 檔。
模型服務
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 代理程式。
Databricks 管理的 MLflow 建置在 Unity Catalog 和 Cloud Data Lake 上,以統一 genAI 應用程式生命週期中的所有數據和 AI 資產:
- Vector & 功能存放區: Databricks 自動化向量與特徵查詢可簡化整合並減少錯誤。
- 建立及評估 AI 代理程式: 馬賽克 AI 代理程式架構和代理程式評估可協助您建立代理程式並評估其輸出。
- 追蹤 & 追蹤: MLflow 追蹤會擷取詳細的代理程式執行資訊,以提升 genAI 可觀察性。
- 模型登錄: MLflow 模型登錄,與 Unity 整合 Catalog 集中管理 AI 模型和人工制品。
- 模型服務: 馬賽克 AI 模型服務會將模型部署到 REST API 端點。
- 監視: 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 代理架構 和 代理評估 |
加密 | 無法取得 | 使用客戶自控金鑰 加密 |