创建算法资源 - Amazon SageMaker

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

创建算法资源

要创建可用于在 Amazon 中运行训练作业 SageMaker 并发布的算法资源, AWS Marketplace 请指定以下信息:

  • 包含训练和(可选)推理代码的 Docker 容器。

  • 您的算法预期用于训练的输入数据的配置。

  • 您的算法支持的超参数。

  • 您的算法 CloudWatch 在训练作业期间发送给 Amazon 的指标。

  • 您的算法支持的用于训练和推理的实例类型,以及它是否支持跨多个实例的分布式训练。

  • 验证配置文件,即 SageMaker 用于测试算法训练代码的训练作业和用于测试算法推理代码的批量转换作业。 SageMaker

    为了确保买家和卖家都能确信产品适用于 SageMaker,我们要求您在将算法列入 AWS Marketplace中之前对其进行验证。 AWS Marketplace 只有验证成功后,您才能在中发布商品。要验证您的算法,请 SageMaker 使用您的验证配置文件和示例数据来运行以下验证任务:

    1. 在您的账户中创建训练作业,以验证您的训练图像是否适用 SageMaker。

    2. 如果已在算法中包含推理代码,则使用算法的推理镜像以及训练作业所生成的模型构件在账户中创建模型。

    3. 如果您在算法中包含了推理代码,请使用该模型在您的账户中创建转换作业,以验证您的推理图像是否适用。 SageMaker

    当您在上架商品时 AWS Marketplace,此验证过程的输入和输出将作为商品的一部分保留,并提供给买家。这有助于买家在购买产品前先了解和评估产品。例如,买家可以检查您使用的输入数据、生成的输出以及代码发出的日志和指标。验证规范越全面,客户就越容易评估您的产品。

    注意

    在验证配置文件中,仅提供您希望公开的数据。

    验证可能需要几个小时。要查看您账户中任务的状态,请在 SageMaker 控制台中查看训练作业转换作业页面。如果验证失败,您可以从 SageMaker 控制台访问扫描和验证报告。如果发现任何问题,您必须重新创建算法。

    注意

    要在上发布算法 AWS Marketplace,至少需要一个验证配置文件。

您可以使用 SageMaker 控制台或 SageMaker API 创建算法。

创建算法资源(控制台)

