本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 Kubeflow 管道的 SageMaker AI 元件
使用適用於 Kubeflow 管道的 SageMaker AI 元件,您可以從 Kubeflow 管道建立和監視原生 SageMaker AI 訓練、調校、端點部署和批次轉換任務。透過在 SageMaker AI 上執行 Kubeflow 管道任務,您可以將資料處理和訓練任務從 Kubernetes 叢集移至 SageMaker AI 的機器學習最佳化受管服務。本文件假設您事先了解 Kubernetes 和 Kubeflow。
目錄
什麼是 Kubeflow 管道?
Kubeflow 管道 (KFP) 是一個平台,可用來建置和部署以 Docker 容器為基礎的可攜式、可擴充機器學習 (ML) 工作流程。Kubeflow 管道平台由下列各項組成:
-
用於管理和追蹤實驗、工作和執行的使用者介面 (UI)。
-
用於排程多步驟機器學習 (ML) 工作流程的引擎 (Argo)。
-
用於定義和操作管道和元件的 SDK。
-
使用 SDK 與系統互動的筆記本。
管道是對機器學習 (ML) 工作流程的一項描述,以有向無環圖
如需與 Kubeflow 管道相關的詳細資訊,請參閱 Kubeflow 管道文件
什麼是 Kubeflow 管道元件?
Kubeflow 管道元件是用來執行 Kubeflow 管道中某個步驟的一組程式碼。元件由 Docker 映像中內建的 Python 模組表示。管道執行時,元件的容器會在執行 Kubeflow 之 Kubernetes 叢集的其中一個工作者節點上具現化,並執行您的邏輯。管道元件可以讀取先前元件的輸出,並建立管道中的下一個元件可以消耗的輸出。透過這些元件可以快速、輕鬆地為實驗和生產環境撰寫管道,而不必與基礎 Kubernetes 基礎設施互動。
您可以在 Kubeflow 管道中使用 SageMaker AI 元件。與其將您的邏輯封裝在自訂容器中,您可以使用 Kubeflow Pipelines SDK 載入組件並描述您的管道。管道執行時,您的指示會轉換為 SageMaker AI 任務或部署。然後,工作負載會在 SageMaker AI 的受管基礎設施上執行。
為什麼要使用適用於 Kubeflow 管道的 SageMaker AI 元件?
適用於 Kubeflow 管道的 SageMaker AI 元件為從 SageMaker AI 啟動運算密集型任務提供一種替代方法。這些元件將 SageMaker AI 與 Kubeflow 管道的可攜性和協同運作整合在一起。透過適用於 Kubeflow 管道的 SageMaker AI 元件,您可以作為 Kubeflow 管道工作流程的一部分來建立和監視 SageMaker AI 資源。管道中的每個任務都在 SageMaker AI 上執行,而不是在本機 Kubernetes 叢集上執行。如此一來,您可以利用 SageMaker AI 的關鍵功能,例如資料標記、大規模超參數調校和分散式訓練任務,或是一鍵式安全且可擴展的模型部署。來自 SageMaker AI 的任務參數、狀態、日誌和輸出都仍然可以從 Kubeflow 管道 UI 存取。
SageMaker AI 元件可將關鍵的 SageMaker AI 功能整合到您的 ML 工作流程,從準備資料到建置、訓練和部署 ML 模型。您可以建立完全使用這些元件建立的 Kubeflow 管道,或視需要將個別元件整合到您的工作流程中。元件可以有一個或兩個版本。元件的每個版本使用不同的後端。如需與這些版本相關的詳細資訊,請參閱適用於 Kubeflow 管道的 SageMaker AI 元件版本。
使用適用於 Kubeflow 管道的 SageMaker AI 元件無需額外收費。透過這些元件使用的任何 SageMaker AI 資源都會產生費用。
適用於 Kubeflow 管道的 SageMaker AI 元件版本
適用於 Kubeflow 管道的 SageMaker AI 元件有兩個版本。每個版本利用不同的後端來建立和管理 SageMaker AI 上的資源。
-
適用於 Kubeflow 管道的 SageMaker AI 元件版本 1 (v1.x 或更低版本) 使用 Boto3
(適用於 Python (Boto3) 的 AWS SDK) 作為後端。 -
適用於 Kubeflow 管道的 SageMaker AI 元件版本 2 (v2.0.0-alpha2 和更高版本) 使用 SageMaker AI Operator for Kubernetes (ACK)
。 AWS 引進 ACK
,以促進管理 AWS 雲端資源的 Kubernetes 原生方式。ACK 包含一組 AWS 服務特定的控制器,其中一個是 SageMaker AI 控制器。SageMaker AI 控制器可讓機器學習開發人員和資料科學家使用 Kubernetes 作為控制平面,以便在 SageMaker AI 中訓練、調整和部署機器學習 (ML) 模型。如需詳細資訊,請參閱 SageMaker AI Operators for Kubernetes
適用於 Kubeflow 管道的 SageMaker AI 元件的兩個版本均受支援。但是,版本 2 提供了一些額外優點。尤其是:
-
無論您是使用 Kubeflow 管道、Kubernetes CLI (
kubectl) 還是其他 Kubeflow 應用程式 (例如筆記本),都能從任何應用程式管理 SageMaker AI 資源,體驗保持一致。 -
在 Kubeflow 管道工作流程之外,可以彈性地管理與監控 SageMaker AI 資源。
-
如果您在 AWS版本上部署了完整的 Kubeflow
,則使用 SageMaker AI 元件的設定時間為零,因為 SageMaker AI 運算子是其部署的一部分。
適用於 Kubeflow 管道的 SageMaker AI 元件清單
以下是適用於 Kubeflow 管道的所有 SageMaker AI 元件及其可用版本的清單。或者,您可以在 GitHub 中找到適用於 Kubeflow 管道的所有 SageMaker AI 元件
注意
我們鼓勵使用者盡量使用 SageMaker AI 元件的版本 2。
-
Ground Truth
Ground Truth 元件讓您可以直接透過 Kubeflow 管道工作流程提交 SageMaker AI Ground Truth 標籤工作。
元件的版本 1 元件的版本 2 X
-
工作團隊
工作團隊元件讓您可以直接從 Kubeflow 管道工作流程建立 SageMaker AI 私有工作團隊任務。
元件的版本 1 元件的版本 2 X
-
處理
處理元件讓您可以直接從 Kubeflow 管道工作流程將處理工作提交至 SageMaker AI。
元件的版本 1 元件的版本 2 X
-
訓練
訓練元件讓您可以直接透過 Kubeflow 管道工作流程提交 SageMaker 訓練工作。
元件的版本 1 元件的版本 2 -
超參數最佳化
超參數最佳化元件讓您可以直接從 Kubeflow 管道工作流程將超參數調校工作提交至 SageMaker AI。
元件的版本 1 元件的版本 2 X
-
託管部署
託管元件讓您可以從 Kubeflow 管道工作流程使用 SageMaker AI 託管服務部署模型。
元件的版本 1 元件的版本 2 託管元件版本 2 由在 SageMaker AI 上建立託管部署所需的三個子元件組成。
-
SageMaker AI 模型 Kubeflow 管道元件版本 2
負責模型成品和包含推論代碼的模型映像登錄檔路徑。 -
SageMaker AI 端點組態 Kubeflow 管道元件版本 2
負責定義端點組態 (例如執行個體類型、模型、執行個體數目和無伺服器推論選項)。 -
SageMaker AI 端點 Kubeflow 元件版本 2
負責在 SageMaker AI 上建立或更新端點組態中所指定的端點。
-
-
批次轉換
批次轉換元件讓您可以透過 Kubeflow 管道工作流程針對 SageMaker AI 中的整個資料集執行推論任務。
元件的版本 1 元件的版本 2 X
-
模型監控
模型監控元件讓您可以透過 Kubeflow 管道工作流程監控生產環境中 SageMaker AI 機器學習模型的品質。
元件的版本 1 元件的版本 2 X
模型監控元件由四個子元件組成,用於監視模型中的漂移。
-
SageMaker AI 資料品質任務定義 Kubeflow 管道元件版本 2
負責監控資料品質漂移。 -
SageMaker AI 模型品質任務定義 Kubeflow 管道元件版本 2
負責監控模型品質指標漂移。 -
SageMaker AI 模型偏差任務定義 Kubeflow 管道元件版本 2
負責監控模型預測偏差。 -
SageMaker AI 模型可解釋性任務定義 Kubeflow 管道元件版本 2
負責監控功能屬性漂移。
此外,為了依排程按指定頻率進行監視,第五個元件 SageMaker AI 監控排程 Kubeflow 管道元件版本 2
負責監控依排程從即時端點收集的資料。 如需與 Amazon SageMaker Model Monitor 相關的資訊,請參閱使用 Amazon SageMaker Model Monitor 進行資料和模型品質監控。
-
IAM 許可
使用 SageMaker AI 元件部署 Kubeflow 管道需要以下三層驗證:
-
授予閘道節點 (可以是本機機器或遠端執行個體) 存取 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集的 IAM 角色。
存取閘道節點的使用者會擔任此角色來執行以下操作:
-
建立 Amazon EKS 叢集並安裝 KFP
-
建立 IAM 角色
-
為您的範例輸入資料建立 Amazon S3 儲存貯體
角色需要以下許可:
-
CloudWatchLogsFullAccess
-
IAMFullAccess
-
AmazonS3FullAccess
-
AmazonEC2FullAccess
-
AmazonEKSAdminPolicy (使用 Amazon EKS 身分型政策範例中的結構描述建立此政策)
-
-
Kubernetes 管道 Pod (kfp-example-pod-role) 或 SageMaker AI Operator for Kubernetes 控制器 Pod 擔任的 Kubernetes IAM 執行角色,用於存取 SageMaker AI。此角色用來從 Kubernetes 建立和監控 SageMaker AI 工作。
角色需要以下許可:
-
AmazonSageMakerFullAccess
您可以透過建立並連接自訂政策來限制 KFP 和控制器 Pod 的許可。
-
-
SageMaker AI 任務擔任的 SageMaker AI IAM 執行角色,可存取 Amazon S3 或 Amazon ECR (kfp-example-sagemaker-execution-role) 等 AWS 資源。
SageMaker AI 任務使用此角色來執行以下操作:
-
存取 SageMaker AI 資源
-
從 Amazon S3 輸入資料
-
將您的輸出模型儲存到 Amazon S3
角色需要以下許可:
-
AmazonSageMakerFullAccess
-
AmazonS3FullAccess
-
轉換管道以使用 SageMaker AI
您可以透過移植一般 Python 處理容器和訓練容器,將現有的管道轉換為使用 SageMaker AI。如果使用 SageMaker AI 進行推論,您還需要將 IAM 許可連接到叢集,並將成品轉換為模型。