使用 SageMaker HyperPod CLI 執行任務 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 SageMaker HyperPod CLI 執行任務

若要執行任務,請確定您已在 EKS 叢集中安裝 Kubeflow Training Operator。如需詳細資訊,請參閱使用 Helm 在 Amazon EKS 叢集上安裝套件

執行 hyperpod get-cluster 命令以取得可用的 HyperPod 叢集清單。

hyperpod get-clusters

執行 hyperpod connect-cluster 以使用協作 HyperPod 叢集的 EKS 叢集來設定 SageMaker HyperPod CLI。

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>] #選用,如果 auto-resume 為 true,則 max-retry 預設值為 1,若未指定的話

  • [--restart-policy <enum>] #選用, 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>] #Optional,指定排程器類型。預設值為 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 儲存庫 README.md 中的提交任務一節。