批量转换作业运算符 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

批量转换作业运算符

批量转换作业运算符通过在 SageMaker 中启动指定的 Batch 转换作业规范,将其协调到 SageMaker。您可以在 SageMaker 中了解有关 SageMaker 批量变换作业的更多信息CreateTransformJob API 文档.

使用 YAML 文件创建批处理转换作业

  1. 使用以下命令下载批处理转换作业的示例 YAML 文件:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
  2. 编辑文件xgboost-mnist-batchtransform.yaml来更改必要的参数以替换inputdataconfig并使用输入数据s3OutputPath与 SageMaker 执行角色具有写入权限的 Amazon S3 存储桶一起使用。

  3. 使用以下命令应用 YAML 文件:

    kubectl apply -f xgboost-mnist-batchtransform.yaml

使用头盔控制图创建批处理转换作业

您可以使用控制图来运行批处理转换作业。

获取 Helm 安装程序目录

使用以下命令克隆 GitHub 存储库以获取源代码:

git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git

配置头盔图

导航到 amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/ 文件夹。

编辑values.yaml文件来替换inputdataconfig以及 SageMaker 执行角色具有写入权限的 S3 存储桶的输出路径。

创建批处理转换作业

  1. 使用以下命令创建批量转换任务:

    helm install . --generate-name

    您的输出应与以下内容类似:

    NAME: chart-1574292948 LAST DEPLOYED: Wed Nov 20 23:35:49 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thanks for installing the sagemaker-k8s-batch-transform-job.
  2. 要验证 Helm 图是否已成功创建,请运行以下命令:

    helm ls NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-batchtransformjob-0.1.0 chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-hyperparametertuningjob-0.1.0 chart-1574292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-trainingjob-0.1.0 rolebased-1574291698 default 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0

    此命令将创建BatchTransformJobKubernetes 资源。运算符在 SageMaker 中启动实际转换作业,并更新BatchTransformJob库贝内特斯资源来反映 SageMaker 中作业的状态。您需要为在工作期间使用的 SageMaker 资源产生费用。任务完成或停止后,不会产生任何费用。

注意:SageMaker 不允许您更新正在运行的批处理转换作业。您无法编辑任何参数并重新应用文件/配置。您必须更改元数据名称,或者删除现有作业,然后创建新作业。类似于现有的培训工作操作员,如 Kubeflow 中的 TFJob,update不支持 。

列出批处理变换作业

使用以下命令列出使用 Kubernetes 运算符创建的所有作业:

kubectl get batchtransformjob

您的输出应与以下内容类似:

NAME STATUS CREATION-TIME SAGEMAKER-JOB-NAME xgboost-mnist-batch-transform Completed 2019-11-18T03:44:00Z xgboost-mnist-a88fb19809b511eaac440aa8axgboost

作业完成或失败后,批处理转换作业将继续列出。您可以删除hyperparametertuningjob,方法是按照删除 Batch 转换作业步骤进行操作。已完成或停止的作业不会对 SageMaker 资源产生任何费用。

Batch 转换状态值

这些区域有:STATUS字段可以是以下值之一:

  • Completed

  • InProgress

  • Failed

  • Stopped

  • Stopping

这些状态直接来自 SageMaker 官方API 文档.

除了正式的 SageMaker 身份之外,还可以STATUS要成为SynchronizingK8sJobWithSageMaker. 这意味着操作员尚未处理任务。

描述批量转换任务

您可以使用describe kubectl命令。

kubectl describe batchtransformjob xgboost-mnist-batch-transform

您的输出应与以下内容类似:

Name: xgboost-mnist-batch-transform Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"BatchTransformJob","metadata":{"annotations":{},"name":"xgboost-mnist","namespace"... API Version: sagemaker.aws.amazon.com/v1 Kind: BatchTransformJob Metadata: Creation Timestamp: 2019-11-18T03:44:00Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 21990924 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/batchtransformjobs/xgboost-mnist UID: a88fb198-09b5-11ea-ac44-0aa8a9UIDNUM Spec: Model Name: TrainingJob-20190814SMJOb-IKEB Region: us-east-1 Transform Input: Content Type: text/csv Data Source: S 3 Data Source: S 3 Data Type: S3Prefix S 3 Uri: s3://my-bucket/mnist_kmeans_example/input Transform Job Name: xgboost-mnist-a88fb19809b511eaac440aa8a9SMJOB Transform Output: S 3 Output Path: s3://my-bucket/mnist_kmeans_example/output Transform Resources: Instance Count: 1 Instance Type: ml.m4.xlarge Status: Last Check Time: 2019-11-19T22:50:40Z Sage Maker Transform Job Name: xgboost-mnist-a88fb19809b511eaac440aaSMJOB Transform Job Status: Completed Events: <none>

查看来自批处理转换作业的日志

使用以下命令查看xgboost-mnist批量转换任务:

kubectl smlogs batchtransformjob xgboost-mnist-batch-transform

删除批处理转换作业

使用以下命令停止 SageMaker 中的批量转换作业。

kubectl delete batchTransformJob xgboost-mnist-batch-transform

您的输出应与以下内容类似:

batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted

此命令将从 Kubernetes 群集中移除批处理转换作业,并在 SageMaker 中停止它们。已停止或完成的作业不会对 SageMaker 资源产生任何费用。删除大约需要 2 分钟才能清除 SageMaker 中的资源。

注意:SageMaker 不删除批量转换作业。已停止的作业将继续显示在 SageMaker 控制台上。