使用 SageMaker HyperPod CLI 运行作业 - 亚马逊 SageMaker AI

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

使用 SageMaker HyperPod CLI 运行作业

要运行作业,请确保在 EKS 集群中安装了 Kubeflow Training Operator。有关更多信息,请参阅 使用 Helm 在 Amazon EKS 集群上安装软件包

运行hyperpod get-cluster命令以获取可用 HyperPod 集群列表。

hyperpod get-clusters

运行,hyperpod connect-cluster配置 SageMaker HyperPod CLI,让 EKS 集群负责协调集群。 HyperPod

hyperpod connect-cluster --cluster-name <hyperpod-cluster-name>

使用 hyperpod start-job 命令运行作业。下面的命令显示了带有所需选项的命令。

hyperpod start-job \ --job-name <job-name> --image <docker-image-uri> --entry-script <entrypoint-script> --instance-type <ml.instance.type> --node-count <integer>

hyperpod start-job 命令还包含各种选项,如作业自动恢复和作业调度。

启用作业自动恢复

hyperpod start-job 命令还有以下选项用于指定作业自动恢复。要使用 SageMaker HyperPod节点弹性功能启用作业自动恢复,必须将该restart-policy选项的值设置为。OnFailure作业必须在 kubeflow 命名空间或以 hyperpod 为前缀的命名空间下运行。

  • [--auto-resume<bool>] #可选项,启用作业失败后自动恢复,默认为 false

  • [--max-retry<int>] #可选项,如果自动恢复为 true,如果未指定,最大重试默认为 1

  • [--restart-policy<enum>] #Optional,重启策略。 PyTorchJob 可用值为 AlwaysOnFailureNeverExitCode。默认值为 OnFailure

hyperpod start-job \ ... // required options \ --auto-resume true \ --max-retry 3 \ --restart-policy OnFailure

使用调度选项运行作业

hyperpod start-job 命令有以下选项,用于使用队列机制设置作业。

注意

您需要在 EKS 集群中安装 Kueue。如果您尚未安装,请按照中的说明进行操作 SageMaker HyperPod 任务管理设置

  • [--scheduler-type<enum>] #可选项,指定调度程序类型。默认值为 Kueue

  • [--queue-name<string>] #可选项,指定要与作业一起提交的本地队列集群队列的名称。队列应由集群管理员使用CreateComputeQuota创建。

  • [--priority<string>] #可选项,指定应由集群管理员创建的工作负载优先级类别的名称。

hyperpod start-job \ ... // required options --scheduler-type Kueue \ --queue-name high-priority-queue \ --priority high

从配置文件运行作业

另一种方法是创建包含作业所需全部参数的作业配置文件,然后使用 --config-file 选项将该配置文件传递给 hyperpod start-job 命令。在本例中:

  1. 创建包含所需参数的作业配置文件。有关基准配置文件,请参阅 SageMaker HyperPod CLI GitHub 存储库中的作业配置文件

  2. 使用配置文件启动作业,如下所示。

    hyperpod start-job --config-file /path/to/test_job.yaml
提示

有关hyperpod start-job命令参数的完整列表,请参阅 SageMaker HyperPod CLI GitHub 存储库中的 “提交 Job” 部分。README.md