

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

# 使用自定义算法和模型 AWS Marketplace
<a name="your-algorithms-marketplace"></a>

以下各节介绍如何创建可以在本地使用并发布到 M AWS arketplace 的算法和模型包资源。

**Topics**
+ [创建算法和模型包资源](sagemaker-mkt-create.md)
+ [使用算法和模型包资源](sagemaker-mkt-buy.md)

# 创建算法和模型包资源
<a name="sagemaker-mkt-create"></a>

将训练 and/or 推理代码打包到 Docker 容器中后，创建算法和模型包资源，您可以在 Amazon A SageMaker I 账户中使用这些资源，也可以选择发布这些资源。 AWS Marketplace

**Topics**
+ [创建算法资源](sagemaker-mkt-create-algo.md)
+ [创建模型包资源](sagemaker-mkt-create-model-package.md)

# 创建算法资源
<a name="sagemaker-mkt-create-algo"></a>

您可以在 Amazon A SageMaker I 中创建用于训练作业的算法资源，也可以将其发布到上 AWS Marketplace。以下各节说明了如何使用 AWS 管理控制台 和 SageMaker API 来实现此目的。

要创建算法资源，需要指定以下信息：
+ 包含训练和（可选）推理代码的 Docker 容器。
+ 您的算法预期用于训练的输入数据的配置。
+ 您的算法支持的超参数。
+ 您的算法 CloudWatch 在训练作业期间发送给 Amazon 的指标。
+ 您的算法支持的用于训练和推理的实例类型，以及它是否支持跨多个实例的分布式训练。
+ 验证配置文件，即 SageMaker AI 用来测试算法训练代码的训练作业，以及 SageMaker AI 为测试算法的推理代码而运行的批量转换作业。

  为了确保买家和卖家能够确信产品在 SageMaker 人工智能中运行，我们要求您在发布算法之前对其进行验证 AWS Marketplace。 AWS Marketplace 只有验证成功后，您才能在中发布商品。为了验证您的算法， SageMaker AI 使用您的验证配置文件和示例数据来运行以下验证任务：

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

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

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

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

  验证可能需要几个小时。要查看您账户中任务的状态，请在 SageMaker AI 控制台中查看**训练作业**和**转换作业**页面。如果验证失败，则可以从 SageMaker AI 控制台访问扫描和验证报告。如果发现任何问题，您必须重新创建算法。
**注意**  
要在上发布算法 AWS Marketplace，至少需要一个验证配置文件。

您可以使用 SageMaker AI 控制台或 AI AP SageMaker I 创建算法。

