使用 Amazon SageMaker AI 搭配 MLflow 的機器學習實驗 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon SageMaker AI 搭配 MLflow 的機器學習實驗

Amazon SageMaker AI with MLflow 是 Amazon SageMaker AI 的功能,可讓您建立、管理、分析和比較機器學習實驗。

機器學習中的實驗

機器學習是一種反覆程序,需要嘗試各種資料、演算法和參數組合,同時觀察它們對模型準確性的影響。ML 實驗的反覆性質會導致許多模型訓練執行和版本,使得追蹤最佳效能模型及其組態具有挑戰性。管理和比較反覆訓練執行的複雜性隨著生成式人工智慧 (生成式 AI) 而增加,其中實驗不僅涉及微調模型,還涉及探索創造性和多樣化的輸出。研究人員必須調整超參數、選取適合的模型架構,並策劃各種資料集,以最佳化所產生內容的品質和創造力。評估生成式 AI 模型需要定量和定性指標,為實驗程序增加另一層複雜性。

使用 MLflow 搭配 Amazon SageMaker AI 來追蹤、整理、檢視、分析和比較反覆式 ML 實驗,以取得比較性洞見,並註冊和部署效能最佳的模型。

MLflow 整合

在訓練和評估模型時使用 MLflow,為您的使用案例尋找最佳候選項目。您可以在 MLflow UI 中跨實驗比較模型效能、參數和指標、在 MLflow Model Registry 中追蹤最佳模型、自動將它們註冊為 SageMaker AI 模型,並將註冊的模型部署到 SageMaker AI 端點。

Amazon SageMaker AI 與 MLflow

使用 MLflow 來追蹤和管理機器學習 (ML) 生命週期的實驗階段,以及模型開發、管理、部署和追蹤的 AWS 整合。

Amazon SageMaker Studio

建立和管理追蹤伺服器、執行筆記本來建立實驗,以及存取 MLflow UI 來檢視和比較透過 Studio 執行的所有實驗。

SageMaker Model Registry

透過自動註冊從 MLflow Model Registry 到 SageMaker Model Registry 的模型,來管理生產的模型版本和目錄模型。如需詳細資訊,請參閱使用 SageMaker 模型登錄檔自動註冊 SageMaker AI 模型

SageMaker AI 推論

使用 準備要在 SageMaker AI 端點上部署的最佳模型ModelBuilder。如需詳細資訊,請參閱使用 部署 MLflow 模型 ModelBuilder

AWS Identity and Access Management

使用角色型存取控制 (RBAC) 搭配 IAM 設定 MLflow 的存取。撰寫 IAM 身分政策,以授權 MLflow 追蹤伺服器的用戶端可呼叫的 MLflow APIs。所有 MLflow REST APIs都會在sagemaker-mlflow服務字首下以 IAM 動作表示。如需詳細資訊,請參閱設定 MLflow 的 IAM 許可

AWS CloudTrail

檢視 中的日誌 AWS CloudTrail ,以協助您啟用 AWS 帳戶的營運和風險稽核、控管和合規。如需詳細資訊,請參閱AWS CloudTrail 日誌

Amazon EventBridge

使用 Amazon EventBridge 擷取的 MLflow 事件來自動化模型檢閱和部署生命週期。如需詳細資訊,請參閱Amazon EventBridge 事件

支援的 AWS 區域

Amazon SageMaker AI 搭配 MLflow 通常可在提供 Amazon SageMaker Studio 的所有 AWS 商業區域中使用,但中國區域除外 AWS GovCloud (US) 。SageMaker AI with MLflow 僅適用於歐洲 AWS CLI (蘇黎世)、亞太區域 (海德拉巴)、亞太區域 (墨爾本) 和加拿大西部 (卡加利) 的 AWS 區域。

追蹤伺服器會在其指定區域內的單一可用區域中啟動。

運作方式

MLflow 追蹤伺服器有三個主要元件:運算、後端中繼資料儲存和成品儲存。託管追蹤伺服器的運算和後端中繼資料儲存體會安全地託管在 SageMaker AI 服務帳戶中。成品儲存體位於您 AWS 帳戶中的 Amazon S3 儲存貯體中。

顯示 MLflow 追蹤伺服器的運算和中繼資料存放區的圖表。

追蹤伺服器具有 ARN。您可以使用此 ARN 將 MLflow SDK 連接到您的追蹤伺服器,並開始將訓練執行記錄到 MLflow。

如需下列重要概念的詳細資訊,請繼續閱讀:

後端中繼資料儲存

當您建立 MLflow 追蹤伺服器時,系統會自動在 SageMaker AI 服務帳戶中設定後端存放區,該存放區會針對每個執行保留各種中繼資料,例如執行 ID、開始和結束時間、參數和指標,並為您完整管理。

成品儲存

若要為 MLflow 提供每次執行中繼資料的持久性儲存,例如模型權重、影像、模型檔案和實驗執行的資料檔案,您必須使用 Amazon S3 建立成品存放區。成品存放區必須在 AWS 您的帳戶中設定,而且您必須明確授予 MLflow 對 Amazon S3 的存取權,才能存取您的成品存放區。如需詳細資訊,請參閱 MLflow 文件中的成品存放區。

MLflow 追蹤伺服器大小

您可以選擇性地在 Studio UI 或 參數 AWS CLI 中指定追蹤伺服器的大小--tracking-server-size。您可以選擇 "Small""Medium""Large"。預設 MLflow 追蹤伺服器組態大小為 "Small"。您可以根據追蹤伺服器的預計使用量選擇大小,例如記錄的資料量、使用者數量和使用頻率。

