

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

# 使用 SageMaker AI 主控台開始使用 SageMaker HyperPod
<a name="smcluster-getting-started-slurm-console"></a>

下列教學課程示範如何建立新的 SageMaker HyperPod 叢集，並透過 SageMaker AI 主控台 UI 使用 Slurm 進行設定。遵循教學課程，您將建立一個 HyperPod 叢集，其中具有三個 Slurm 節點，即 `my-controller-group`、`my-login-group` 和 `worker-group-1`。

**注意**  
HyperPod 現在支援在沒有生命週期指令碼的情況下建立 Slurm 叢集。您可以使用 AMI 型組態建立功能完整的叢集、使用延伸指令碼擴展叢集，或繼續使用自訂生命週期指令碼進行完全控制。

**Topics**
+ [建立叢集](#smcluster-getting-started-slurm-console-create-cluster-page)
+ [部署資源](#smcluster-getting-started-slurm-console-create-cluster-deploy)
+ [刪除叢集並清理資源](#smcluster-getting-started-slurm-console-delete-cluster-and-clean)

## 建立叢集
<a name="smcluster-getting-started-slurm-console-create-cluster-page"></a>

若要導覽至 **SageMaker HyperPod 叢集**頁面並選擇 **Slurm** 協同運作，請遵循下列步驟。

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽窗格中選擇 **HyperPod 叢集**，然後選擇**叢集管理**。

1. 在 **SageMaker HyperPod 叢集**頁面上，選擇**建立 HyperPod 叢集**。

1. 在**建立 HyperPod 叢集**下拉式清單中，選擇**透過 Slurm 協調**。

1. 在 Slurm 叢集建立頁面上，您會看到兩個選項。選擇最符合您需求的選項。

   1. **快速設定** - 若要立即開始使用預設設定，請選擇**快速設定**。使用此選項，SageMaker AI 將在建立叢集的過程中建立新的資源，例如 VPC、子網路、安全群組、Amazon S3 儲存貯體、IAM 角色和 FSx for Lustre。

   1. **自訂設定** - 若要與現有 AWS 資源整合，或具有特定的聯網、安全性或儲存需求，請選擇**自訂設定**。使用此選項，您可以選擇使用現有資源或建立新的資源，也可以自訂最符合您需求的組態。

## 快速設定
<a name="smcluster-getting-started-slurm-console-create-cluster-default"></a>

在**快速設定**區段上，遵循下列步驟建立與 Slurm 協同運作的 HyperPod 叢集。

### 一般設定
<a name="smcluster-getting-started-slurm-console-create-cluster-default-general"></a>

指定新叢集的名稱。在建立資料庫叢集之後，無法變更名稱。

### 執行個體群組
<a name="smcluster-getting-started-slurm-console-create-cluster-default-instance-groups"></a>

若要新增執行個體群組，請選擇**新增群組**。每個執行個體群組的設定方式可以不同，而且您可以建立異質叢集，其中包含多個具有各種執行個體類型的執行個體群組。若要部署叢集，您必須為控制器和運算群組類型新增至少一個執行個體群組。

**重要**  
您可以一次新增一個執行個體群組。若要建立多個執行個體群組，請為每個執行個體群組重複此程序。

請遵循下列步驟來新增執行個體群組。

1. 針對**執行個體群組類型**，選擇執行個體群組的類型。針對本教學課程，為 `my-controller-group` 選擇**控制器 (主)**、為 `my-login-group` 選擇**登入**，以及為 `worker-group-1` 選擇**運算 (工作者)**。

1. 針對**名稱**，指定執行個體群組的名稱。針對本教學課程，請建立三個名為 `my-controller-group`、`my-login-group` 和 `worker-group-1` 的執行個體群組。

1.  針對**執行個體容量**，選擇隨需容量或訓練計劃以預留您的運算資源。

1. 針對**執行個體類型**，選擇執行個體群組的執行個體。針對本教學課程，為 `my-controller-group` 選取 `ml.c5.xlarge`、為 `my-login-group` 選取 `ml.m5.4xlarge`，以及為 `worker-group-1` 選取 `ml.trn1.32xlarge`。
**重要**  
請務必為您的帳戶選擇具有足夠配額和足夠未指派 IP 位址的執行個體類型。若要檢視或請求額外配額，請參閱 [SageMaker HyperPod 配額](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas)。

1. 針對**執行個體數量**，指定不超過叢集用量之執行個體配額的整數。針對本教學課程，輸入 **1** 表示所有三個群組。

1. 針對**目標可用區域**，選擇將佈建執行個體的可用區域。可用區域應對應至加速運算容量的位置。

1. 針對**每個執行個體的額外儲存磁碟區 (GB) - 選用**，請指定介於 1 與 16384 之間的整數，以 GB 為單位設定額外彈性區塊存放區 (EBS) 磁碟區的大小。EBS 磁碟區會連接至執行個體群組的每個執行個體。額外 EBS 磁碟區的預設掛載路徑為 `/opt/sagemaker`。在成功建立叢集之後，您可以對叢集執行個體 (節點) 執行 SSH，並透過執行 `df -h` 命令來驗證 EBS 磁碟區是否正確掛載。如《Amazon Elastic Block Store 使用者指南》**中的 [Amazon EBS 磁碟區](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html)一節所述，連接額外的 EBS 磁碟區可提供穩定、與執行個體分離且獨立保留的儲存體。

1. 選擇**新增執行個體群組**。

### 快速設定預設值
<a name="smcluster-getting-started-slurm-console-create-cluster-default-settings"></a>

本節列出叢集建立的所有預設設定，包括在叢集建立程序期間建立的所有新 AWS 資源。檢閱預設設定。

**注意**  
快速設定會自動使用預設生命週期指令碼。新的 AMI 型組態選項 （無生命週期指令碼） 只能透過自訂設定使用。如果您想要建立沒有生命週期指令碼的叢集，請選擇自訂設定，然後在**生命週期指令碼**下選擇**無**。

## 自訂設定
<a name="smcluster-getting-started-slurm-console-create-cluster-custom"></a>

在**自訂設定**區段上，遵循下列步驟使用 Slurm 協同運作建立 HyperPod 叢集。

### 一般設定
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-general"></a>

指定新叢集的名稱。在建立資料庫叢集之後，無法變更名稱。

針對**執行個體復原**，選擇**自動 - *建議***或**無**。

### 聯網
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-network"></a>

設定您的網路設定以建立叢集。叢集建立之後就無法變更這些設定。

1. 針對 **VPC**，如果您已有允許 SageMaker AI 存取您 VPC 的 VPC，請選擇自己的 VPC。若要建立新的 VPC，請遵循《Amazon Virtual Private Cloud 使用者指南》**中[建立 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) 的指示。您可以將其保留為**無**，以使用預設 SageMaker AI VPC。

1. 針對 **VPC IPv4 CIDR 區塊**，輸入 VPC 的起始 IP。

1. 針對**可用區域**，選擇 HyperPod 將在其中為叢集建立子網路的可用區域 (AZ)。選擇符合您加速運算容量位置的 AZ。

1. 針對**安全群組**，建立安全群組，或選擇最多五個使用規則設定的安全群組，以允許 VPC 內的資源間通訊。

### 執行個體群組
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-instance-groups"></a>

若要新增執行個體群組，請選擇**新增群組**。每個執行個體群組的設定方式可以不同，而且您可以建立異質叢集，其中包含多個具有各種執行個體類型的執行個體群組。若要部署叢集，您必須至少新增一個執行個體群組。

**重要**  
您可以一次新增一個執行個體群組。若要建立多個執行個體群組，請為每個執行個體群組重複此程序。

請遵循下列步驟來新增執行個體群組。

1. 針對**執行個體群組類型**，選擇執行個體群組的類型。針對本教學課程，為 `my-controller-group` 選擇**控制器 (主)**、為 `my-login-group` 選擇**登入**，以及為 `worker-group-1` 選擇**運算 (工作者)**。

1. 針對**名稱**，指定執行個體群組的名稱。針對本教學課程，請建立三個名為 `my-controller-group`、`my-login-group` 和 `worker-group-1` 的執行個體群組。

1.  針對**執行個體容量**，選擇隨需容量或訓練計劃以預留您的運算資源。

1. 針對**執行個體類型**，選擇執行個體群組的執行個體。針對本教學課程，為 `my-controller-group` 選取 `ml.c5.xlarge`、為 `my-login-group` 選取 `ml.m5.4xlarge`，以及為 `worker-group-1` 選取 `ml.trn1.32xlarge`。
**重要**  
請務必為您的帳戶選擇具有足夠配額和足夠未指派 IP 位址的執行個體類型。若要檢視或請求額外配額，請參閱 [SageMaker HyperPod 配額](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas)。

1. 針對**執行個體數量**，指定不超過叢集用量之執行個體配額的整數。針對本教學課程，輸入 **1** 表示所有三個群組。

1. 針對**目標可用區域**，選擇將佈建執行個體的可用區域。可用區域應對應至加速運算容量的位置。

1. 針對**每個執行個體的額外儲存磁碟區 (GB) - 選用**，請指定介於 1 與 16384 之間的整數，以 GB 為單位設定額外彈性區塊存放區 (EBS) 磁碟區的大小。EBS 磁碟區會連接至執行個體群組的每個執行個體。額外 EBS 磁碟區的預設掛載路徑為 `/opt/sagemaker`。在成功建立叢集之後，您可以對叢集執行個體 (節點) 執行 SSH，並透過執行 `df -h` 命令來驗證 EBS 磁碟區是否正確掛載。如《Amazon Elastic Block Store 使用者指南》**中的 [Amazon EBS 磁碟區](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html)一節所述，連接額外的 EBS 磁碟區可提供穩定、與執行個體分離且獨立保留的儲存體。

1. 針對 **Slurm 分割區名稱** （僅限運算群組），輸入此運算執行個體群組的 Slurm 分割區名稱。分割區做為邏輯佇列，以組織任務在不同節點集之間的排程方式。

1. 選擇**新增執行個體群組**。

### 生命週期組態 - 選用
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-lifecycle"></a>

設定叢集中的節點佈建方式。您的選擇會影響 Amazon S3 儲存貯體需求、網際網路存取需求和佈建複雜性。HyperPod 支援三個節點生命週期組態選項，每個選項都提供不同層級的佈建程序控制。

1. 對於**生命週期指令碼**，請選擇下列其中一個選項，以控制叢集中節點的佈建方式：
   + **無** — HyperPod 會使用 AMI 型組態自動設定節點。Slurm 協助程式、Docker、Enroot、Pyxis、使用 MariaDB 的 Slurm 會計、SSH 金鑰產生和傳播、日誌輪換和主目錄設定都已設定，無需任何指令碼或 Amazon S3 儲存貯體。所有軟體都會在 AMI 中預先封裝，因此佈建期間不需要網際網路存取。這是新叢集最簡單的路徑。
   + **使用預設生命週期指令碼** — 預設生命週期指令碼會上傳至所選的 Amazon S3 儲存貯體，並用於佈建節點。此選項使用來自 [Awsome 分散式訓練儲存庫](https://github.com/awslabs/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) (ADTR) 的指令碼。
   + **使用自訂生命週期指令碼** — 從 Amazon S3 儲存貯體中選擇生命週期指令碼。這相當於 API 中的`OnCreate`路徑，您的指令碼擁有整個佈建序列，包括 Slurm 何時啟動。選取此選項時，HyperPod 不會執行 AMI 型組態。

   下表摘要說明三個選項：    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/smcluster-getting-started-slurm-console.html)

1. 對於 ** S3 中的延伸指令碼檔案 - *選用*** （當您在**生命週期指令碼**下選擇**無**時出現），請輸入延伸指令碼的 Amazon S3 URI。延伸指令碼可讓您在預設組態之外佈建其他選用功能，例如可觀測性、System Security Services Daemon (SSSD) 和 Amazon S3 儲存貯體掛載，而無需管理整組生命週期指令碼。

   輸入進入點指令碼的完整 Amazon S3 URI，例如：

   ```
   s3://DOC-EXAMPLE-BUCKET/extensions/run_extensions.sh
   ```

   HyperPod 會下載進入點指令碼所在的整個資料夾。建構 Amazon S3 資料夾，讓所有支援的檔案都與進入點指令碼位於相同的目錄中。
**注意**  
在 API 中，這對應於`LifeCycleConfig`使用 在 `OnInitComplete`中指定 `SourceS3Uri`。主控台會將這些項目合併為直接指向進入點指令碼的單一 Amazon S3 URI 欄位。
**提示**  
如需ready-to-use延伸指令碼，請參閱 Awsome 分散式訓練儲存庫中的[延伸資料夾](https://github.com/awslabs/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/Extensions)。`run_extensions.sh` 指令碼使用簡單的布林值切換來協調多個功能，以啟用或停用每個功能。

1. 對於**生命週期指令碼的 S3 儲存貯**體 （在您選擇**使用預設生命週期指令碼**或使用**自訂生命週期指令碼**時出現），請選擇建立新的儲存貯體或使用現有的儲存貯體來存放生命週期指令碼。

**注意**  
只有 Slurm 協調叢集才支援選用的節點生命週期組態。使用持續的 Amazon EKS 協調叢集和 Slurm 叢集`NodeProvisioningMode`需要每個執行個體群組的生命週期指令碼。

**注意**  
具有延伸指令碼的**無**選項和**使用自訂生命週期指令碼**選項是互斥的。您無法將 AMI 型組態與相同執行個體群組上的延伸指令碼和自訂生命週期指令碼合併。在 API 中，這表示 `OnCreate`和 `OnInitComplete`無法一起指定。

### 許可
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-permissions"></a>

選擇或建立允許 HyperPod 代表您執行和存取必要 AWS 資源的 IAM 角色。

### 儲存
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-storage"></a>

設定要在 HyperPod 叢集上佈建的 FSx for Lustre 檔案系統。FSx 組態是建立叢集的選用組態，但建議用於生產 ML 工作負載。

1. 針對**檔案系統**，選擇現有的 FSx for Lustre 檔案系統、建立新的 FSx for Lustre 檔案系統，或不佈建 FSx for Lustre 檔案系統。

1. 針對**每個儲存單位的輸送量**，選擇每個佈建儲存 TiB 可用的輸送量。

1. 針對**儲存容量**，以 TB 為單位輸入容量值。

1. 針對**資料壓縮類型**，選擇 **LZ4** 以啟用資料壓縮。

1. 針對 **Lustre 版本**，檢視新檔案系統的建議值。

**注意**  
使用 AMI 型組態 （在**生命週期指令碼**下選擇**無**) 或延伸指令碼時，HyperPod 會自動處理 FSx for Lustre 掛載。使用自訂生命週期指令碼時，您的指令碼負責掛載檔案系統。

### 標籤 - 選用
<a name="smcluster-getting-started-slurm-console-create-cluster-tags"></a>

對於**標籤 - *選用***，將索引鍵和值對新增至新叢集，並以 AWS 資源的形式管理叢集。若要進一步了解，請參閱[標記您的 AWS 資源](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)。

## 部署資源
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy"></a>

在使用**快速設定**或**自訂設定**完成叢集組態之後，請選擇下列選項以開始佈建資源和建立叢集。
+  **提交** - SageMaker AI 將開始佈建預設組態資源並建立叢集。
+ **下載 CloudFormation 範本參數** - 您將下載組態參數 JSON 檔案並執行 AWS CLI 命令來部署 CloudFormation 堆疊，以佈建組態資源並建立叢集。如有需要，您可以編輯下載的參數 JSON 檔案。如果您選擇此選項，請參閱 [使用 CloudFormation 範本建立 SageMaker HyperPod 叢集](smcluster-getting-started-slurm-console-create-cluster-cfn.md) 以取得更多指示。

## 刪除叢集並清理資源
<a name="smcluster-getting-started-slurm-console-delete-cluster-and-clean"></a>

在您成功測試了建立 SageMaker HyperPod 叢集之後，它會繼續以 `InService` 狀態執行，直到您刪除叢集為止。我們建議您任何使用隨需 SageMaker AI 執行個體建立的叢集，若未使用將其刪除，以避免根據隨需定價持續產生服務費用。在本教學課程中，您已建立由兩個執行個體群組構成的叢集。其中一個使用 C5 執行個體，因此請務必遵循[刪除 SageMaker HyperPod 叢集](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster)中的指示刪除叢集。

不過，如果您建立了具有預留運算容量的叢集，叢集的狀態不會影響服務計費。

如果您使用**使用預設生命週期指令碼**或使用**自訂生命週期指令碼**，請前往您在叢集建立期間使用的 Amazon S3 儲存貯體，並移除生命週期指令碼檔案。

如果您使用**無 **（僅限 AMI 型組態） 但沒有延伸指令碼，則生命週期指令碼不需要 Amazon S3 清除。

如果您將 **None** 與延伸指令碼搭配使用，請從您指定的 Amazon S3 儲存貯體清除延伸指令碼檔案。

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