選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 SageMaker HyperPod APIs AWS CLI 命令

焦點模式
使用 SageMaker HyperPod APIs AWS CLI 命令 - Amazon SageMaker AI

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

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

使用 HyperPod 的 AWS CLI 命令建立您的第一個 SageMaker HyperPod 叢集。

使用 Slurm 建立您的第一個 SageMaker HyperPod 叢集

下列教學課程示範如何建立新的 SageMaker HyperPod 叢集,並透過 AWS CLI SageMaker HyperPod 的命令使用 Slurm 進行設定。遵循教學課程,您將建立具有三個 Slurm 節點 my-controller-groupmy-login-group和 的 HyperPod 叢集worker-group-1

  1. 首先,準備生命週期指令碼並將其上傳至 Amazon S3 儲存貯體。在叢集建立期間,HyperPod 會在每個執行個體群組中執行它們。使用下列命令將生命週期指令碼上傳至 Amazon S3。

    aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
    注意

    S3 儲存貯體路徑應該以字首 開頭sagemaker-,因為SageMaker HyperPod 的 IAM 角色具有 的 AmazonSageMakerClusterInstanceRolePolicy僅允許存取以特定字首開頭的 Amazon S3 儲存貯體。

    如果您是從頭開始,請使用 Awsome 分散式訓練 GitHub 儲存庫中提供的範例生命週期指令碼。下列子步驟說明如何下載、修改內容,以及如何將範例生命週期指令碼上傳至 Amazon S3 儲存貯體。

    1. 將生命週期指令碼範例的複本下載到本機電腦上的目錄。

      git clone https://github.com/aws-samples/awsome-distributed-training/
    2. 前往 目錄1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config,您可以在其中找到一組生命週期指令碼。

      cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config

      若要進一步了解生命週期指令碼範例,請參閱 使用生命週期指令碼自訂 SageMaker HyperPod 叢集

    3. 撰寫 Slurm 組態檔案,並將其儲存為 provisioning_params.json。在 檔案中,指定基本 Slurm 組態參數,以將 Slurm 節點正確指派給 SageMaker HyperPod 叢集執行個體群組。在本教學課程中,設定三個名為 my-controller-groupmy-login-group和 的 Slurm 節點worker-group-1,如下列範例組態 所示provisioning_params.json

      { "version": "1.0.0", "workload_manager": "slurm", "controller_group": "my-controller-group", "login_group": "my-login-group", "worker_groups": [ { "instance_group_name": "worker-group-1", "partition_name": "partition-1" } ] }
    4. 將指令碼上傳至 s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src。您可以使用 Amazon S3 主控台,或執行下列 AWS CLI Amazon S3 命令來執行此操作。

      aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
  2. 準備 JSON 格式的 CreateCluster 請求檔案,並儲存為 create_cluster.json。下列請求範本與步驟 1.c provisioning_params.json 中 定義的 Slurm 節點組態一致。針對 ExecutionRole,提供您在 AmazonSageMakerClusterInstanceRolePolicy中以 受管 所建立之 IAM 角色的 ARN使用 SageMaker HyperPod 的先決條件

    { // Required: Specify the name of the cluster. "ClusterName": "my-hyperpod-cluster", // Required: Configure instance groups to be launched in the cluster "InstanceGroups": [ { // Required: Specify the basic configurations to set up a controller node. "InstanceGroupName": "my-controller-group", "InstanceType": "ml.c5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}", // Optional: Configure an additional storage per instance group. "InstanceStorageConfigs": [ { // Attach an additional EBS volume to each instance within the instance group. // The default mount path for the additional EBS volume is /opt/sagemaker. "EbsVolumeConfig":{ // Specify an integer between 1 and 16384 in gigabytes (GB). "VolumeSizeInGB": integer, } } ] }, { "InstanceGroupName": "my-login-group", "InstanceType": "ml.m5.4xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}" }, { "InstanceGroupName": "worker-group-1", "InstanceType": "ml.trn1.32xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}" } ] }
  3. 執行下列命令來建立叢集。

    aws sagemaker create-cluster --cli-input-json file://complete/path/to/create_cluster.json

    這應該會傳回所建立叢集的 ARN。

    如果您因為資源限制而收到錯誤,請確定您將執行個體類型變更為帳戶中具有足夠配額的執行個體類型,或遵循 中的 來請求額外的配額SageMaker HyperPod 配額

  4. 執行 describe-cluster 以檢查叢集的狀態。

    aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster

    在叢集的狀態變為 後InService,繼續下一個步驟。

  5. 執行 list-cluster-nodes 以檢查叢集節點的詳細資訊。

    aws sagemaker list-cluster-nodes --cluster-name my-hyperpod-cluster

    這會傳回回應,而 InstanceId是您的叢集使用者記錄 (aws ssm) 到其中所需的項目。如需登入叢集節點和執行 ML 工作負載的詳細資訊,請參閱SageMaker HyperPod 叢集上的任務

刪除叢集並清除資源

在您成功測試建立 SageMaker HyperPod 叢集之後,它會繼續以 InService 狀態執行,直到您刪除叢集為止。我們建議您在不使用時刪除使用隨需 SageMaker AI 容量建立的任何叢集,以避免根據隨需定價產生持續的服務費用。在本教學課程中,您已建立由兩個執行個體群組組成的叢集。其中一個使用 C5 執行個體,因此請務必執行下列命令來刪除叢集。

aws sagemaker delete-cluster --cluster-name my-hyperpod-cluster

若要清除本教學課程所用 Amazon S3 儲存貯體的生命週期指令碼,請前往您在叢集建立期間使用的 Amazon S3 儲存貯體,並完全移除檔案。

如果您已測試在叢集上執行任何模型訓練工作負載,也請檢查您是否已上傳任何資料,或您的任務是否已將任何成品儲存至不同的 Amazon S3 儲存貯體或檔案系統服務,例如 Amazon FSx for Lustre 和 Amazon Elastic File System。若要避免產生費用,請從儲存體或檔案系統刪除所有成品和資料。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。