我們建議針對最多 25 名使用者的團隊使用小型追蹤伺服器、針對最多 50 名使用者的團隊使用中型追蹤伺服器,以及針對最多 100 名使用者的團隊使用大型追蹤伺服器。我們假設所有使用者都會同時向 MLflow 追蹤伺服器提出請求,以提出這些建議。您應該根據預期的使用模式和每個追蹤伺服器支援的 TPS (每秒交易數) 來選取追蹤伺服器大小。

注意

工作負載的性質和您對追蹤伺服器提出的請求類型決定了您看到的 TPS。

追蹤伺服器大小 持續 TPS 爆量 TPS
小型 最高 25 最高 50
最高 50 最多 100 個
大型 最多 100 個 最多 200 個

追蹤伺服器版本

下列 MLflow 版本可與 SageMaker AI 搭配使用:

MLflow 版本 Python 版本 SageMaker AI 版本
MLflow 2.16 (最新版本) Python 3.8 或更新版本 0.1.0
MLflow 2.13 Python 3.8 或更新版本 0.1.0

追蹤伺服器的最新版本具有最新的功能、安全修補程式和錯誤修正。當您建立新的追蹤伺服器時,我們建議您使用最新版本。如需建立追蹤伺服器的詳細資訊,請參閱 MLflow 追蹤伺服器

MLflow 追蹤伺服器語意版本控制。版本格式如下:major-version.minor-version.patch-version

新的 UI 元素和 API 功能等最新功能位於次要版本中。

AWS CloudTrail 日誌

AWS CloudTrail 會自動記錄與 MLflow 追蹤伺服器相關的活動。下列控制平面 API 呼叫會記錄在 CloudTrail 中:

  • CreateMlflowTrackingServer

  • DescribeMlflowTrackingServer

  • UpdateMlflowTrackingServer

  • DeleteMlflowTrackingServer

  • ListMlflowTrackingServers

  • CreatePresignedMlflowTrackingServer

  • StartMlflowTrackingServer

  • StopMlflowTrackingServer

AWS CloudTrail 也會自動記錄與 MLflow 資料平面相關的活動。下列資料平面 API 呼叫會記錄在 CloudTrail 中。對於事件名稱,新增字首 Mlflow(例如 MlflowCreateExperiment)。

  • CreateExperiment

  • CreateModelVersion

  • CreateRegisteredModel

  • CreateRun

  • DeleteExperiment

  • DeleteModelVersion

  • DeleteModelVersionTag

  • DeleteRegisteredModel

  • DeleteRegisteredModelAlias

  • DeleteRegisteredModelTag

  • DeleteRun

  • DeleteTag

  • GetDownloadURIForModelVersionArtifacts

  • GetExperiment

  • GetExperimentByName

  • GetLatestModelVersions

  • GetMetricHistory

  • GetModelVersion

  • GetModelVersionByAlias

  • GetRegisteredModel

  • GetRun

  • ListArtifacts

  • LogBatch

  • LogInputs

  • LogMetric

  • LogModel

  • LogParam

  • RenameRegisteredModel

  • RestoreExperiment

  • RestoreRun

  • SearchExperiments

  • SearchModelVersions

  • SearchRegisteredModels

  • SearchRuns

  • SetExperimentTag

  • SetModelVersionTag

  • SetRegisteredModelAlias

  • SetRegisteredModelTag

  • SetTag

  • TransitionModelVersionStage

  • UpdateExperiment

  • UpdateModelVersion

  • UpdateRegisteredModel

  • UpdateRun

如需有關 CloudTrail 的相關資訊,請參閱 AWS CloudTrail 使用者指南

Amazon EventBridge 事件

使用 EventBridge 將事件從使用 MLflow 搭配 SageMaker AI 路由到整個組織的取用者應用程式。下列事件會傳送至 EventBridge:

  • 「建立 SageMaker 追蹤伺服器」

  • 「已建立 SageMaker 追蹤伺服器」

  • 「SageMaker 追蹤伺服器建立失敗」

  • 「SageMaker 追蹤伺服器更新」

  • 「SageMaker 追蹤伺服器已更新」

  • 「SageMaker 追蹤伺服器更新失敗」

  • 「SageMaker 追蹤伺服器刪除」

  • 「已刪除 SageMaker 追蹤伺服器」

  • 「SageMaker 追蹤伺服器刪除失敗」

  • 「SageMaker 追蹤伺服器啟動」

  • 「SageMaker 追蹤伺服器已啟動」

  • 「SageMaker 追蹤伺服器啟動失敗」

  • 「SageMaker 追蹤伺服器停止」

  • 「SageMaker 追蹤伺服器已停止」

  • 「SageMaker 追蹤伺服器停止失敗」

  • 「SageMaker 追蹤伺服器維護進行中」

  • 「SageMaker 追蹤伺服器維護完成」

  • 「SageMaker 追蹤伺服器維護失敗」

  • 「SageMaker MLFlow 追蹤伺服器建立執行」

  • 「SageMaker MLFlow 追蹤伺服器建立 RegisteredModel」

  • 「SageMaker MLFlow 追蹤伺服器建立 ModelVersion」

  • 「SageMaker MLFlow 追蹤伺服器轉換ModelVersion階段」

  • 「SageMaker MLFlow 追蹤伺服器設定已註冊模型別名」

如需 EventBridge 的詳細資訊,請參閱《Amazon EventBridge 使用者指南》。