

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

# 在 Amazon SageMaker AI 上使用受管 MLflow 加速開發生成式 AI
<a name="mlflow"></a>

Amazon SageMaker AI 上的全受管 MLflow 可讓您使用單一工具，更輕鬆地追蹤實驗並監控模型和 AI 應用程式的效能，進而加速生成式 AI。

**使用 MLflow 進行生成式 AI 開發**

隨著各產業的客戶加速開發生成式 AI，他們需要能夠追蹤實驗、觀察行為，以及評估模型和 AI 應用程式的效能。資料科學家和開發人員缺乏工具可分析從實驗到生產的模型和 AI 應用程式效能，使得難以找出根本原因與解決問題。團隊花費更多時間在整合工具上，而不是改善其模型或生成式 AI 應用程式。

訓練或微調生成式 AI 和機器學習是一種反覆程序，需要實驗資料、演算法和參數的各種組合，同時觀察它們對模型準確性的影響。實驗的反覆性質會產生許多模型訓練執行和版本，使得追蹤效能最佳的模型及其組態具有挑戰性。管理和比較反覆訓練執行的複雜性隨著 GenAI 而增加，其中實驗不僅涉及微調模型，還會探索創意和多樣化的輸出。研究人員必須調整超參數、選取適合的模型架構，並策劃各種資料集，以最佳化產生內容的品質和創造力。評估生成式 AI 模型需要定量和定性指標，這為實驗程序更增一層複雜性。Amazon SageMaker AI 上 MLflow 中的實驗追蹤功能可讓您追蹤、組織、檢視、分析和比較反覆式 ML 實驗，以取得比較性洞見，並註冊和部署效能最佳的模型。

全受管 MLflow 中的追蹤功能可讓您在生成式 AI 應用程式的每個步驟記錄輸入、輸出和中繼資料，協助您快速識別錯誤或非預期行為的來源。透過維護每個模型和應用程式版本的記錄，全受管 MLflow 提供可追蹤性，將 AI 回應連接到其來源元件，讓您可以快速將問題直接追蹤到產生該回應的特定程式碼、資料或參數。這可大幅縮短故障診斷時間，並讓團隊更專注於創新。

## MLflow 整合
<a name="mlflow-integrations"></a>

在訓練和評估模型時使用 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 模型](mlflow-track-experiments-model-registration.md)。

**SageMaker AI 推論**

使用 `ModelBuilder` 準備要在 SageMaker AI 端點上部署的最佳模型。如需詳細資訊，請參閱[使用 `ModelBuilder` 部署 MLflow 模型](mlflow-track-experiments-model-deployment.md)。

**AWS Identity and Access Management**

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

**AWS CloudTrail**

