本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SageMaker Kubeflow 管道的人工智能组件
借助 Kubeflow Pipelines 的 SageMaker AI 组件,你可以从 Kubeflow Pipelines 中创建和监控原生 SageMaker AI 训练、调整、端点部署和批量转换作业。通过在 SageMaker AI 上运行 Kubeflow Pipeline 作业,您可以将数据处理和训练作业从 Kubernetes 集群转移到 SageMaker 人工智能经过机器学习优化的托管服务。本文档假设您事先了解 Kubernetes 和 Kubeflow。
内容
什么是 Kubeflow Pipelines?
Kubeflow Pipelines (KFP) 是一个基于 Docker 容器构建和部署便携式、可扩展的机器学习 (ML) 工作流的平台。Kubeflow Pipelines 平台由以下各项组成:
-
用于管理和跟踪实验、作业和运行的用户界面 (UI)。
-
用于计划多步骤机器学习工作流的引擎 (Argo)。
-
用于定义和操作管道和组件的 SDK。
-
用于使用 SDK 与系统交互的笔记本。
管道是对以有向无环图
有关 Kubeflow Pipelines 的更多信息,请参阅 Kubeflow Pipelines 文档
什么是 Kubeflow Pipelines 组件?
Kubeflow Pipelines 组件是一组用于执行 Kubeflow 管道中一个步骤的代码。组件由 Docker 映像中内置的 Python 模块表示。当管道运行时,组件的容器将在运行 Kubeflow 的 Kubernetes 集群中的一个工作线程节点上实例化,然后执行您的逻辑。管道组件可以读取先前组件的输出,并创建管道中下一个组件可以使用的输出。利用这些组件可以快速轻松地为实验和生产环境编写管道,而无需与底层 Kubernetes 基础设施进行交互。
你可以在 Kubeflow 管道中使用 SageMaker 人工智能组件。您只需使用 Kubeflow Pipelines SDK 加载组件并描述管道,而无需在自定义容器中封装逻辑。管道运行时,您的指令将转换为 A SageMaker I 任务或部署。然后,工作负载在完全托管的 SageMaker AI 基础架构上运行。
为什么要在 Kubeflow 管道中使用 SageMaker 人工智能组件?
SageMaker Kubeflow Pipelines 的 AI 组件为从 AI 启动计算密集型作业提供了另一种选择。 SageMaker 这些组件将 SageMaker 人工智能与 Kubeflow Pipelines 的可移植性和编排集成在一起。使用适用于 Kubeflow Pipelines 的 SageMaker AI 组件,你可以创建和监控你的 SageMaker AI 资源,这是 Kubeflow Pipelines 工作流程的一部分。管道中的每个任务都在 SageMaker AI 上运行,而不是在本地 Kubernetes 集群上运行,这样您就可以利用关键的 SageMaker AI 功能,例如数据标签、大规模超参数调整和分布式训练作业,或者一键式安全且可扩展的模型部署。仍然可以从 Kubeflow Pipelines 用户界面访问 SageMaker 来自 AI 的作业参数、状态、日志和输出。
从准备数据到构建、训练和部署机器学习模型, SageMaker A SageMaker I 组件将关键 AI 功能集成到您的机器学习工作流程中。您可以创建完全使用这些组件构建的 Kubeflow Pipelines,也可以根据需要将单个组件集成到工作流中。这些组件有一种或两个版本。组件的每个版本都利用不同的后端。有关这些版本的更多信息,请参阅 SageMaker 适用于 Kubeflow 管道版本的 AI 组件。
在 Kubeflow 流水线上使用 SageMaker 人工智能组件无需支付额外费用。通过这些组件使用的任何 SageMaker AI 资源都将产生费用。
SageMaker 适用于 Kubeflow 管道版本的 AI 组件
SageMaker Kubeflow 流水线的 AI 组件有两个版本。每个版本都利用不同的后端在 SageMaker AI 上创建和管理资源。
-
Kubeflow Pipelines 版本 1(v1.x 或更低版本)的 SageMaker AI 组件使用 Boto
3 () 作为后端。适用于 Python (Boto3) 的 AWS SDK -
AWS 引入了 ACK
以简化管理 AWS 云资源的 Kubernetes-native 方式。ACK 包括一组 AWS 特定于服务的控制器,其中一个是 SageMaker AI 控制器。 SageMaker 人工智能控制器使使用 Kubernetes 作为控制平面的机器学习开发人员和数据科学家可以更轻松地在 AI 中训练、调整和部署机器学习 (ML) 模型。 SageMaker 如需了解更多信息,请参阅适用于 Kubernet SageMaker es 的人工智能运算符
Kubeflow 流水线的 SageMaker AI 组件的两个版本都受支持。但是,版本 2 还提供了一些额外的优势。具体而言,它提供:
-
无论您使用的是 Kubeflow 管道、Kubernetes CLI
kubectl() 还是其他 Kubeflow 应用程序(例如笔记本),都可以通过任何应用程序管理 SageMaker 人工智能资源的一致体验。 -
可以灵活地在 Kubeflow 管道工作流程之外管理和监控 SageMaker AI 资源。
-
如果您在 AWS发布时部署了完整的 Kubeflow
,则使用 SageMaker AI 组件的设置时间为零,因为 SageMaker AI 操作员是其部署的一部分。
Kubeflow 管道 SageMaker 的人工智能组件清单
以下是 Kubeflow Pipelines 的所有 SageMaker AI 组件及其可用版本的列表。或者,你可以在中找到 Kubeflow 管道的所有 SageMaker AI 组件
注意
我们鼓励用户在任何可用的 A SageMaker I 组件版本2中使用该组件。
-
Ground Truth
Ground Truth 组件允许你直接从 Kubeflow Pipelines 工作流程中提交 SageMaker AI Ground Truth 标签作业。
组件版本 1 组件版本 2 X
-
工作团队
Workteam 组件允许你直接从 Kubeflow Pipelines 工作流程创建 SageMaker AI 私有工作团队作业。
组件版本 1 组件版本 2 X
-
Processing
处理组件使您可以直接从 Kubeflow Pipelines 工作流程向 SageMaker AI 提交处理任务。
组件版本 1 组件版本 2 X
-
训练
训练组件允许您直接从 Kubeflow Pipelines 工作流程提交 SageMaker 训练作业。
组件版本 1 组件版本 2 -
超参数优化
通过超参数优化组件,您可以直接从 Kubeflow Pipelines 工作流程向 SageMaker AI 提交超参数调整任务。
组件版本 1 组件版本 2 X
-
托管部署
托管组件允许您使用 Kubeflow Pipelines 工作流程中的 SageMaker AI 托管服务部署模型。
组件版本 1 组件版本 2 托管组件的版本 2 包含在 SageMaker AI 上创建托管部署所需的三个子组件。
-
A SageMaker I 模型 Kubeflow Pipelines 组件版本 2
负责模型工件和包含推理代码的模型图像注册表路径。 -
A SageMaker I 端点配置 Kubeflow Pipelines 组件版本 2
负责定义终端节点的配置,例如实例类型、模型、实例数量和无服务器推理选项。 -
A SageMaker I Endpoint Kubeflow Pipelines 组件版本 2
,负责按照端点配置中的指定在 SageMaker AI 上创建或更新端点。
-
-
批量转换
Batch Transform 组件允许你通过 Kubeflow Pipelines 工作流程在 SageMaker AI 中为整个数据集运行推理作业。
组件版本 1 组件版本 2 X
-
Model Monitor
模型监视器组件允许您通过 Kubeflow Pipelines 工作流程监控生产中的 SageMaker AI 机器学习模型的质量。
组件版本 1 组件版本 2 X
Model Monitor 组件由四个子组件组成,用于监控模型中的偏差。
-
SageMaker 人工智能数据质量任务定义 Kubeflow Pipelines 组件版本 2
负责监控数据质量的偏差。 -
SageMaker 人工智能模型质量任务定义 Kubeflow Pipelines 组件版本 2
负责监控模型质量指标的偏差。 -
SageMaker 人工智能模型偏差任务定义 Kubeflow Pipelines 组件版本 2
负责监控模型预测中的偏差。 -
SageMaker 人工智能模型可解释性作业定义 Kubeflow Pipelines 组件版本 2
负责监控特征归因的偏差。
此外,为了按指定频率进行按计划监控,第五个组件,即 SageMaker AI 监控计划 Kubeflow Pipelines 组件版本 2
,负责按计划监控从实时端点收集的数据。 有关 Amazon SageMaker 模型监视器的更多信息,请参阅使用 Amazon 模型监视器监控数据和 SageMaker 模型质量。
-
IAM 权限
使用 SageMaker AI 组件部署 Kubeflow Pipelines 需要以下三层身份验证:
-
一个 IAM 角色,授予您的网关节点(可以是本地计算机,也可以是远程实例)访问 Amazon Elastic Kubernetes Service (Amazon EKS) 集群的权限。
访问网关节点的用户代入此角色,以便:
-
创建 Amazon EKS 集群并安装 KFP
-
创建 IAM 角色
-
为您的示例输入数据创建 Amazon S3 存储桶
该角色需要以下权限:
-
CloudWatchLogsFullAccess
-
IAMFullAccess
-
AmazonS3FullAccess
-
AmazonEC2FullAccess
-
AmazonEKSAdminPolicy (使用 Amazon EKS Identity-Based 策略示例中的架构创建此策略)
-
-
Kubernetes IAM 执行角色由 Kubernetes 管道容器(k fp-example-pod-role)或 Kubernetes 控制器容器的 AI 操作员担任,用于访问 AI。 SageMaker SageMaker 此角色用于创建和监控 Kubernetes 中的 SageMaker 人工智能作业。
该角色需要以下权限:
-
AmazonSageMakerFullAccess
您可以通过创建和附加自己的自定义策略来限制 KFP 和控制器 Pod 的权限。
-
-
SageMaker 人工智能任务承担的 AI IAM 执行角色, AWS 用于访问诸如 Amazon S3 或 Amazon ECR(kfp-ex SageMaker ample-sagemak er-execution-role)之类的资源。
SageMaker AI 工作使用此角色来:
-
访问 SageMaker AI 资源
-
从 Amazon S3 输入数据
-
将输出模型存储到 Amazon S3
该角色需要以下权限:
-
AmazonSageMakerFullAccess
-
AmazonS3FullAccess
-
将管道转换为使用 SageMaker AI
您可以通过移植通用 Python 处理容器和训练容器,将现有管道转换为使用 SageMaker AI。如果您使用 SageMaker AI 进行推理,则还需要将 IAM 权限附加到集群并将构件转换为模型。