本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 SageMaker HyperPod 主控台 UI 建立您的第一個 SageMaker HyperPod 叢集。
使用 Slurm 建立您的第一個 SageMaker HyperPod 叢集
下列教學課程示範如何建立新的 SageMaker HyperPod 叢集,並透過 SageMaker AI 主控台 UI 使用 Slurm 進行設定。遵循教學課程,您將建立具有三個 Slurm 節點 my-controller-group
、 my-login-group
和 的 HyperPod 叢集worker-group-1
。
在 https://console.aws.amazon.com/sagemaker/
:// 開啟 Amazon SageMaker AI 主控台。 -
在左側導覽窗格中選擇 HyperPod 叢集,然後選擇叢集管理。
-
在 SageMaker HyperPod 叢集頁面上,選擇建立叢集。
-
在步驟 1:叢集設定中,指定新叢集的名稱。略過標籤區段。
-
在步驟 2:執行個體群組中,新增執行個體群組。每個執行個體群組的設定可以不同,而且您可以建立異質叢集,其中包含具有各種執行個體類型的多個執行個體群組。對於要在叢集建立期間於執行個體群組上執行的生命週期組態指令碼,您可以使用 Awsome 分散式訓練 GitHub 儲存庫
中提供的範例生命週期指令碼開始。 -
針對執行個體群組名稱,指定執行個體群組的名稱。在此教學課程中,建立三個名為
my-controller-group
、my-login-group
和 的執行個體群組worker-group-1
。 -
針對選取執行個體類型,選擇執行個體群組的執行個體。針對本教學課程,
ml.c5.xlarge
請針對my-controller-group
、ml.m5.4xlarge
針對my-login-group
和ml.trn1.32xlarge
針對 選取worker-group-1
。請確定您選擇帳戶中具有足夠配額的執行個體類型,或遵循 中的 來請求額外的配額SageMaker HyperPod 配額。
-
針對數量,指定不超過叢集用量執行個體配額的整數。在本教學課程中,輸入 1 表示所有三個群組。
-
針對生命週期指令碼檔案的 S3 路徑,輸入生命週期指令碼存放所在的 Amazon S3 路徑。如果您沒有生命週期指令碼,請執行下列子步驟,以使用 SageMaker HyperPod 服務團隊提供的基本生命週期指令碼。
-
git clone https://github.com/aws-samples/awsome-distributed-training/
-
在 下
1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
,您可以找到一組基本生命週期指令碼。若要進一步了解生命週期指令碼,請參閱 使用生命週期指令碼自訂 SageMaker HyperPod 叢集。 -
撰寫 Slurm 組態檔案,並將其儲存為
provisioning_params.json
。在 檔案中,指定基本 Slurm 組態參數,以將 Slurm 節點正確指派給 SageMaker HyperPod 叢集執行個體群組。例如,根據透過先前步驟 5a、5b 和 5c 設定的 HyperPod 叢集執行個體群組,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
" } ] } -
將指令碼上傳至您的 Amazon S3 儲存貯體。使用下列格式的路徑建立 S3 儲存貯體:
s3://sagemaker-
。您可以使用 Amazon S3 主控台建立此儲存貯體。<unique-s3-bucket-name>
/<lifecycle-script-directory>
/src注意
您必須使用 S3 儲存貯體路徑
sagemaker-
的字首,因為 SageMaker HyperPod 的 IAM 角色AmazonSageMakerClusterInstanceRolePolicy
只允許主體存取具有此特定字首的 S3 儲存貯體。
-
-
針對建立中生命週期指令碼的目錄路徑,請在 SS3 路徑下輸入生命週期指令碼的檔案名稱,以存取生命週期指令碼檔案。
-
對於 IAM 角色,
AmazonSageMakerClusterInstanceRolePolicy
請從 區段中選擇您使用 建立的 IAM 角色SageMaker HyperPod 的 IAM 角色。 -
在進階組態下,您可以設定下列選用組態。
-
(選用) 對於每個核心的執行緒,請
1
指定 以停用多執行緒,以及2
以啟用多執行緒。若要尋找支援多執行緒的執行個體類型,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的每個執行個體類型的 CPU 核心和每個 CPU 核心執行緒的參考表。 -
(選用) 對於其他執行個體儲存體組態,請指定介於 1 到 16384 之間的整數,以 GB (GB) 為單位設定額外的彈性區塊存放區 (EBS) 磁碟區的大小。EBS 磁碟區會連接至執行個體群組的每個執行個體。額外 EBS 磁碟區的預設掛載路徑為
/opt/sagemaker
。叢集建立成功後,您可以 SSH 進入叢集執行個體 (節點),並透過執行df -h
命令來驗證 EBS 磁碟區是否正確掛載。連接額外的 EBS 磁碟區可提供穩定、意外和獨立持久的儲存,如 Amazon Elastic Block Store 使用者指南中的 Amazon EBS 磁碟區一節中所述。
-
-
-
在步驟 3:進階組態中,設定叢集內外的網路設定。如果您已經有讓 SageMaker AI 存取 VPC 的 VPC,請選取自己的 VPC。如果您沒有 VPC,但想要建立新的 VPC,請遵循 Amazon Virtual Private Cloud 使用者指南中建立 VPC 的指示。您可以將其保留為無 VPC,以使用預設 SageMaker AI VPC。
-
在步驟 4:檢閱和建立中,檢閱您從步驟 1 到 3 設定的組態,並完成提交叢集建立請求。
-
新的叢集應該會出現在 SageMaker HyperPod 主控台主窗格中的叢集下。您可以檢查狀態欄下顯示的狀態。
-
在叢集的狀態變成 後
InService
,您可以開始登入叢集節點。若要存取叢集節點並開始執行 ML 工作負載,請參閱 SageMaker HyperPod 叢集上的任務。
刪除叢集並清除資源
在您成功測試建立 SageMaker HyperPod 叢集之後,它會繼續以 InService
狀態執行,直到您刪除叢集為止。我們建議您在不使用時刪除使用隨需 SageMaker AI 執行個體建立的任何叢集,以避免根據隨需定價產生持續的服務費用。在本教學課程中,您已建立由兩個執行個體群組組成的叢集。其中一個使用 C5 執行個體,因此請務必遵循 中的指示刪除叢集刪除 SageMaker HyperPod 叢集。
不過,如果您已建立具有預留運算容量的叢集,叢集的狀態不會影響服務計費。
若要清除本教學課程所用 S3 儲存貯體的生命週期指令碼,請前往您在叢集建立期間使用的 S3 儲存貯體,並完全移除檔案。
如果您已測試在叢集上執行任何工作負載,請確定是否已上傳任何資料,或您的任務是否將任何成品儲存至不同的 S3 儲存貯體或檔案系統服務,例如 Amazon FSx for Lustre 和 Amazon Elastic File System。若要避免產生任何費用,請從儲存體或檔案系統刪除所有成品和資料。