Prerequisites - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Prerequisites

要使用异步端点,请首先确保满足这些先决条件。

  1. 为 Amazon SageMaker 创建 IAM 角色。

    异步推理需要访问您的 Amazon S3 存储桶 URI。为此,请创建一个 IAM 角色,该角色可以运行 SageMaker 并具有访问 Amazon S3 和 Amazon SNS 的权限。使用此角色,SageMaker 可以在您的账户下运行并访问您的 Amazon S3 存储桶和 Amazon SNS 主题。

    您可以使用 IAM 控制台创建 IAM 角色Amazon SDK for Python (Boto3),或者Amazon CLI. 以下是如何创建 IAM 角色并将必要策略附加到 IAM 控制台的示例。

    1. 登录 Amazon Web Services Management Console,单击 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

    2. 在 IAM 控制台的导航窗格中,选择 Roles,然后选择 Create role

    3. 对于选择受信任实体的类型,选择 Amazon 服务

    4. 选择您希望允许其承担此角色的服务。在本例中,请选择SageMaker. 接下来,选择 Next (下一步):Permissions (下一步:权限)

      • 这会自动创建一个 IAM 策略,以授予对相关服务(如 Amazon S3、Amazon ECR 和 CloudWatch Logs)的访问权限。

    5. 选择 Next:。标签

    6. (可选)通过以键值对的形式附加标签来向角色添加元数据。有关在 IAM 中使用标签的更多信息,请参阅为 IAM 资源添加标签.

    7. 选择 Next:。审核

    8. 键入Role name (角色名称).

    9. 如果可能,键入角色名称或角色名称后缀。角色名称在您的 Amazon 账户内必须是唯一的。名称不区分大小写。例如,您无法同时创建名为 PRODROLEprodrole 的角色。由于其他 Amazon 资源可能引用该角色,角色创建完毕后无法编辑角色名称。

    10. (可选) 对于 Role description,键入新角色的描述。

    11. 检查角色,然后选择 Create role

      记下 SageMaker 角色 ARN。要使用控制台查找角色 ARN,请执行以下操作:

      1. 转到 IAM 控制台:https://console.aws.amazon.com/iam/

      2. Select角色.

      3. 通过在搜索字段中键入角色的名称,搜索刚才创建的角色。

      4. 选择角色。

      5. 角色 ARN 位于摘要页.

  2. 将 Amazon SageMaker、Amazon S3 和 Amazon SNS 权限添加到您的 IAM 角色。

    创建角色后,请授予 SageMaker、Amazon S3 以及可选的 Amazon SNS 对您的 IAM 角色的权限。

    选择角色(在 IAM 控制台中)。搜索您创建的角色,方法是在搜索字段中返回的子位置类型。

    1. 选择您的角色。

    2. 下一步,选择附加策略.

    3. Amazon SageMaker 异步推理需要权执行以下操作:"sagemaker:CreateModel""sagemaker:CreateEndpointConfig""sagemaker:CreateEndpoint", 和"sagemaker:InvokeEndpointAsync".

      这些操作包含在AmazonSageMakerFullAccess政策。将此策略添加到您的 IAM 角色。搜索AmazonSageMakerFullAccess中的搜索字段中返回的子位置类型。Select AmazonSageMakerFullAccess.

    4. 选择 Attach policy

    5. 下一步,选择附加策略添加 Amazon S3 权限。

    6. Select创建策略.

    7. 选择 JSON 选项卡。

    8. 添加以下策略语句:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket_name/*" } ] }
    9. 选择 Next:。标签

    10. 键入策略名称.

    11. 选择 Create policy(创建策略)。

    12. 重复您完成的相同步骤,添加 Amazon S3 权限,以添加 Amazon SNS 权限。对于策略声明,请附上以下内容:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:<region>:<Account_ID>:<SNS_Topic>" } ] }
  3. 将您的推断数据(例如,机器学习模型、样本数据)上传到Amazon S3.

  4. 选择一个预构建的 Docker 推理图像或创建自己的推理码头图像。

    SageMaker 为其内置算法提供了容器,并为一些最常见的机器学习框架提供了预构建的 Docker 映像,如 Apache MXNet、TensorFlow、PyTorch 和 Chainer。有关可用 SageMaker 映像的完整列表,请参阅可用的 Deep Learning Containers 映像.

    如果现有的 SageMaker 容器都不能满足您的需求,并且您没有自己的现有容器,则可能需要创建一个新的 Docker 容器。请参阅使用您自己的推理代码,了解有关如何创建 Docker 映像的信息。

  5. 创建 Amazon SNS 主题(可选)

    创建 Amazon Simple Notification Service (Amazon SNS) 主题以发送有关已完成处理的请求的通知。Amazon SNS 是面向消息的应用程序的通知服务,多个订阅者通过选择的传输协议(包括 HTTP、Amazon SQS 和电子邮件)请求和接收时间紧迫的消息的 “推送” 通知。Amazon SNS 可以在创建EndpointConfig对象,当您指定AsyncInferenceConfig使用EndpointConfigAPI。

    按照以下步骤创建并订阅 Amazon SNS 主题。

    1. 使用 Amazon SNS 控制台创建主题。有关说明,请参阅创建 Amazon SNS 主题中的Amazon Simple Notification Service 开发人员指南.

    2. 订阅至主题。有关说明,请参阅订阅 Amazon SNS 主题中的Amazon Simple Notification Service开发人员指南.

    3. 当您收到要求确认订阅该主题的电子邮件时,请确认订阅。

    4. 记下主题的 Amazon 资源名称 (ARN)。您创建的 Amazon SNS 主题是您的Amazon帐户,它有唯一的 ARN。ARN 采用以下格式:

      arn:aws:sns:aws-region:account-id:topic-name

    有关 Amazon SNS 的更多信息,请参阅Amazon SNS 开发人员指南.