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