本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用生命週期指令碼自訂 SageMaker HyperPod 叢集
SageMaker HyperPod 提供始終啟動並執行中的運算叢集,這些叢集可高度自訂,因為您可以撰寫生命週期指令碼,告知 SageMaker HyperPod 如何設定叢集資源。下列主題是準備生命週期指令碼,以使用開放原始碼工作負載管理員工具,設定 SageMaker HyperPod 叢集的最佳實務。
下列主題深入討論在 SageMaker HyperPod 上準備生命週期指令碼以設定 Slurm 組態的最佳實務。
高階概觀
下列程序是佈建 HyperPod 叢集並使用 Slurm 設定該叢集的主要流程。這些步驟是依由下而上的方式進行。
-
規劃您想要在 HyperPod 叢集上建立 Slurm 節點的方式。例如,如果您想要設定兩個 Slurm 節點,則需要在 HyperPod 叢集中設定兩個執行個體群組。
-
準備
provisioning_parameters.json檔案,這是 在 HyperPod 上佈建 Slurm 節點的組態表單。provisioning_parameters.json應該包含要在 HyperPod 叢集上佈建的 Slurm 節點組態資訊。這應該反映步驟 1 中 Slurm 節點的設計。 -
準備一組生命週期指令碼以在 HyperPod 上設定 Slurm,來安裝軟體套件並在叢集中為您的使用案例設定環境。您應該建構生命週期指令碼,以在中央 Python 指令碼 (
lifecycle_script.py) 中依順序集體執行,並撰寫進入點 Shell 指令碼 (on_create.sh) 來執行 Python 指令碼。進入點 Shell 指令碼是您稍後在步驟 5 需要提供給 HyperPod 叢集建立請求的內容。此外,請注意,您應該撰寫指令碼來預期在叢集建立期間將由 HyperPod 產生的
resource_config.json。resource_config.json包含 HyperPod 叢集資源資訊,例如 IP 位址、執行個體類型和 ARN,以及用於設定 Slurm 所需的內容。 -
將先前步驟中的所有檔案收集到資料夾。
└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py -
將所有檔案上傳至 S3 儲存貯體。複製並保留 S3 儲存貯體路徑。請注意,您應該建立以
sagemaker-開頭的 S3 儲存貯體路徑,因為您需要選擇與 AmazonSageMakerClusterInstanceRolePolicy 連接的 SageMaker HyperPod 的 IAM 角色,這僅允許以字首sagemaker-開頭的 S3 儲存貯體路徑。下列命令是將所有檔案上傳至 S3 儲存貯體的範例命令。aws s3 cp --recursive./lifecycle_filess3://sagemaker-hyperpod-lifecycle/src -
準備 HyperPod 叢集建立請求。
-
選項 1:如果您使用 AWS CLI,請依照 中的指示,以 JSON 格式 (
create_cluster.json) 撰寫叢集建立請求建立新叢集。 -
選項 2:如果您使用 SageMaker AI 主控台 UI,請遵循建立 SageMaker HyperPod 叢集中的指示,在 HyperPod 主控台 UI 中填寫建立叢集請求表單。
在此階段,請確定您以步驟 1 和 2 中規劃的相同結構建立執行個體群組。此外,請確定您在請求表單中指定來自步驟 5 的 S3 儲存貯體。
-
-
提交叢集建立請求。HyperPod 會根據請求佈建叢集,然後在 HyperPod 叢集執行個體中建立
resource_config.json檔案,並在執行生命週期指令碼的叢集上設定 Slurm。
下列主題將引導您深入了解如何組織組態檔案和生命週期指令碼,以在 HyperPod 叢集建立期間正常運作。