创建算法资源(控制台)
  1. 打开 SageMaker 控制台,网址为 https://console.aws.amazon.com/sagemaker/

  2. 从左侧菜单中,选择训练

  3. 从下拉菜单中选择算法,然后选择创建算法

  4. Training specifications (训练规范) 页面上,提供以下信息:

    1. 对于 Algorithm name (算法名称),键入算法的名称。算法名称在您的账户和 AWS 区域中必须是唯一的。名称必须具有 1 到 64 个字符。有效字符为 a-z、A-Z、0-9 和 -(连字符)。

    2. 键入算法的描述。此描述显示在 SageMaker 控制台和中 AWS Marketplace。

    3. 对于训练映像,请键入 Amazon ECR 中存储训练容器的路径。

    4. 对于 Support distributed training (支持分布式训练),如果您的算法支持在多个实例上进行训练,则选择 Yes (是)。否则,请选择 No

    5. 对于 Support instance types for training (支持训练的实例类型),选择您的算法支持的实例类型。

    6. 对于 Channel specification (通道规范),为算法指定最多 8 个输入数据通道。例如,您可以指定 3 个输入通道,它们分别名为 trainvalidationtest。对于每个通道,可以指定以下信息:

      1. 对于 Channel name (通道名称),键入通道的名称。名称必须具有 1 到 64 个字符。有效字符为 a-z、A-Z、0-9 和 -(连字符)。

      2. 要将您的算法设为需要通道,请选择 Channel required (需要通道)

      3. 键入通道的说明。

      4. 对于 Supported input modes (支持的输入模式),如果算法支持流式传输输入数据,则选择 Pipe mode (管道模式);如果算法支持以文件形式下载输入数据,则选择 File mode (文件模式)。您可以选择二者。

      5. 对于 Supported content types (支持的内容类型),键入算法预期用于输入数据的 MIME 类型。

      6. 对于 Supported compression type (支持的压缩类型),如果算法支持 Gzip 压缩,则选择 Gzip。否则,选择 None (无)

      7. 选择 Add channel (添加通道) 以添加另一个数据输入通道;如果您已添加完通道,则选择 Next (下一步)

  5. Tuning specifications (优化规范) 页面上,提供以下信息:

    1. 对于 Hyperparameter specification (超参数规范),通过编辑 JSON 对象来指定算法支持的超参数。对于算法支持的每个超参数,构造一个类似于以下内容的 JSON 块:

      { "DefaultValue": "5", "Description": "The first hyperparameter", "IsRequired": true, "IsTunable": false, "Name": "intRange", "Range": { "IntegerParameterRangeSpecification": { "MaxValue": "10", "MinValue": "1" }, "Type": "Integer" }

      在 JSON 中,提供以下内容:

      1. 对于 DefaultValue,指定超参数的默认值(如果有)。

      2. 对于 Description,指定超参数的描述。

      3. 对于 IsRequired,指定是否需要超参数。

      4. 对于 IsTunable,如果在用户运行使用此算法的超参数优化作业时可以优化此超参数,则指定 true。有关信息,请参阅 使用执行自动模型调整 SageMaker

      5. 对于 Name,指定超参数的名称。

      6. 对于 Range,指定下列项之一:

        • IntegerParameterRangeSpecification - 超参数的值为整数。指定超参数的最小值和最大值。

        • ContinuousParameterRangeSpecification - 超参数的值为浮点值。指定超参数的最小值和最大值。

        • CategoricalParameterRangeSpecification - 超参数的值为分类值。指定所有可能的值的列表。

      7. 对于 Type,指定 IntegerContinuousCategorical。该值必须对应于您指定的 Range 类型。

    2. 对于指标定义,请指定您希望算法发出的任何训练指标。 SageMaker 使用您指定的正则表达式通过在训练期间解析训练容器中的日志来查找指标。当用户使用您的算法运行训练作业时,他们可以查看这些指标,并可以在 Amazon 中监控和绘制这些指标 CloudWatch。有关信息,请参阅 使用 Amazon CloudWatch 指标监控和分析训练作业。对于每个指标,提供以下信息:

      1. 对于 Metric name (指标名称),键入指标的名称。

      2. 对于Regex,键入用于解析训练日志的正则表达式,以便它可以找到指标值。 SageMaker

      3. 对于 Objective metric support (目标指标支持),如果此指标可用作超参数优化作业的目标指标,则选择 Yes (是)。有关信息,请参阅 使用执行自动模型调整 SageMaker

      4. 选择 Add metric (添加指标) 以添加另一个指标;如果您已添加完指标,则选择 Next (下一步)

  6. Inference specifications (推理规范) 页面上,如果算法支持推理,则提供以下信息:

    1. 对于推理映像的位置,请键入 Amazon ECR 中存储推理容器的路径。

    2. 对于 Container DNS host name (容器 DNS 主机名),键入镜像的 DNS 主机名。

    3. 对于 Supported instance types for real-time inference (支持的实时推理实例类型),为在 SageMaker 中部署为托管终端节点的模型选择算法支持的实例类型。有关信息,请参阅 部署模型用于推理

    4. 对于 Supported instance types for batch transform jobs (支持的批量转换作业实例类型),选择算法支持的用于批量转换作业的实例类型。有关信息,请参阅 使用批量转换在 Amazon 上运行推理 SageMaker

    5. 对于 Supported content types (支持的内容类型),键入算法预期用于推理请求的输入数据的类型。

    6. 对于 Supported response MIME types (支持的响应 MIME 类型),键入算法支持的推理响应的 MIME 类型。

    7. 选择下一步

  7. Validation specifications (验证规范) 页面上,提供以下信息:

    1. 对于 “发布此算法” AWS Marketplace,选择 “” 以发布算法 AWS Marketplace。

    2. 对于验证此资源,如果您 SageMaker 要运行训练作业和/或批处理转换作业,并指定这些任务来测试算法的训练和/或推理代码,请选择 “”。

      注意

      要在上发布您的算法 AWS Marketplace,必须对您的算法进行验证。

    3. 对于 IAM 角色,请选择具有运行训练作业和批量转换任务所需权限的 IAM 角色 SageMaker,或者选择创建新角色 SageMaker 以允许创建附加了AmazonSageMakerFullAccess托管策略的角色。有关信息,请参阅 如何使用 SageMaker 执行角色

    4. 对于 Validation profile (验证配置文件),请指定以下内容:

      • 验证配置文件的名称。

      • Training job definition (训练作业定义)。这是一个描述训练作业的 JSON 数据块。其格式与 CreateAlgorithm API 的 TrainingJobDefinition 输入参数的格式相同。

      • Transform job definition (转换作业定义)。这是一个描述批量转换作业的 JSON 数据块。其格式与 CreateAlgorithm API 的 TransformJobDefinition 输入参数的格式相同。

    5. 选择创建算法

创建算法资源 (API)

要使用 SageMaker API 创建算法资源,请调用 CreateAlgorithmAPI。