檢視 中的日誌 AWS CloudTrail ，以協助您啟用 AWS 帳戶的營運和風險稽核、控管和合規。如需詳細資訊，請參閱[AWS CloudTrail 日誌](#mlflow-create-tracking-server-cloudtrail)。

**Amazon EventBridge**

使用 Amazon EventBridge 擷取的 MLflow 事件來自動化模型檢閱和部署生命週期。如需詳細資訊，請參閱[Amazon EventBridge 事件](#mlflow-create-tracking-server-eventbridge)。

## 支援的 AWS 區域
<a name="mlflow-regions"></a>

**MLflow 追蹤伺服器**

MLflow 追蹤伺服器通常可在提供 Amazon SageMaker Studio 的所有 AWS 商業[區域中](https://docs.aws.amazon.com/sagemaker/latest/dg/regions-quotas.html)使用，但中國區域除外。MLflow 追蹤伺服器僅適用於歐洲 AWS CLI （蘇黎世） 區域、亞太區域 （海德拉巴） 區域、亞太區域 （墨爾本） 區域和加拿大西部 （卡加利） 區域中的 。

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

**MLflow 應用程式**

MLflow 應用程式可在下列內容中使用 AWS 區域：
+ 美國東部 (維吉尼亞北部) 區域
+ 美國東部 (俄亥俄) 區域
+ 美國西部 (加利佛尼亞北部) 區域
+ US West (Oregon) Region
+ Asia Pacific (Mumbai) Region
+ 亞太 (首爾) 區域
+ 亞太區域 (新加坡) 區域
+ 亞太 (雪梨) 區域
+ 亞太 (東京) 區域
+ 加拿大 (中部) 區域
+ 歐洲 (法蘭克福) 區域
+ 歐洲 (愛爾蘭) 區域
+ 歐洲 (倫敦) 區域
+ 歐洲 (巴黎) 區域
+ 歐洲 (斯德哥爾摩) 區域
+ 南美洲 (聖保羅) 區域

## 運作方式
<a name="mlflow-create-tracking-server-how-it-works"></a>

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

![此圖顯示 MLflow 追蹤伺服器的運算和中繼資料存放區。](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/mlflow/mlflow-diagram.png)


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

請繼續閱讀以了解有關以下關鍵概念的更多資訊：
+ [後端中繼資料儲存體](#mlflow-create-tracking-server-backend-store) 
+ [成品儲存體](#mlflow-create-tracking-server-artifact-store) 
+ [MLflow 追蹤伺服器大小](#mlflow-create-tracking-server-sizes) 
+ [追蹤伺服器版本](#mlflow-create-tracking-server-versions) 
+ [AWS CloudTrail 日誌](#mlflow-create-tracking-server-cloudtrail) 
+ [Amazon EventBridge 事件](#mlflow-create-tracking-server-eventbridge) 

### 後端中繼資料儲存體
<a name="mlflow-create-tracking-server-backend-store"></a>

當您建立 MLflow 追蹤伺服器時，系統會自動在 SageMaker AI 服務帳戶內設定[後端存放區](https://mlflow.org/docs/latest/tracking/backend-stores.html)並為您完整管理，該存放區會保留每個[執行](https://mlflow.org/docs/latest/tracking.html#runs)的各種中繼資料，例如執行 ID、開始和結束時間、參數和指標，

### 成品儲存體
<a name="mlflow-create-tracking-server-artifact-store"></a>

若要為 MLflow 提供每次執行中繼資料的持久性儲存，例如模型權重、映像、模型檔案和實驗執行的資料檔案，您必須使用 Amazon S3 建立成品存放區。成品存放區必須在 AWS 您的帳戶中設定，而且您必須明確授予 MLflow 對 Amazon S3 的存取權，才能存取您的成品存放區。如需詳細資訊，請參閱 MLflow 文件中的[成品存放區](https://mlflow.org/docs/latest/tracking.html#artifact-stores)。

**注意**  
SageMaker AI MLflow 有 200 MB 的下載大小限制。

### MLflow 應用程式版本
<a name="mlflow-create-mlflow-app-versions"></a>

下列 MLflow 版本可與 SageMaker AI MLflow 應用程式搭配使用：


| MLflow 版本 | Python 版本 | 
| --- | --- | 
| [MLflow 3.10](https://mlflow.org/releases/3.10.1/) （最新版本） | [Python 3.10](https://www.python.org/downloads/release/python-3100/) 或更新版本 | 

MLflow 應用程式的最新版本具有最新的功能、安全修補程式和錯誤修正。當您建立新的 MLflow 應用程式時，它會自動更新為最新的支援版本。如需建立 MLflow 應用程式的詳細資訊，請參閱 [MLflow 應用程式設定](mlflow-app-setup.md)。

MLflow 應用程式使用語意版本控制。版本格式如下：`{{major-version}}.{{minor-version}}.{{patch-version}}`。

### MLflow 追蹤伺服器大小
<a name="mlflow-create-tracking-server-sizes"></a>

您可以選擇性地在 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 | 

### 追蹤伺服器版本
<a name="mlflow-create-tracking-server-versions"></a>

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


| MLflow 版本 | Python 版本 | 
| --- | --- | 
| [MLflow 3.0](https://mlflow.org/releases/3) (最新版本) | [Python 3.9](https://www.python.org/downloads/release/python-390/) 或更高版本 | 
| [MLflow 2.16](https://mlflow.org/releases/2.16.0) | [Python 3.8](https://www.python.org/downloads/release/python-380/) 或更高版本 | 
| [MLflow 2.13](https://mlflow.org/releases/2.13.0) | [Python 3.8](https://www.python.org/downloads/release/python-380/) 或更高版本 | 

追蹤伺服器的最新版本具有最新的功能、安全修補程式和錯誤修正。當您建立新的追蹤伺服器時，我們建議您使用最新版本。如需建立追蹤伺服器的更多詳細資訊，請參閱[MLflow 追蹤伺服器](mlflow-create-tracking-server.md)。

MLflow 追蹤伺服器使用語意版本控制。版本格式如下：`{{major-version}}.{{minor-version}}.{{patch-version}}`。

如新 UI 元素和 API 功能等最新功能都在次要版本中。

### AWS CloudTrail 日誌
<a name="mlflow-create-tracking-server-cloudtrail"></a>

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
+ FinalizeLoggedModel
+ GetLoggedModel
+ DeleteLoggedModel
+ SearchLoggedModels
+ SetLoggedModelTags
+ DeleteLoggedModelTag
+ ListLoggedModelArtifacts
+ LogLoggedModelParams
+ LogOutputs

如需有關 CloudTrail 的相關資訊，請參閱 *[AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)*。

### Amazon EventBridge 事件
<a name="mlflow-create-tracking-server-eventbridge"></a>

使用 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 追蹤伺服器」
+ 「建立 RegisteredModel 的 SageMaker MLFlow 追蹤伺服器」
+ 「建立 ModelVersion 的 SageMaker MLFlow 追蹤伺服器」
+ 「轉換 ModelVersion 階段的 SageMaker MLFlow 追蹤伺服器」
+ 「SageMaker MLFlow 追蹤伺服器設定註冊的模型別名」

如需有關 EventBridge 的詳細資訊，請參閱《[Amazon EventBridge 使用者指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)》**。

**Topics**
+ [MLflow 整合](#mlflow-integrations)
+ [支援的 AWS 區域](#mlflow-regions)
+ [運作方式](#mlflow-create-tracking-server-how-it-works)
+ [MLflow 應用程式設定](mlflow-app-setup.md)
+ [MLflow 追蹤伺服器](mlflow-create-tracking-server.md)
+ [使用預先簽章的 URL 啟動 MLflow UI](mlflow-launch-ui.md)
+ [將 MLflow 與您的環境整合](mlflow-track-experiments.md)
+ [使用範例 Jupyter 筆記本的 MLflow 教學課程](mlflow-tutorials.md)
+ [疑難排解常見的設定問題](mlflow-troubleshooting.md)
+ [清除 MLflow 資源](mlflow-cleanup.md)
+ [Studio Classic 中的 Amazon SageMaker Experiments](experiments.md)