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

创建算法资源

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

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

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

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

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

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

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

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

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

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

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

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

    注意

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

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

    注意

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

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

创建算法资源(控制台)

创建算法资源(控制台)
  1. 通过 https://console.aws.amazon.com/sagemaker/ 打开 SageMaker 控制台。

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

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

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

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

    2. 键入算法的描述。此描述将显示在 SageMaker 控制台和 Amazon Web Services 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. 对于支持的实时推理实例类型,为您在 SageMaker 中部署为托管端点的模型,选择算法支持的实例类型。有关信息,请参阅 部署模型用于推理

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

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

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

    7. 选择下一步

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

    1. 对于将此算法发布在 Amazon Web Services Marketplace 上,选择以在 Amazon Web Services Marketplace 上发布算法。

    2. 对于验证此资源,如果您希望 SageMaker 运行您指定的训练作业和/或批量转换作业,以测试算法的训练和/或推理代码,请选择

      注意

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

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

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

      • 验证配置文件的名称。

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

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

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

创建算法资源 (API)

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