创建算法资源 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

创建算法资源

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

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

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

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

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

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

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

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

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

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

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

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

    注意

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

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

    注意

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

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

创建算法资源(控制台)

创建算法资源(控制台)

  1. https://console.aws.amazon.com/sagemaker/ 打开 SageMaker 控制台。

  2. 选择 Algorithms (算法),然后选择 Create algorithm (创建算法)

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

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

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

    3. 对于 Training image (训练镜像),键入您在 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 (下一步)

  4. 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。有关信息,请参阅执行自动模型优化

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

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

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

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

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

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

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

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

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

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

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

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

    1. 对于 Container definition (容器定义),键入在 Amazon ECR 中存储推理容器的路径。

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

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

    4. 对于 Supported instance types for batch transform jobs (支持的批量转换作业实例类型),选择算法支持的用于批量转换作业的实例类型。有关信息,请参阅使用批量转换获取整个数据集的推理

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

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

    7. 选择下一步

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

    1. 对于 Publish this algorithm on AWS Marketplace (在 AWS Marketplace 上发布此算法),选择 Yes (是) 以在 AWS Marketplace 上发布算法。

    2. 对于 Validate this algorithm (验证此算法),如果您希望 SageMaker 运行您指定的训练作业和/或批量转换作业以测试算法的训练和/或推理代码,则选择 Yes (是)

      注意

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

    3. 对于 IAM role (IAM 角色),选择具有在 SageMaker 中运行训练作业和批量转换作业所需的权限的 IAM 角色,或选择 Create a new role (创建新角色) 以允许 SageMaker 创建已附加 AmazonSageMakerFullAccess 托管策略的角色。有关信息,请参阅SageMaker 角色

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

    5. 选择 Create algorithm (创建算法)

创建算法资源 (API)

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