使用生命週期指令碼自訂 SageMaker HyperPod叢集 - Amazon SageMaker

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

使用生命週期指令碼自訂 SageMaker HyperPod叢集

SageMaker HyperPod 一律 up-and-running提供運算叢集,這些叢集可高度自訂,因為您可以撰寫生命週期指令碼來 SageMaker HyperPod 說明如何設定叢集資源。下列主題是準備生命週期指令碼的最佳實務,以使用開放原始碼工作負載管理器工具設定 SageMaker HyperPod 叢集。

下列主題討論在 上準備生命週期指令碼以設定 Slurm 組態的深入最佳實務 SageMaker HyperPod。

高階概觀

下列程序是佈建 HyperPod 叢集並使用 Slurm 設定叢集的主要流程。這些步驟會依由下而上的方法排列。

  1. 規劃如何在 HyperPod 叢集上建立 Slurm 節點。例如,如果您想要設定兩個 Slurm 節點,則需要在 HyperPod 叢集中設定兩個執行個體群組。

  2. 準備檔案provisioning_parameters.json,即 佈建 Slurm 節點的組態表單 HyperPodprovisioning_parameters.json應包含要在 HyperPod 叢集上佈建的 Slurm 節點組態資訊。這應該反映步驟 1 中 Slurm 節點的設計。

  3. 準備一組生命週期指令碼,在 上設定 Slurm HyperPod ,以安裝軟體套件,並在叢集中為您的使用案例設定環境。您應該以中央 Python 指令碼 (lifecycle_script.py) 的順序建構要集體執行的生命週期指令碼,並撰寫入門 Shell 指令碼 (on_create.sh) 來執行 Python 指令碼。進入點 Shell 指令碼是您在步驟 5 稍後需要提供給 HyperPod叢集建立請求的內容。

    此外,請注意,您應該撰寫指令碼,預期 resource_config.json 會在叢集建立 HyperPod 期間產生。 resource_config.json包含 HyperPod 叢集資源資訊,例如 IP 地址、執行個體類型和 ARNs,而且 是設定 Slurm 所需的項目。

  4. 將所有來自先前步驟的檔案收集到資料夾中。

    └── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py
  5. 將所有檔案上傳至 S3 儲存貯體。複製並保留 S3 儲存貯體路徑。請注意,您應該從 開始建立 S3 儲存貯體路徑,sagemaker-因為您需要選擇與 IAM角色 SageMaker HyperPod連接的 AmazonSageMakerClusterInstanceRolePolicy,這僅允許從字首 開始的 S3 儲存貯體路徑sagemaker-。下列命令是將所有檔案上傳至 S3 儲存貯體的範例命令。

    aws s3 cp --recursive ./lifecycle_files s3://sagemaker-hyperpod-lifecycle/src
  6. 準備 HyperPod 叢集建立請求。

    • 選項 1:如果您使用 AWS CLI,請依照 的指示,以 JSON 格式 (create_cluster.json) 撰寫叢集建立請求建立新的叢集

    • 選項 2:如果您使用 SageMaker 主控台 UI,請按照 的說明,在 HyperPod 主控台 UI 中填寫建立叢集請求表單建立 SageMaker HyperPod 叢集

    在此階段,請確定您在步驟 1 和 2 中規劃的相同結構中建立執行個體群組。此外,請確定您在 請求表單中從步驟 5 指定 S3 儲存貯體。

  7. 提交叢集建立請求。根據請求 HyperPod 佈建叢集,然後在 HyperPod 叢集執行個體中建立resource_config.json檔案,並在執行生命週期指令碼的叢集上設定 Slurm。

下列主題會逐步引導您,並深入探討如何組織組態檔案和生命週期指令碼以在叢集建立期間 HyperPod正常運作的詳細資訊。