**Topics**
+ [创建算法资源（控制台）](#sagemaker-mkt-create-algo-console)
+ [创建算法资源 (API)](#sagemaker-mkt-create-algo-api)

## 创建算法资源（控制台）
<a name="sagemaker-mkt-create-algo-console"></a>

**创建算法资源（控制台）**

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 从左侧菜单中，选择**训练**。

1. 从下拉菜单中选择**算法**，然后选择**创建算法**。

1. 在 **Training specifications (训练规范)** 页面上，提供以下信息：

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

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

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

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

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

   1. 对于 **Channel specification (通道规范)**，为算法指定最多 8 个输入数据通道。例如，您可以指定 3 个输入通道，它们分别名为 `train`、`validation` 和 `test`。对于每个通道，可以指定以下信息：

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

      1. 要将您的算法设为需要通道，请选择 **Channel required (需要通道)**。

      1. 键入通道的说明。

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

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

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

      1. 选择 **Add channel (添加通道)** 以添加另一个数据输入通道；如果您已添加完通道，则选择 **Next (下一步)**。

1. 在 **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`，指定超参数的默认值（如果有）。

      1. 对于 `Description`，指定超参数的描述。

      1. 对于 `IsRequired`，指定是否需要超参数。

      1. 对于 `IsTunable`，如果在用户运行使用此算法的超参数优化作业时可以优化此超参数，则指定 `true`。有关信息，请参阅[使用 SageMaker AI 自动调整模型](automatic-model-tuning.md)。

      1. 对于 `Name`，指定超参数的名称。

      1. 对于 `Range`，指定下列项之一：
         + `IntegerParameterRangeSpecification` - 超参数的值为整数。指定超参数的最小值和最大值。
         + 
         + `ContinuousParameterRangeSpecification` - 超参数的值为浮点值。指定超参数的最小值和最大值。
         + `CategoricalParameterRangeSpecification` - 超参数的值为分类值。指定所有可能的值的列表。

      1. 对于 `Type`，指定 `Integer`、`Continuous` 或 `Categorical`。该值必须对应于您指定的 `Range` 类型。

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

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

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

      1. 对于 **Objective metric support (目标指标支持)**，如果此指标可用作超参数优化作业的目标指标，则选择 **Yes (是)**。有关信息，请参阅[使用 SageMaker AI 自动调整模型](automatic-model-tuning.md)。

      1. 选择 **Add metric (添加指标)** 以添加另一个指标；如果您已添加完指标，则选择 **Next (下一步)**。

1. 在 **Inference specifications (推理规范)** 页面上，如果算法支持推理，则提供以下信息：

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

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

   1. 对于**支持用于实时推理的实例类型**，请为在 SageMaker AI 中作为托管终端节点部署的模型选择您的算法支持的实例类型。有关信息，请参阅[部署模型用于推理](deploy-model.md)。

   1. 对于 **Supported instance types for batch transform jobs (支持的批量转换作业实例类型)**，选择算法支持的用于批量转换作业的实例类型。有关信息，请参阅[使用 Amazon A SageMaker I 进行批量转换以进行推理](batch-transform.md)。

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

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

   1. 选择**下一步**。

1. 在 **Validation specifications (验证规范)** 页面上，提供以下信息：

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

   1. 对于 “**验证此资源**”，如果您希望 SageMaker AI 运行您的算法的训练作业and/or batch transform jobs that you specify to test the training and/or推理代码，请选择 “**是**”。
**注意**  
要在上发布您的算法 AWS Marketplace，必须对您的算法进行验证。

   1. 对于 **IAM 角色**，请选择具有在 A SageMaker I 中运行训练作业和批量转换任务所需权限的 IAM 角色，或者选择**创建新角色**以允许 SageMaker AI 创建附加了`AmazonSageMakerFullAccess`托管策略的角色。有关信息，请参阅 [如何使用 SageMaker AI 执行角色](sagemaker-roles.md)。

   1. 对于 **Validation profile (验证配置文件)**，请指定以下内容：
      + 验证配置文件的名称。
      + **Training job definition (训练作业定义)**。这是一个描述训练作业的 JSON 数据块。其格式与 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html) 输入参数的格式相同。
      + **Transform job definition (转换作业定义)**。这是一个描述批量转换作业的 JSON 数据块。其格式与 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html) 输入参数的格式相同。

   1. 选择**创建算法**。

## 创建算法资源 (API)
<a name="sagemaker-mkt-create-algo-api"></a>

要使用 SageMaker API 创建算法资源，请调用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html)API。

# 创建模型包资源
<a name="sagemaker-mkt-create-model-package"></a>

要创建可用于在 Amazon A SageMaker I 中创建可部署模型并发布的模型包资源， AWS Marketplace 请指定以下信息：
+ 包含推理代码或已用于训练模型的算法资源的 Docker 容器。
+ 模型构件的位置。模型构件既可以打包在与推理代码相同的 Docker 容器中，也可以存储在 Amazon S3 中。
+ 模型包支持的用于实时推理和批量转换作业的实例类型。
+ 验证配置文件，这是 SageMaker AI 运行的批量转换作业，用于测试模型包的推理代码。

  在上架模型包之前 AWS Marketplace，必须对其进行验证。这样可以确保买家和卖家可以确信产品可以在Amazon SageMaker AI中使用。 AWS Marketplace 只有验证成功后，您才能发布商品。

  验证过程使用您的验证配置文件和示例数据来运行以下验证任务：

  1. 使用模型包的推理映像和存储在 Amazon S3 中的可选模型构件，在您的账户中创建模型。
**注意**  
模型包特定于创建它时所在的区域。存储模型构件的 S3 存储桶必须位于您创建模型包的区域内。

  1. 使用模型在您的账户中创建转换作业，以验证您的推理图像是否适用于 A SageMaker I。

  1. 创建验证配置文件。
**注意**  
在验证配置文件中，仅提供您希望公开的数据。

  验证可能需要几个小时。要查看您账户中任务的状态，请在 SageMaker AI 控制台中查看**转换作业**页面。如果验证失败，您可以从 SageMaker AI 控制台访问扫描和验证报告。修复问题后，请重新创建算法。当算法的状态为时`COMPLETED`，在 SageMaker AI 控制台中找到它并开始上架流程
**注意**  
要在上发布您的模型包 AWS Marketplace，至少需要一个验证配置文件。

您可以使用 SageMaker AI 控制台或 SageMaker API 创建模型包。

**Topics**
+ [创建模型包资源（控制台）](#sagemaker-mkt-create-model-pkg-console)
+ [创建模型包资源 (API)](#sagemaker-mkt-create-model-pkg-api)

## 创建模型包资源（控制台）
<a name="sagemaker-mkt-create-model-pkg-console"></a>

**要在 SageMaker AI 控制台中创建模型包，请执行以下操作：**

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 从左侧菜单中，选择**推理**。

1. 选择 **Marketplace 模型包**，然后选择**创建 Marketplace 模型包**。

1. 在 **Inference specifications (推理规范)** 页面上，提供以下信息：

   1. 对于 **Model package name (模型包名称)**，键入您的模型包的名称。模型包名称在您的账户和 AWS 区域中必须是唯一的。名称必须具有 1 到 64 个字符。有效字符为 a-z、A-Z、0-9 和 -（连字符）。

   1. 键入模型包的描述。此描述显示在 SageMaker AI 控制台和 AWS Marketplace。

   1. 对于 **Inference specification options (推理规范选项)**，选择 **Provide the location of the inference image and model artifacts (提供推理镜像和模型构件的位置)** 以通过使用推理容器和模型构件来创建模型包。选择 **Provide the algorithm used for training and its model artifacts (提供用于训练的算法及其模型构件)** 以从您创建的或通过 AWS Marketplace订阅的算法资源创建模型包。

   1. 如果您为**推理规范选项**选择了**提供推理映像和模型构建的位置**，则为**容器定义**和**支持的资源**提供以下信息：

      1. 对于 **Location of inference image (推理镜像的位置)**，键入包含推理代码的镜像的路径。映像必须作为 Docker 容器存储在 Amazon ECR 中。

      1. 对于 **Location of model data artifacts (模型数据构件的位置)**，键入 S3 中存储模型构件的位置。

      1. 对于 **Container DNS host name (容器 DNS 主机名)**，键入要用于容器的 DNS 主机的名称。

      1. 对于**支持的实时推理实例类型**，请选择您的模型包支持的实例类型，以便从 SageMaker AI 托管的终端节点进行实时推理。

      1. 对于 **Supported instance types for batch transform jobs (支持的批量转换作业实例类型)**，选择模型包支持的用于批量转换作业的实例类型。

      1. 对于 **Supported content types (支持的内容类型)**，键入模型包预期用于推理请求的内容类型。

      1. 对于 **Supported response MIME types (支持的响应 MIME 类型)**，键入模型包用于提供推理的 MIME 类型。

   1. 如果您为**推理规范选项**选择了**提供用于训练及其模型构件的算法**，请提供以下信息：

      1. 对于 **Algorithm ARN (算法 ARN)**，键入要用于创建模型包的算法资源的 Amazon 资源名称 (ARN)。

      1. 对于 **Location of model data artifacts (模型数据构件的位置)**，键入 S3 中存储模型构件的位置。

   1. 选择**下一步**。

1. 在 **Validation and scanning (验证和扫描)** 页面上，提供以下信息：

   1. 对于 “**发布此模型包**” AWS Marketplace，选择 “**是**” 以发布模型包 AWS Marketplace。

   1. 对于**验证此资源**，如果您希望 SageMaker AI 运行您指定的批量转换作业来测试模型包的推理代码，请选择 “**是**”。
**注意**  
要在上发布模型包 AWS Marketplace，必须对模型包进行验证。

   1. 对于 **IAM 角色**，请选择具有在 A SageMaker I 中运行批处理转换任务所需权限的 IAM 角色，或者选择**创建新角色**以允许 SageMaker AI 创建附加了`AmazonSageMakerFullAccess`托管策略的角色。有关信息，请参阅 [如何使用 SageMaker AI 执行角色](sagemaker-roles.md)。

   1. 对于 **Validation profile (验证配置文件)**，请指定以下内容：
      + 验证配置文件的名称。
      + **Transform job definition (转换作业定义)**。这是一个描述批量转换作业的 JSON 数据块。其格式与 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html) 输入参数的格式相同。

1. 选择**创建 Marketplace 模型包**。

## 创建模型包资源 (API)
<a name="sagemaker-mkt-create-model-pkg-api"></a>

要使用 SageMaker API 创建模型包，请调用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html)API。

# 使用算法和模型包资源
<a name="sagemaker-mkt-buy"></a>

您可以在 Amazon SageMaker AI 账户中创建算法和模型包作为资源，也可以在 AWS Marketplace 上查找和订阅算法和模型包。

使用算法可以：
+ 运行训练作业。有关信息，请参阅[使用算法运行训练作业](sagemaker-mkt-algo-train.md)。
+ 运行超参数优化作业。有关信息，请参阅[使用算法运行超参数优化作业](sagemaker-mkt-algo-tune.md)。
+ 创建模型包。在使用算法资源运行训练作业或超参数优化作业后，可以使用算法和这些作业输出的模型构件来创建模型包。有关信息，请参阅[创建模型包资源](sagemaker-mkt-create-model-package.md)。
**注意**  
如果您在 AWS Marketplace 上订阅算法，则必须先创建模型包，然后才能通过创建托管终端节点或运行批量转换作业来使用它获取推理结果。

![\[市场买家工作流程。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/mkt-buyer-workflow.png)


使用模型包可以：
+ 创建可用于获取实时推理或运行批量转换作业的模型。有关信息，请参阅[使用模型包创建模型](sagemaker-mkt-model-pkg-model.md)。
+ 创建托管终端节点以获取实时推理。有关信息，请参阅[将模型部署到 SageMaker AI 托管服务](ex1-model-deployment.md#ex1-deploy-model)。
+ 创建批量转换作业。有关信息，请参阅[（可选）利用批量转换进行预测](ex1-model-deployment.md#ex1-batch-transform)。

**Topics**
+ [使用算法运行训练作业](sagemaker-mkt-algo-train.md)
+ [使用算法运行超参数优化作业](sagemaker-mkt-algo-tune.md)
+ [使用模型包创建模型](sagemaker-mkt-model-pkg-model.md)

# 使用算法运行训练作业
<a name="sagemaker-mkt-algo-train"></a>

您可以使用 Amazon AI 控制台、低级亚马逊 SageMaker API 或 Amazon SageMaker [ SageMaker Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable)创建使用算法资源来创建训练作业。

**注意**  
您的执行角色必须拥有您指定的算法资源的`sagemaker:DescribeAlgorithm`权限。有关执行角色权限的更多信息，请参阅[CreateTrainingJob API：执行角色权限](sagemaker-roles.md#sagemaker-roles-createtrainingjob-perms)。

**Topics**
+ [使用算法运行训练作业（控制台）](#sagemaker-mkt-algo-train-console)
+ [使用算法运行训练作业 (API)](#sagemaker-mkt-algo-train-api)
+ [使用算法运行训练作业（[亚马逊 SageMaker Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable)）](#sagemaker-mkt-algo-train-sdk)

## 使用算法运行训练作业（控制台）
<a name="sagemaker-mkt-algo-train-console"></a>

**使用算法运行训练作业（控制台）**

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 选择 **Algorithms (算法)**。

1. 从**我的算法**选项卡上的列表中选择您已创建的算法，或者在 **AWS Marketplace 订阅**选项卡上选择已订阅的算法。

1. 选择 **Create training job (创建训练作业)**。

   将自动选择您选定的算法。

1. 在 **Create training job (创建训练作业)** 页面上，提供以下信息：

   1. 对于 **Job name (作业名称)**，请为训练作业键入名称。

   1. 对于 **IAM 角色**，请选择具有在 A SageMaker I 中运行训练任务所需权限的 IAM 角色，或者选择**创建新角色**以允许 SageMaker AI 创建附加了`AmazonSageMakerFullAccess`托管策略的角色。有关信息，请参阅[如何使用 SageMaker AI 执行角色](sagemaker-roles.md)。

   1. 对于 **Resource configuration (资源配置)**，提供以下信息：

      1. 对于 **Instance type (实例类型)**，选择要用于训练的实例类型。

      1. 对于 **Instance count (实例计数)**，键入要用于训练作业的 ML 实例的数目。

      1. 对于 **Additional volume per instance (GB) (每个实例的附加卷 (GB))**，键入要预配置的 ML 存储卷的大小。ML 存储卷存储模型构件和增量状态。

      1. 对于**加密密钥**，如果您希望 Amazon SageMaker AI 使用 AWS 密钥管理服务密钥对附加到训练实例的 ML 存储卷中的数据进行加密，请指定密钥。

      1. 对于 **Stopping condition (停止条件)**，请指定希望训练作业运行的最长时间（以秒、分钟、小时或天为单位）。

   1. 对于 **VPC**，选择您希望允许训练容器访问的 Amazon VPC。有关更多信息，请参阅 [让 SageMaker AI 训练作业访问您的 Amazon VPC 中的资源](train-vpc.md)。

   1. 对于 **Hyperparameters (超参数)**，请指定要用于训练作业的超参数的值。

   1. 对于 **Input data configuration (输入数据配置)**，请指定要用于训练作业的每个输入数据通道的以下值。在算法的**算法摘要**页面中，您可在**通道规范**部分下查看用于训练的算法支持哪些通道，以及每个通道的内容类型、支持的压缩类型和支持的输入模式。

      1. 对于 **Channel name (通道名称)**，键入输入通道的名称。

      1. 对于 **Content type (内容类型)**，键入算法预期用于通道的数据的内容类型。

      1. 对于 **Compression type (压缩类型)**，选择要使用的数据压缩类型（如果有）。

      1. 对于 **Record wrapper (记录包装程序)**，如果算法需要 `RecordIO` 格式的数据，则选择 `RecordIO`。

      1. 对于 **S3 data type (S3 数据类型)**、**S3 data distribution type (S3 数据分布类型)** 和 **S3 location (S3 位置)**，请指定适当的值。有关这些值的含义的信息，请参阅[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html)。

      1. 对于 **Input mode (输入模式)**，选择 **File (文件)** 以将数据下载到预配置的 ML 存储卷，并将目录挂载到 Docker 卷。选择 **Pipe (管道)** 以直接从 Amazon S3 将数据流式传输到容器。

      1. 要添加另一个输入通道，请选择 **Add channel (添加通道)**。如果已添加完输入通道，请选择 **Done (完成)**。

   1. 对于 **Output (输出)** 位置，请指定以下值：

      1. 对于 **S3 output path (S3 输出路径)**，请选择训练作业将输出（例如模型构件）存储到的 S3 位置。
**注意**  
您可以使用存储在此位置的模型构件来从该训练作业创建模型或模型包。

      1. 对于**加密密钥**，如果您希望 SageMaker AI 使用 AWS KMS 密钥对 S3 位置的静态输出数据进行加密。

   1. 对于 **Tags (标签)**，请指定一个或多个标签来管理训练作业。每个标签都由一个键和一个可选值组成。每个资源的标签键必须是唯一的。

   1. 选择 **Create training job (创建训练作业)** 以运行训练作业。

## 使用算法运行训练作业 (API)
<a name="sagemaker-mkt-algo-train-api"></a>

要使用算法通过 SageMaker API 运行训练作业，请指定名称或 Amazon 资源名称 (ARN) 作为您传递给的[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html)对象的`AlgorithmName`字段。[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)有关在 SageMaker AI 中训练模型的信息，请参阅[使用 Amazon 训练模型 SageMaker](how-it-works-training.md)。

## 使用算法运行训练作业（[亚马逊 SageMaker Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable)）
<a name="sagemaker-mkt-algo-train-sdk"></a>

使用您创建或订阅的算法创建训练作业，创建`AlgorithmEstimator`对象并指定 Amazon 资源名称 (ARN) 或算法名称作为参数的`algorithm_arn`值。 AWS Marketplace 然后，调用评估程序的 `fit` 方法。例如：

```
from sagemaker import AlgorithmEstimator
data_path = os.path.join(DATA_DIR, 'marketplace', 'training')

algo = AlgorithmEstimator(
algorithm_arn='arn:aws:sagemaker:us-east-2:012345678901:algorithm/my-algorithm',
        role='SageMakerRole',
        instance_count=1,
        instance_type='ml.c4.xlarge',
        sagemaker_session=sagemaker_session,
        base_job_name='test-marketplace')

train_input = algo.sagemaker_session.upload_data(
path=data_path, key_prefix='integ-test-data/marketplace/train')

algo.fit({'training': train_input})
```

# 使用算法运行超参数优化作业
<a name="sagemaker-mkt-algo-tune"></a>

以下部分介绍如何使用算法资源在 Amazon A SageMaker I 中运行超参数调整任务。超参数优化作业通过使用您指定的算法和超参数范围在数据集上运行很多训练作业来查找模型的最佳版本。然后，它会选择超参数值来生成性能最佳的模型（按所选指标衡量）。有关更多信息，请参阅 [使用 SageMaker AI 自动调整模型](automatic-model-tuning.md)。

您可以使用 Amazon AI 控制台、低级亚马逊 SageMaker API 或 Amazon SageMaker [Pyth SageMaker on](https://sagemaker.readthedocs.io/en/stable) 软件开发工具包创建使用算法资源来创建超参数调整任务。

**Topics**
+ [使用算法运行超参数优化作业（控制台）](#sagemaker-mkt-algo-tune-console)
+ [使用算法运行超参数优化作业 (API)](#sagemaker-mkt-algo-tune-api)
+ [使用算法运行超参数调优作业（[Amaz SageMaker on Python SDK](https://sagemaker.readthedocs.io/en/stable)）](#sagemaker-mkt-algo-tune-sdk)

## 使用算法运行超参数优化作业（控制台）
<a name="sagemaker-mkt-algo-tune-console"></a>

**使用算法运行超参数优化作业（控制台）**

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 选择 **Algorithms (算法)**。

1. 从**我的算法**选项卡上的列表中选择您已创建的算法，或者在 **AWS Marketplace 订阅**选项卡上选择已订阅的算法。

1. 选择 **Create hyperparameter tuning job (创建超参数优化作业)**。

   将自动选择您选定的算法。

1. 在 **Create hyperparameter tuning job (创建超参数优化作业)** 页面上，提供以下信息：

   1. 对于 **Warm start (热启动)**，选择 **Enable warm start (启用热启动)** 以使用来自之前的超参数优化作业的信息作为此超参数优化作业的起点。有关更多信息，请参阅 [运行热启动超参数调优作业](automatic-model-tuning-warm-start.md)。

      1. 选择 **Identical data and algorithm (相同的数据和算法)**（如果您的输入数据与此超参数优化作业的父作业的输入数据相同），或选择 **Transfer learning (迁移学习)** 以将附加或其他输入数据用于此超参数优化作业。

      1. 对于 **Parent hyperparameter tuning job(s) (父超参数优化作业)**，请选择最多 5 个超参数优化作业以用作此超参数优化作业的父作业。

   1. 对于 **Hyperparameter tuning job name (超参数优化作业名称)**，请键入优化作业的名称。

   1. 对于 **IAM 角色**，请选择具有在 A SageMaker I 中运行超参数调整任务所需权限的 IAM 角色，或者选择**创建新角色**以允许 SageMaker AI 创建附加了`AmazonSageMakerFullAccess`托管策略的角色。有关信息，请参阅[如何使用 SageMaker AI 执行角色](sagemaker-roles.md)。

   1. 对于 **VPC**，请选择您希望调整作业启动的训练作业所能访问的 Amazon VPC。有关更多信息，请参阅 [让 SageMaker AI 训练作业访问您的 Amazon VPC 中的资源](train-vpc.md)。

   1. 选择**下一步**。

   1. 对于 **Objective metric (目标指标)**，选择超参数优化作业用于确定超参数的最佳组合的指标，并选择是最小化该指标还是最大化该指标。有关更多信息，请参阅 [查看最佳训练作业](automatic-model-tuning-ex-tuning-job.md#automatic-model-tuning-best-training-job)。

   1. 对于 **Hyperparameter configuration (超参数配置)**，选择希望优化作业搜索的可优化超参数的范围，并为要在超参数优化作业启动的所有训练作业中保持不变的超参数设置静态值。有关更多信息，请参阅 [定义超参数范围](automatic-model-tuning-define-ranges.md)。

   1. 选择**下一步**。

   1. 对于 **Input data configuration (输入数据配置)**，请指定要用于超参数优化作业的每个输入数据通道的以下值。在算法的**算法摘要**页面中，您可在**通道规范**部分下查看用于超参数调整的算法支持哪些通道，以及每个通道的内容类型、支持的压缩类型和支持的输入模式。

      1. 对于 **Channel name (通道名称)**，键入输入通道的名称。

      1. 对于 **Content type (内容类型)**，键入算法预期用于通道的数据的内容类型。

      1. 对于 **Compression type (压缩类型)**，选择要使用的数据压缩类型（如果有）。

      1. 对于 **Record wrapper (记录包装程序)**，如果算法需要 `RecordIO` 格式的数据，则选择 `RecordIO`。

      1. 对于 **S3 data type (S3 数据类型)**、**S3 data distribution type (S3 数据分布类型)** 和 **S3 location (S3 位置)**，请指定适当的值。有关这些值的含义的信息，请参阅[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html)。

      1. 对于 **Input mode (输入模式)**，选择 **File (文件)** 以将数据下载到预配置的 ML 存储卷，并将目录挂载到 Docker 卷。选择 **Pipe (管道)** 以直接从 Amazon S3 将数据流式传输到容器。

      1. 要添加另一个输入通道，请选择 **Add channel (添加通道)**。如果已添加完输入通道，请选择 **Done (完成)**。

   1. 对于 **Output (输出)** 位置，请指定以下值：

      1. 对于 **S3 output path (S3 输出路径)**，请选择此超参数优化作业启动的训练作业将输出（例如模型构件）存储到的 S3 位置。
**注意**  
您可以使用存储在此位置的模型构件来从该超参数优化作业创建模型或模型包。

      1. 对于**加密密钥**，如果您希望 SageMaker AI 使用 AWS KMS 密钥对 S3 位置的静态输出数据进行加密。

   1. 对于 **Resource configuration (资源配置)**，提供以下信息：

      1. 对于 **Instance type (实例类型)**，选择要用于超参数优化作业启动的每个训练作业的实例类型。

      1. 对于 **Instance count (实例计数)**，键入要用于超参数优化作业启动的每个训练作业的 ML 实例的数目。

      1. 对于 **Additional volume per instance (GB) (每个实例的附加卷 (GB))**，键入预配置超参数优化作业启动的每个训练作业所需的 ML 存储卷的大小。ML 存储卷存储模型构件和增量状态。

      1. 对于**加密密钥**，如果您希望 Amazon SageMaker AI 使用 AWS 密钥管理服务密钥对附加到训练实例的 ML 存储卷中的数据进行加密，请指定密钥。

   1. 对于 **Resource limits (资源限制)**，提供以下信息：

      1. 对于 **Maximum training jobs (最大训练作业数)**，请指定您希望超参数优化作业启动的训练作业的最大数目。超参数优化作业最多可启动 500 个训练作业。

      1. 对于 **Maximum parallel training jobs (最大并行训练作业数)**，请指定超参数优化作业可启动的并发训练作业的最大数目。超参数优化作业最多可启动 10 个并发训练作业。

      1. 对于 **Stopping condition (停止条件)**，请指定您希望超参数优化作业启动的每个训练作业运行的最长时间（以秒、分钟、小时或天为单位）。

   1. 对于 **Tags (标签)**，请指定一个或多个标签来管理超参数优化作业。每个标签都由一个键和一个可选值组成。每个资源的标签键必须是唯一的。

   1. 选择 **Create jobs (创建作业)** 以运行超参数优化作业。

## 使用算法运行超参数优化作业 (API)
<a name="sagemaker-mkt-algo-tune-api"></a>

要使用算法通过 SageMaker API 运行超参数调整任务，请将算法的名称或 Amazon 资源名称 (ARN) 指定为传递`AlgorithmName`给的对象[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html)的字段。[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)有关 SageMaker AI 中超参数调整的信息，请参阅[使用 SageMaker AI 自动调整模型](automatic-model-tuning.md)。

## 使用算法运行超参数调优作业（[Amaz SageMaker on Python SDK](https://sagemaker.readthedocs.io/en/stable)）
<a name="sagemaker-mkt-algo-tune-sdk"></a>

使用您创建或订阅的算法创建超参数调整任务，创建`AlgorithmEstimator`对象并指定 Amazon 资源名称 (ARN) 或算法名称作为参数的值。 AWS Marketplace `algorithm_arn`然后，使用您创建的 `AlgorithmEstimator` 作为 `estimator` 参数的值来初始化 `HyperparameterTuner` 对象。最后，调用 `AlgorithmEstimator` 的 `fit` 方法。例如：

```
from sagemaker import AlgorithmEstimator
from sagemaker.tuner import HyperparameterTuner

data_path = os.path.join(DATA_DIR, 'marketplace', 'training')

algo = AlgorithmEstimator(
            algorithm_arn='arn:aws:sagemaker:us-east-2:764419575721:algorithm/scikit-decision-trees-1542410022',
            role='SageMakerRole',
            instance_count=1,
            instance_type='ml.c4.xlarge',
            sagemaker_session=sagemaker_session,
            base_job_name='test-marketplace')

train_input = algo.sagemaker_session.upload_data(
    path=data_path, key_prefix='integ-test-data/marketplace/train')

algo.set_hyperparameters(max_leaf_nodes=10)
tuner = HyperparameterTuner(estimator=algo, base_tuning_job_name='some-name',
                                objective_metric_name='validation:accuracy',
                                hyperparameter_ranges=hyperparameter_ranges,
                                max_jobs=2, max_parallel_jobs=2)

tuner.fit({'training': train_input}, include_cls_metadata=False)
tuner.wait()
```

# 使用模型包创建模型
<a name="sagemaker-mkt-model-pkg-model"></a>

使用模型包创建可部署模型，您可以使用该模型通过创建托管终端节点获取实时推理或运行批量转换作业。您可以使用亚马逊 AI 控制台、低级 SageMaker API 或亚马逊 SageMaker [Pyth SageMaker on](https://sagemaker.readthedocs.io/en/stable) 软件开发工具包创建可部署模型。

**Topics**
+ [使用模型包创建模型（控制台）](#sagemaker-mkt-model-pkg-model-console)
+ [使用模型包创建模型 (API)](#sagemaker-mkt-model-pkg-model-api)
+ [使用模型包创建模型（[亚马逊 SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)）](#sagemaker-mkt-model-pkg-model-sdk)

## 使用模型包创建模型（控制台）
<a name="sagemaker-mkt-model-pkg-model-console"></a>

**从模型包中创建可部署的模型（控制台）**

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 选择 **Model packages (模型包)**。

1. 从**我的模型包**选项卡上的列表中选择您已创建的模型包，或者在 **AWS Marketplace 订阅**选项卡上选择您已订阅的模型包。

1. 选择**创建模型**。

1. 对于 **Model name (模型名称)**，键入模型的名称。

1. 对于 **IAM 角色**，请选择具有代表您调用其他服务所需权限的 IAM 角色，或者选择**创建新角色**以允许 SageMaker AI 创建附加了`AmazonSageMakerFullAccess`托管策略的角色。有关信息，请参阅[如何使用 SageMaker AI 执行角色](sagemaker-roles.md)。

1. 对于 **VPC**，选择您希望允许模型访问的 Amazon VPC。有关更多信息，请参阅 [让 SageMaker AI 托管的终端节点访问您的 Amazon VPC 中的资源](host-vpc.md)。

1. 保留 **Container input options (容器输入选项)** 和 **Choose model package (选择模型包)** 的默认值。

1. 对于环境变量，提供要传递给模型容器的环境变量的名称和值。

1. 对于 **Tags (标签)**，请指定一个或多个标签来管理模型。每个标签都由一个键和一个可选值组成。每个资源的标签键必须是唯一的。

1. 选择**创建模型**。

创建可部署模型后，您可以使用它来设置实时推理的终端节点，或创建批量转换作业来获取对整个数据集的推理。有关在 SageMaker AI 中托管终端节点的信息，请参阅[部署用于推理的模型](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)。

## 使用模型包创建模型 (API)
<a name="sagemaker-mkt-model-pkg-model-api"></a>

要使用模型包通过 SageMaker API 创建可部署模型，请将模型包的名称或 Amazon 资源名称 (ARN) 指定为`ModelPackageName`传递给 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html)的对象的字段。

创建可部署模型后，您可以使用它来设置实时推理的终端节点，或创建批量转换作业来获取对整个数据集的推理。有关 SageMaker AI 中托管终端节点的信息，请参阅[部署模型进行推理](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)。

## 使用模型包创建模型（[亚马逊 SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)）
<a name="sagemaker-mkt-model-pkg-model-sdk"></a>

要使用模型包通过 SageMaker AI Python SDK 创建可部署模型，请初始化`ModelPackage`对象，然后将模型包的 Amazon 资源名称 (ARN) 作为`model_package_arn`参数传递。例如：

```
from sagemaker import ModelPackage
model = ModelPackage(role='SageMakerRole',
         model_package_arn='training-job-scikit-decision-trees-1542660466-6f92',
         sagemaker_session=sagemaker_session)
```

创建可部署模型后，您可以使用它来设置实时推理的终端节点，或创建批量转换作业来获取对整个数据集的推理。有关在 SageMaker AI 中托管终端节点的信息，请参阅[部署用于推理的模型](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)。