用于 Kubeflow 管道的 SageMaker 组件 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用于 Kubeflow 管道的 SageMaker 组件

本文档概述了如何将 SageMaker 组件用于 Kubeflow Pipelines (KFP)。借助这些管道组件,您可以在 SageMaker 中创建和监控训练、优化、终端节点部署和批量转换作业。通过在 SageMaker 上运行 Kubeflow 管道作业,您可以将数据处理和训练作业从 Kubernetes 集群移动到 SageMaker 的机器学习优化托管服务。本文档假定事先了解 Kubernetes 和 Kubeflow。

什么是 Kubeflow 管道?

Kubeflow Pipelines (KFP) 是一个基于 Docker 容器构建和部署可移植的可扩展机器学习 (ML) 工作流程的平台。Kubeflow Pipelines 平台包含以下内容:

  • 用于管理和跟踪实验、作业和运行的用户界面 (UI)。

  • 用于计划多步骤 ML 工作流程的引擎 (Argo)。

  • 用于定义和操作管道和组件的 Python 开发工具包。

  • 使用 开发工具包与系统进行交互的笔记本。

管道是表示为有向无环 的 ML 工作流程的描述,如下图所示。工作流程中的每个步骤均表示为 Kubeflow Pipeline 组件,这是 Python 模块。

如果您的数据已经过预处理,则标准管道将获取一部分数据并运行模型的超参数优化。然后,管道使用最佳超参数通过完整数据集训练模型。此模型用于批量推理和终端节点创建。

有关 Kubeflow 管道的更多信息,请参阅 Kubeflow 管道文档

Kubeflow Pipeline 组件

Kubeflow Pipeline 组件是用于在 Kubeflow 管道中执行一个步骤的一组代码。组件由转换为 Docker 映像的 Python 模块表示。利用这些组件,您可以快速轻松地为实验环境和生产环境编写管道,而不必与底层 Kubernetes 基础设施进行交互。

Kubeflow Pipelines 的 SageMaker 组件提供什么?

SageMaker 适用于 Kubeflow Pipelines 的 SageMaker 组件提供了在 中启动计算密集型任务的替代方法。这些组件将 SageMaker 与 Kubeflow 管道的可移植性和编排性集成。使用 SageMaker 组件,管道工作流程中的每个任务都在 SageMaker 而不是本地 Kubernetes 集群上运行。仍然可以从 Kubeflow 管道 UI 访问来自 SageMaker 的作业参数、状态、日志和输出。创建了以下 SageMaker 组件以将六个关键 SageMaker 功能集成到 ML 工作流中。您可以创建一个完全使用这些组件构建的 Kubeflow 管道,也可以根据需要将各个组件集成到工作流程中。

将 SageMaker 组件用于 Kubeflow Pipelines 不会产生额外费用。您通过这些组件使用的任何 SageMaker 资源都会产生费用。

训练组件

培训

“训练”组件允许您直接从 Kubeflow Pipelines 工作流提交SageMaker训练作业。有关更多信息,请参阅训练 Kubeflow 管道组件SageMaker。

超参数优化

超级参数优化组件允许您直接从 Kubeflow Pipelines 工作流程将超参数优化作业提交到 SageMaker。有关更多信息,请参阅 超参数优化 Kubeflow 管道组件SageMaker。

处理

Processing 组件允许您直接从 Kubeflow Pipelines 工作流向 SageMaker 提交处理作业。有关更多信息,请参阅处理 Kubeflow 管道组件SageMaker。

推理组件

托管部署

利用 Deploy 组件,您可以在 SageMakerKubeflow Pipelines 工作流程的托管中部署模型。有关更多信息,请参阅托管服务 - 创建终端节点 Kubeflow 管道组件SageMaker。

Batch Transform 组件

Batch Transform 组件使您能够从 Kubeflow Pipelines 工作流程在 SageMaker 中为整个数据集运行推理作业。有关更多信息,请参阅批量转换 Kubeflow 管道组件SageMaker。

Ground Truth 组件

Ground Truth Ground Truth 组件使您能够直接从 Kubeflow Pipelines 工作流提交 SageMaker Ground Truth 标记作业。有关更多信息,请参阅 Ground Truth Kubeflow 管道组件SageMaker。

工作团队

通过 Workteam 组件,您可以直接从 Kubeflow Pipelines 工作流创建SageMaker私有工作组任务。有关更多信息,请参阅创建私有工作组 Kubeflow 管道组件SageMaker。

IAM 权限

使用 SageMaker 组件部署 Kubeflow 管道需要以下三个级别的 IAM 权限:

  • 用于访问您的 AWS 账户的 IAM 用户/角色 (your_credentials)。注意:如果您已有权访问 KFP Web UI 并在 Amazon S3 中具有输入数据,或者您已具有带 KFP 的 Amazon Elastic Kubernetes Service (Amazon EKS) 集群,则根本不需要此选项。

    您可以从网关节点(可以是您的本地计算机或远程实例)使用此用户/角色来执行以下操作:

    • 创建 Amazon EKS 集群并安装 KFP

    • 创建 IAM 角色/用户

    • 为示例输入数据创建 Amazon S3 存储桶

    IAM 用户/角色需要以下权限:

  • KFP Pod 用来访问 SageMaker 的 IAM 角色 (kfp-example-pod-role)。KFP Pod 使用此权限从 KFP 组件创建 SageMaker 作业。注意:如果要将权限限制到 KFP Pod,请创建您自己的自定义策略并附加它。

    该角色需要以下权限:

    • AmazonSageMakerFullAccess

  • 作业用来访问 SageMaker 和 Amazon S3 等资源的 IAM 角色 (Amazon ECRkfp-example-sagemaker-execution-role)。

    您的 SageMaker 作业使用此角色:

    • 访问 SageMaker 资源

    • 来自 Amazon S3 的输入数据

    • 将您的输出模型存储到Amazon S3

    该角色需要以下权限:

    • AmazonSageMakerFullAccess

    • AmazonS3FullAccess

这些是为 SageMaker 运行 KFP 组件所需的全部 IAM 用户/角色。

在运行组件并创建了 SageMaker 终端节点时,您还需要具有 sagemaker:InvokeEndpoint 权限的角色来查询推理终端节点。

将管道转换为使用SageMaker

您可以通过移植通用 Python SageMaker处理容器训练容器,将现有管道转换为使用 。如果您使用 SageMaker 进行推理,则还需要将 IAM 权限附加到您的集群,并将构件转换为模型。