

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

# 使用 `modeltransform` 命令进行模型转换
<a name="machine-learning-api-modeltransform"></a>

您可以使用 Neptune ML `modeltransform` 命令创建模型转换任务、检查其状态、停止它或列出所有活动的模型转换任务。

## 使用 Neptune ML `modeltransform` 命令创建模型转换任务
<a name="machine-learning-api-modeltransform-create-job"></a>

用于创建增量转换任务的 Neptune ML `modeltransform` 命令（无需重新训练模型）如下所示：

```
curl \
  -X POST https://(your Neptune endpoint)/ml/modeltransform
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-transform job ID)",
        "dataProcessingJobId" : "(the job-id of a completed data-processing job)",
        "mlModelTrainingJobId" : "(the job-id of a completed model-training job)",
        "modelTransformOutputS3Location" : "s3://(your Amazon S3 bucket)/neptune-model-transform"
      }'
```

用于从已完成的 SageMaker AI 训练作业中创建任务的 Neptune ML `modeltransform` 命令如下所示：

```
curl \
  -X POST https://(your Neptune endpoint)/ml/modeltransform
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-transform job ID)",
        "trainingJobName" : "(name of a completed SageMaker AI training job)",
        "modelTransformOutputS3Location" : "s3://(your Amazon S3 bucket)/neptune-model-transform",
        "baseProcessingInstanceType" : ""
      }'
```

用于创建使用自定义模型实现的任务的 Neptune ML `modeltransform` 命令如下所示：

```
curl \
  -X POST https://(your Neptune endpoint)/ml/modeltransform
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-training job ID)",
        "trainingJobName" : "(name of a completed SageMaker AI training job)",
        "modelTransformOutputS3Location" : "s3://(your Amazon S3 bucket)/neptune-model-transform/"
        "customModelTransformParameters" : {
          "sourceS3DirectoryPath": "s3://(your Amazon S3 bucket)/(path to your Python module)",
          "transformEntryPointScript": "(your transform script entry-point name in the Python module)"
        }
      }'
```

**用于创建 `modeltransform` 任务的参数**
+ **`id`** –（*可选*）新任务的唯一标识符。

  *类型*：字符串。*默认*：自动生成的 UUID。
+ **`dataProcessingJobId`**– 已完成的数据处理任务的任务 ID。

  *类型*：字符串。

  *注意*：必须同时包含 `dataProcessingJobId` 和 `mlModelTrainingJobId` 或 `trainingJobName`。
+ **`mlModelTrainingJobId`** – 已完成的模型训练任务的任务 ID。

  *类型*：字符串。

  *注意*：必须同时包含 `dataProcessingJobId` 和 `mlModelTrainingJobId` 或 `trainingJobName`。
+ **`trainingJobName`**— 已完成的 A SageMaker I 训练作业的名称。

  *类型*：字符串。

  *注意*：必须同时包含 `dataProcessingJobId` 和 `mlModelTrainingJobId` 参数或 `trainingJobName` 参数。
+ **`sagemakerIamRoleArn`**—（*可选*）用于 A SageMaker I 执行的 IAM 角色的 ARN。

  *类型*：字符串。*注意*：必须将其列在您的数据库集群参数组中，否则将发生错误。
+ **`neptuneIamRoleArn`**—（*可选*）向 Neptune 提供 AI 和 A SageMaker mazon S3 资源访问权限的 IAM 角色的 ARN。

  *类型*：字符串。*注意*：必须将其列在您的数据库集群参数组中，否则将发生错误。
+ **`customModelTransformParameters `** –（*可选*）使用自定义模型进行模型转换的配置信息。`customModelTransformParameters` 对象包含以下字段，这些字段的值必须与训练任务中保存的模型参数兼容：
  + **`sourceS3DirectoryPath`** –（*必需*）实现您的模型的 Python 模块所在的 Amazon S3 位置的路径。这必须指向有效的现有 Amazon S3 位置，其中至少包含训练脚本、转换脚本和 `model-hpo-configuration.json` 文件。
  + **`transformEntryPointScript`** –（*可选*）脚本模块中入口点的名称，该脚本应在确定超参数搜索中的最佳模型之后运行，以计算模型部署所需的模型构件。它应该能够在没有命令行参数的情况下运行。

    *默认值*：`transform.py`。
+ **`baseProcessingInstanceType`** –（*可选*）用于准备和管理机器学习模型训练的机器学习实例的类型。

  *类型*：字符串。*注意*：这是根据用于处理转换数据和模型的内存要求选择的 CPU 实例。请参阅[为模型训练和模型转换选择实例](machine-learning-on-graphs-instance-selection.md#machine-learning-on-graphs-training-transform-instance-size)。
+ **`baseProcessingInstanceVolumeSizeInGB`** –（*可选*）训练实例的磁盘卷大小。输入数据和输出模型都存储在磁盘上，因此卷大小必须足够大，以容纳两个数据集。

  *类型*：整数。*默认值*：`0`。

  *注意*：如果未指定或为 0，Neptune ML 会根据数据处理步骤中生成的建议选择磁盘卷大小。请参阅[为模型训练和模型转换选择实例](machine-learning-on-graphs-instance-selection.md#machine-learning-on-graphs-training-transform-instance-size)。
+ **`subnets`**—（*可选*）Ne IDs ptune VPC 中的子网。

  *类型*：字符串列表。*默认值*：*无*。
+ **`securityGroupIds`**—（*可选*）VPC 安全组 IDs。

  *类型*：字符串列表。*默认值*：*无*。
+ **`volumeEncryptionKMSKey`**—（*可选*） SageMaker AI 用来加密连接到运行转换作业的 ML 计算实例的存储卷上的数据的 Amazon Key Management Service (Amazon KMS) 密钥。

  *类型*：字符串。*默认值*：*无*。
+ **`enableInterContainerTrafficEncryption`** –（*可选*）在训练或超参数调整任务中启用或禁用容器间流量加密。

  *类型*：布尔值。*默认值*：*True*。
**注意**  
`enableInterContainerTrafficEncryption` 参数仅在[引擎版本 1.2.0.2.R3](engine-releases-1.2.0.2.R3.md) 中可用。
+ **`s3OutputEncryptionKMSKey`**—（*可选*Amazon KMS） SageMaker AI 用来加密处理作业输出的 Amazon Key Management Service () 密钥。

  *类型*：字符串。*默认值*：*无*。

## 使用 Neptune ML `modeltransform` 命令获取模型转换任务的状态
<a name="machine-learning-api-modeltransform-get-job-status"></a>

用于显示任务状态的示例 Neptune ML `modeltransform` 命令如下所示：

```
curl -s \
  "https://(your Neptune endpoint)/ml/modeltransform/(the job ID)" \
  | python -m json.tool
```

**`modeltransform` 任务状态的参数**
+ **`id`** –（*必需*）模型转换任务的唯一标识符。

  *类型*：字符串。
+ **`neptuneIamRoleArn`**—（*可选*）向 Neptune 提供 AI 和 A SageMaker mazon S3 资源访问权限的 IAM 角色的 ARN。

  *类型*：字符串。*注意*：必须将其列在您的数据库集群参数组中，否则将发生错误。

## 使用 Neptune ML `modeltransform` 命令停止模型转换任务
<a name="machine-learning-api-modeltransform-stop-job"></a>

用于停止任务的示例 Neptune ML `modeltransform` 命令如下所示：

```
curl -s \
  -X DELETE "https://(your Neptune endpoint)/ml/modeltransform/(the job ID)"
```

或者：

```
curl -s \
  -X DELETE "https://(your Neptune endpoint)/ml/modeltransform/(the job ID)?clean=true"
```

**`modeltransform` 停止任务的参数**
+ **`id`** –（*必需*）模型转换任务的唯一标识符。

  *类型*：字符串。
+ **`neptuneIamRoleArn`**—（*可选*）向 Neptune 提供 AI 和 A SageMaker mazon S3 资源访问权限的 IAM 角色的 ARN。

  *类型*：字符串。*注意*：必须将其列在您的数据库集群参数组中，否则将发生错误。
+ **`clean`** –（*可选*）此标志指定在任务停止时应删除所有 Amazon S3 构件。

  *类型*：布尔值。*默认值*：`FALSE`。

## 使用 Neptune ML `modeltransform` 命令列出活动的模型转换任务
<a name="machine-learning-api-modeltransform-list-jobs"></a>

用于列出活动任务的示例 Neptune ML `modeltransform` 命令如下所示：

```
curl -s "https://(your Neptune endpoint)/ml/modeltransform" | python -m json.tool
```

或者：

```
curl -s "https://(your Neptune endpoint)/ml/modeltransform?maxItems=3" | python -m json.tool
```

**`modeltransform` 列出任务的参数**
+ **`maxItems`** –（*可选*），表示要返回的最大项目数。

  *类型*：整数。*默认值*：`10`。*允许的最大值*：`1024`。
+ **`neptuneIamRoleArn`**—（*可选*）向 Neptune 提供 AI 和 A SageMaker mazon S3 资源访问权限的 IAM 角色的 ARN。

  *类型*：字符串。*注意*：必须将其列在您的数据库集群参数组中，否则将发生错误。