

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

# 為您的訓練任務或 HyperPod 叢集保留訓練計畫
<a name="reserve-capacity-with-training-plans"></a>

Amazon SageMaker 訓練計畫是一項功能，可讓您保留 GPU 容量，並協助將 GPU 容量最大程度用於大規模 AI 模型訓練工作負載。此功能可讓您存取熱門的執行個體類型，涵蓋各種 GPU 加速運算選項，包括最新的 NVIDIA GPU 技術和 AWS 訓練晶片。透過 SageMaker 訓練計畫，您可以在指定的時間表和預算內保護對這些高需求、高效能運算資源的可預測存取，而無需管理基礎設施。此彈性對於處理以下挑戰的組織特別有價值：為其關鍵任務 AI 工作負載取得和排程這些過度訂閱的運算執行個體。

## 什麼是 SageMaker 訓練計畫
<a name="training-plans-what-is"></a>

SageMaker 訓練計畫可讓您保留針對目標資源需求量身打造的運算容量，例如 SageMaker 訓練任務或 SageMaker HyperPod 叢集。服務會自動處理保留、加速運算資源的佈建、基礎設施設定、工作負載執行，以及基礎設施故障的復原。

SageMaker 訓練計畫包含一或多個預留容量區塊，每個區塊皆由下列參數定義：
+ 特定執行個體類型
+ 執行個體數量
+ 可用區域
+ 持續時間
+ 開始及結束時間

**注意**  
訓練計畫專屬於其目標資源 (SageMaker 訓練任務或 SageMaker HyperPod)，無法互換。
單一訓練計畫中的多個預留容量區塊可能會不連續。這表示預留容量區塊之間可能會有間隙。

## SageMaker 訓練計畫的優勢
<a name="training-plans-benefits"></a>

SageMaker 訓練計劃提供下列優勢：
+ **可預測存取**：在指定的時間範圍內為機器學習工作負載保留 GPU 容量。
+ **成本管理**：事先為大規模訓練要求做好規劃和編列預算。
+ **自動化資源管理**：SageMaker 訓練計畫會處理基礎設施的佈建和管理。
+ **彈性**：為各種資源建立訓練計畫，包括 SageMaker 訓練任務和 SageMaker HyperPod 叢集。
+ **容錯**：受益於從基礎設施故障自動復原，以及跨 SageMaker AI 訓練任務可用區域的工作負載遷移。

## SageMaker 訓練計畫預先保留和提供彈性的開始時間
<a name="training-plan-reservation-timing"></a>

SageMaker 訓練計畫可讓您提前保留運算容量，搭配彈性的開始時間和持續時間。
+ **提前保留**：您最多可以在開始日期前 8 週 (56 天) 保留訓練計劃。
+ **最短前置時間**：SageMaker 訓練計畫方案可在保留後 30 分鐘內開始，但需視可用性而定。
**注意**  
您可以搜尋並購買可在 30 分鐘內存取的計畫。為了確保及時啟用，付款交易必須在所需的開始時間前至少 5 分鐘成功完成。例如，如果您希望計畫在下午 2:00 開始，您可以最晚在下午 1:30 進行最後一刻搜尋，並在下午 1:55 前完成購買，以確保計畫在下午 2:00 前準備就緒。
+ **保留持續時間和執行個體數量**：SageMaker 訓練計畫可讓您保留具有特定持續時間和數量選項的執行個體。如需指定 AWS 區域、持續時間和數量選項中可用的執行個體類型，請參閱 [支援的執行個體類型 AWS 區域和定價](#training-plans-supported-instances-and-regions)。
+ **結束時間**：訓練計畫一律在保留最後一天的上午 11:30 UTC 結束。
+ **訓練計畫終止**：如果您使用訓練任務做為目標資源，且預留容量中剩餘 30 分鐘，SageMaker 訓練計畫會啟動終止該區塊內任何執行中執行個體的程序，直到下一個預留容量變成作用中為止。您保留訓練計畫的完整存取權，直到最終預留容量區塊結束時間前 30 分鐘為止。

  如果您的目標資源是 SageMaker HyperPod 叢集，則此時間限制為一小時。

## SageMaker 訓練計畫使用者工作流程
<a name="training-plans-workflow"></a>

SageMaker 訓練計畫會逐步完成下列步驟：

管理員步驟：

1. **搜尋和檢閱**：尋找符合您運算要求的可用計畫方案，例如執行個體類型、計數、開始時間和持續時間。

1. **建立計畫**：使用所選計劃方案的 ID 保留符合您要求的訓練計畫。

1. **付款和排程**：預付款成功後，計畫狀態會變成 `Scheduled`。

規劃使用者/ML 工程師的步驟：

1. **資源配置**：使用您的計畫將 SageMaker AI 訓練任務排入佇列，或配置給 SageMaker HyperPod 叢集執行個體群組。

1. **啟用**：計畫開始日期到來時，其會變成 `Active`。根據可用的預留容量，SageMaker 訓練計畫會自動啟動訓練任務或佈建執行個體群組。

**注意**  
當預留容量期間開始時，訓練計畫的狀態會從 `Scheduled` 轉換為 `Active`，然後在等待下一個預留容量期間開始時回到 `Scheduled`。

下圖提供 SageMaker 訓練計畫如何與不同 [target resources](#training-plans-target-resources) 互動的完整概觀，其中說明計畫的生命週期，以及其在 SageMaker 訓練任務和 SageMaker HyperPod 叢集資源配置中的角色。
+ **SageMaker 訓練任務的訓練計畫**：第一個圖表說明訓練計畫與 SageMaker 訓練任務之間互動的端對端工作流程。  
![\[計費、帶有訓練計畫的容量保留，以及 SageMaker 訓練任務。管理員和 ML 工程師管理的訓練計畫生命週期和訓練任務狀態圖例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-training-plan-for-training-jobs.png)
+ **SageMaker HyperPod 叢集的訓練計畫**：第二個圖表說明訓練計畫與 SageMaker HyperPod 執行個體群組之間互動的端對端工作流程。  
![\[計費、帶有訓練計畫的容量保留，以及執行個體群組管理工作流程。管理員和 ML 工程師管理的訓練計畫生命週期和執行個體群組狀態圖例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-training-plan-for-hyperpod.png)

## 支援的執行個體類型 AWS 區域和定價
<a name="training-plans-supported-instances-and-regions"></a>

訓練計畫支援下列特定高效能執行個體類型的保留，每種類型都可以在選取 AWS 區域中使用：
+ **ml.p4d.24xlarge**
+ **ml.p5.48xlarge**
+ **ml.p5e.48xlarge**
+ **ml.p5en.48xlarge**
+ **ml.trn1.32xlarge**
+ **ml.trn2.48xlarge**
+ **ml.p6-b200.48xlarge**
+ **ml.c6i-32xlargesc**

**UltraServers**
+ **ml.p6e-gb200.36xlarge**
+ **ml.p6e-gb200.72xlarge**

**注意**  
執行個體類型的可用性可能會隨著時間而變化。如需根據區域的可用執行個體類型的最新資訊，以及其個別價格，請參閱 [SageMaker 定價](https://aws.amazon.com/sagemaker-ai/pricing/)。向下捲動至**隨需定價**下的 **Amazon SageMaker HyperPod 彈性訓練計畫**區段。選取一個區域以檢視可用執行個體類型的清單。

跨多個區域的可用性允許為工作負載選擇最合適的位置，同時考慮資料落地要求和其他 AWS 服務的鄰近性等因素。

**重要**  
您可以使用 SageMaker 訓練計畫搭配下列保留持續時間和執行個體數量選項，來保留執行個體。  
保留持續時間從 1 天到 182 天，增量單位為 1 天。
保留執行個體數量選項為 1、2、4、8、16、32 或 64 個執行個體。
請確定您的訓練任務或 HyperPod 服務配額允許每個執行個體類型的執行個體數量上限超過您計劃中指定的執行個體數量。若要檢視您目前的配額或請求配額增加，請參閱[使用 AWS 管理主控台檢視 SageMaker 訓練計畫配額](training-plan-quotas.md)。

## SageMaker AI 中的 UltraServer
<a name="training-plans-ultraservers"></a>

SageMaker AI 中的 UltraServer 提供一組透過高頻寬網路網域互連的執行個體。例如，P6e-GB200 UltraServer 在一個 NVIDIA NVLink 網域下最多連線 18 個 `p6e-gb200.36xlarge`。執行個體。透過每個執行個體 4 個 NVIDIA Blackwell GPU，每個 P6e-GB200 UltraServer 都支援 72 個 GPU，因此您可以在 SageMaker AI 上執行效能最高的最大 AI 工作負載。

當您將 UltraServers 與 SageMaker AI 搭配使用時，您可以取得效能，結合 SageMaker AI 的受管基礎設施、內建的故障復原功能、整合的監控功能，以及與其他 SageMaker AI AWS 和服務的原生整合。此整合可讓您專注於模型開發和部署，而 SageMaker AI 會處理管理 AI 基礎設施的無差別繁重工作。

**注意**  
UltraServer 僅適用於達拉斯本地區域 (us-east-1-dfw-2a)，這是美國東部 (維吉尼亞北部) 區域的延伸。如需詳細資訊，請參閱 [ 入門 AWS Local Zone](https://docs.aws.amazon.com/local-zones/latest/ug/getting-started.html)

### 考量事項
<a name="training-plans-ultraservers-considerations"></a>

使用 UltraServer 搭配 SageMaker AI 時，請考慮下列事項：
+ 您可以將 UltraServer 同時用於 [ SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod.html) 和 [ SageMaker 訓練任務](https://docs.aws.amazon.com/sagemaker/latest/dg/train-model.html)。
+ 您只能以完整單位購買 UltraServer。如需執行個體和定價資訊的詳細資訊，請參閱 [Amazon SageMaker AI 定價](https://aws.amazon.com/sagemaker-ai/pricing/)中的 Amazon SageMaker HyperPod 彈性訓練計畫。
+ 如果您使用 UltraServer 搭配 HyperPod，HyperPod 會自動將拓撲標籤新增至您的資源，以協助您進行資源配置。如需詳細資訊，請參閱[在 Amazon SageMaker HyperPod 中使用拓撲感知排程](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-topology.html)。
+ SageMaker AI 和 UltraServer 提供各種功能，增強工作負載的彈性，包括先佔檢查和自動故障偵測和緩解。根據問題所在，SageMaker AI 可以執行動作來復原工作負載，例如重新啟動執行個體、將失敗的執行個體取代為備用執行個體，以及取代失敗的 UltraServer。
+ 如需提高彈性，您可以設定 UltraServer 內的執行個體以用作備用執行個體。在 UltraServer 內保留備用執行個體確保 SageMaker AI 可以快速回應執行個體故障，同時將對您任務的任何影響降至最低。我們建議您為每個 UltraServer 保留一個備用執行個體。您不需要保留任何備用執行個體，但這可能會阻礙支援選項並降低故障復原速度。您以整體方式購買 UltraServer，因此您保留的備用數量不會影響定價。
+ 若要查看 UltraServer 中的狀態和執行個體，請使用 [ ListTrainingPlans](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingPlans.html) API 操作或 AWS 主控台來查看訓練計劃。使用這些工具，您可以查看可用執行個體的總數、目前使用中的執行個體、運作狀態不佳的執行個體、已設定的備用數量，以及其他資訊。可能的運作狀態為 `ok`、`impaired` 和 `insufficient-data`。

## SageMaker 訓練計畫搜尋行為
<a name="training-plans-search-behavior"></a>

搜尋訓練計畫產品時，SageMaker 訓練計畫會使用下列方法，最大化使用者的資源可用性和彈性，即使需求很高且預留容量區塊稀缺的情況下也是如此：
+ **初始持續搜尋**：SageMaker 訓練計畫會先嘗試尋找符合開始和結束日期內指定持續時間的單一連續預留容量區塊，同時滿足所有其他指定條件，包括目標資源、請求的執行個體類型和執行個體數量。
+ **雙區塊搜尋**：如果滿足所有條件的單一連續預留容量區塊無法使用，SageMaker 訓練計畫不會傳回「無容量」結果。相反地，它會自動嘗試使用兩個單獨的預留容量區塊來完成請求，將總持續時間分割為兩個時段。

  這種雙區塊方法在資源配置方面提供更多彈性，可能會保護完全無法使用的高需求執行個體。

**注意**  
SageMaker 訓練計畫最多可傳回一個或兩個區段的三個方案。例如，對於 48 小時持續時間計畫，SageMaker 訓練計畫可能會提供方案兩個 24 小時區塊，一個連續 48 小時區塊和兩個持續時間不平均的區塊。

## 考量事項
<a name="training-plans-considerations"></a>

**重要**  
訓練計畫一旦購買就無法修改。
訓練計劃無法跨 AWS 帳戶或在您的 AWS 組織內共用。
+ 搜尋訓練計畫方案時，SageMaker 訓練計畫會根據 [target resources](#training-plans-target-resources) 調整其搜尋策略：

  **對於 SageMaker HyperPod 叢集**：
  + 方案限制為單一可用區域 (AZ)。
  + 這可確保叢集內一致的網路效能和資料位置性。

  **對於 SageMaker 訓練任務**：
  + 方案可以跨越多個可用區域。
  + 當計畫方案包含多個不連續的預留容量時，這尤其重要。
  + 例如，一個計畫可能包括 AZ-A 中一個預留容量區塊的容量，以及 AZ-B 中另一個預留容量區塊的容量。SageMaker 訓練計畫可以根據資源可用性，跨可用區域 (AZ) 自動移動工作負載。

    這種用於訓練任務的多 AZ 方法在資源配置方面提供更大的彈性，增加為您的工作負載尋找合適容量的機會。不過，您應該知道，您的任務可能會在保留期間的不同部分於不同 AZ 中執行。
+ 提出雙區塊方案時，使用者應仔細考慮此分割配置是否符合其工作負載要求。這可能需要調整任務排程或工作負載分佈，以適應保留的非連續性質。

# IAM for SageMaker 訓練計畫
<a name="training-plan-iam-permissions"></a>

SageMaker 訓練計畫需要兩個不同角色的特定許可：

1. **計畫建立者角色**：獲指派*計畫建立者*角色的使用者需要許可，才能搜尋訓練計畫方案、建立新的訓練計畫、列出和描述訓練計畫。

1. **計畫使用者角色**：具有*計畫使用者*角色的使用者需要許可，才能在 SageMaker 訓練任務中或在建立和更新 SageMaker HyperPod 叢集時使用訓練計劃。

使用 SageMaker 訓練計畫之前，請根據您的存取方法更新許可：
+ 對於 AWS 管理主控台 或 SageMaker SDKs使用者：更新為主控台使用者或 API 使用者設定的 IAM 角色許可。
+ 對於 AWS CLI 使用者：確保您的 AWS CLI 設定檔已正確設定適當的登入資料和許可。
+ 對於 JupyterLab 等 Studio 應用程式使用者，設定與應用程式所用空間相關聯的執行角色許可。

您可以使用受管政策或個別更精細的許可來設定這些許可。

如需如何更新角色許可政策的相關資訊，請參閱[更新角色的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)。如需如何尋找和更新執行角色的相關資訊，請參閱[取得您的執行角色](sagemaker-roles.md#sagemaker-roles-get-execution-role)。

**注意**  
管理員應該仔細考慮哪些使用者需要建立訓練計畫並相應地指派許可的能力。

## 受管政策
<a name="training-plan-managed-policies"></a>
+ 對於計畫建立者： [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerTrainingPlanCreateAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerTrainingPlanCreateAccess.html) 提供建立和管理訓練計畫的存取權。
+ 對於計畫使用者： [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) 包含使用訓練計畫的許可。

**注意**  
`AmazonSageMakerFullAccess` 受管政策設計為易於使用的政策，主要用於實驗目的。雖然它提供對 SageMaker AI 特徵的廣泛存取，包括使用訓練計畫，但請務必注意：  
由於生產環境具有廣泛的許可，因此不建議針對這些環境使用此政策。
它不包括用於建立訓練計畫的許可，因為 `CreateTrainingPlan` 被視為需要預付款的管理動作。
對於生產使用案例，我們強烈建議建立遵循最低權限原則的自訂政策，只授予每個角色所需的特定許可。

## 個別許可
<a name="training-plan-individual-permissions"></a>

以下清單根據使用者需要使用 SageMaker 訓練計畫執行的特定動作，詳細說明應在角色的 IAM 政策聲明中設定的精細許可：

### 許可的訓練計畫清單
<a name="training-plan-individual-permissions-list"></a>
+ `SearchTrainingPlanOfferings`：此許可允許使用者搜尋可用的訓練計畫方案。

  ```
  {
    "Sid": "SearchTrainingPlanOfferingsPermissions",
    "Effect": "Allow",
    "Action": [
      "sagemaker:SearchTrainingPlanOfferings"
    ],
    "Resource": "*"
  }
  ```
+ `CreateTrainingPlan`：此許可允許使用者建立新的訓練計畫。
**注意**  
您還必須包含 `CreateReservedCapacity` 和 `AddTags` 的許可，並同時指定 `training-plan` 和 `reserved-capacity` 資源類型。

  ```
  {
    "Sid": "CreateTrainingPlanPermissions",
    "Effect": "Allow",
    "Action": [
      "sagemaker:CreateTrainingPlan",
      "sagemaker:CreateReservedCapacity",
      "sagemaker:AddTags"
    ],
    "Resource": [
      "arn:aws:sagemaker:*:*:training-plan/*",
      "arn:aws:sagemaker:*:*:reserved-capacity/*"
    ]
  }
  ```
+ `DescribeTrainingPlan`：此許可允許使用者檢視現有訓練計畫的詳細資訊。

  ```
  {
    "Sid": "DescribeTrainingPlanPermissions",
    "Effect": "Allow",
    "Action": [
      "sagemaker:DescribeTrainingPlan"
    ],
    "Resource": [
      "arn:aws:sagemaker:::training-plan/*"
    ]
  }
  ```
+ `ListTrainingPlans`：此許可允許使用者列出其 AWS 帳戶中的所有訓練計劃。

  ```
  {
    "Sid": "ListTrainingPlansPermissions",
    "Effect": "Allow",
    "Action": [
      "sagemaker:ListTrainingPlans"
    ],
    "Resource": "*"
  }
  ```

### 每種使用者類型的個別許可
<a name="training-plan-permissions-per-user-type"></a>

本節提供每個角色所需個別許可的詳細明細，如 [IAM for SageMaker 訓練計畫](#training-plan-iam-permissions)一節中所述。

對於計畫建立者，需要下列許可：
+ `sagemaker:SearchTrainingPlanOfferings`
+ `sagemaker:CreateTrainingPlan`
+ `sagemaker:CreateReservedCapacity`
+ `sagemaker:AddTags`
+ `sagemaker:DescribeTrainingPlan`
+ `sagemaker:ListTrainingPlans`

計畫使用者需要下列許可：
+ `sagemaker:CreateTrainingJob` (適用於 SageMaker 訓練任務)
+ `sagemaker:CreateCluster` 和 `sagemaker:UpdateCluster` (適用於 SageMaker HyperPod)
+ 可以存取 `training-plan` 和 `reserved-capacity` 資源；設定 SageMaker 訓練計畫的 IAM 政策時，請同時包含 `training-plan` 和 `reserved-capacity` 資源的許可。SageMaker 訓練任務和 SageMaker HyperPod 叢集都需要這些資源。這可讓您的 IAM 角色與 SageMaker 訓練計畫資源互動，並管理預留容量。
  + 對於 SageMaker 訓練任務，確保您的政策包含 `"arn:aws:sagemaker:::training-plan/"` 和 `"arn:aws:sagemaker:::reserved-capacity/"` 資源 ARN。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateTrainingJob"
      ],
      "Resource": [
        "arn:aws:sagemaker:us-east-2:111122223333:training-job/",
        "arn:aws:sagemaker:us-east-2:111122223333:training-plan/",
        "arn:aws:sagemaker:us-east-2:111122223333:reserved-capacity/*"
      ]
    }
  ]
}
```

------

同樣地，對於 SageMaker HyperPod 組態，除了叢集特定的資源之外，還包含這些相同的 ARN。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateCluster",
        "sagemaker:UpdateCluster"
      ],
      "Resource": [
        "arn:aws:sagemaker:us-east-2:111122223333:cluster/",
        "arn:aws:sagemaker:us-east-2:111122223333:training-plan/",
        "arn:aws:sagemaker:us-east-2:111122223333:reserved-capacity/*"
      ]
    }
  ]
}
```

------

# 建立訓練計畫
<a name="training-plan-creation"></a>

若要使用 SageMaker 訓練計畫功能保留運算容量，請遵循下列步驟：

1. **識別您的目標資源：**從判斷您需要 SageMaker 訓練任務還是 SageMaker HyperPod 叢集的容量開始。

1. **指定您的容量需求 ：**詳細定義您的容量需求。這包括為您的工作負載選取適當的執行個體類型、判斷所需的執行個體數量，以及指定使用持續時間。如需指定、 AWS 區域持續時間和數量選項中支援之執行個體類型的相關資訊，請參閱 [支援的執行個體類型 AWS 區域和定價](reserve-capacity-with-training-plans.md#training-plans-supported-instances-and-regions)。

1. **搜尋可用的訓練計畫方案：**一旦您指定了要求，請使用 SageMaker 訓練計畫的搜尋功能，跨一或多個區段尋找可用的訓練計畫方案。每個方案包含開始時間、預留容量的特定可用區域和計畫價格等詳細資訊。檢閱這些方案，同時考慮成本效益、地理喜好設定，以及符合您所指定需求等因素。

   如果沒有適當的計畫，請調整您的搜尋條件，並尋找一組新的方案。

1. **根據合適的方案建立訓練計畫：**識別合適的方案後，繼續建立您的訓練計畫。此程序涉及選取您選擇的方案並啟動保留。
   + 訓練計畫保留會建立發票。
   + 總金額的付款會在履行過程中收取。一旦付款完成，計畫就準備好排程您的 SageMaker 訓練任務或建立 HyperPod 叢集。

   若要了解如何針對 SageMaker 訓練任務使用訓練計畫，請參閱[SageMaker 訓練任務的訓練計畫使用率](training-plan-utilization-for-training-jobs.md)。

    若要了解如何針對您的 HyperPod 叢集使用訓練計畫，請參閱[Amazon SageMaker HyperPod 叢集的訓練計畫使用率](training-plan-utilization-for-hyperpod.md)。

您可以使用 SageMaker AI 主控台或程式設計方法建立訓練計畫。SageMaker AI 主控台提供視覺化的圖形界面，可全面檢視您的選項，而程式設計建立可以使用 AWS CLI 或 SageMaker SDKs直接與訓練計畫 API 互動。

如需逐步主控台指示和詳細的 API 參考，請參閱本文件中的個別章節。

**Topics**
+ [使用 SageMaker AI 主控台建立 SageMaker 訓練計畫](training-plan-creation-using-console.md)
+ [使用 SageMaker API 建立 SageMaker 訓練計畫，或 AWS CLI](training-plan-creation-using-api-cli-sdk.md)

# 使用 SageMaker AI 主控台建立 SageMaker 訓練計畫
<a name="training-plan-creation-using-console"></a>

SageMaker 訓練計畫提供透過 SageMaker AI 主控台 UI 建立訓練計畫的便利方式，讓使用者能夠輕鬆排程機器學習訓練資源。本指南會逐步引導您使用 SageMaker AI 主控台為 SageMaker 訓練任務和 SageMaker HyperPod 叢集建立訓練計畫。透過遵循這些步驟，您將搜尋訓練計劃方案、檢閱可用的選項，以及購買最符合您需求的計畫。

若要使用 UI 以視覺化方式建立訓練計畫：

1. 從導覽至 SageMaker AI 主控台開始，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側窗格功能表中選擇**訓練計畫**。

1. 從那裡，選擇主要內容區域中的**建立訓練計畫**按鈕，以開始設定自訂訓練排程的程序。

![\[SageMaker AI 主控台顯示訓練計畫頁面。介面會顯示訓練計畫如何運作的相關資訊，包括請求、監控和使用計畫的步驟。左側導覽窗格醒目提示「訓練計畫」選項，而您可以在主要內容區域中看到「建立訓練計畫」按鈕。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-console.png)


接下來，搜尋符合您運算要求的計畫方案。

**Topics**
+ [搜尋訓練計畫供應項目](search-training-plan-offerings.md)
+ [保留最佳訓練計畫](choose-best-training-plan.md)
+ [列出訓練計畫](list-training-plans.md)
+ [檢視訓練計畫詳細資訊](training-plan-details.md)

# 搜尋訓練計畫供應項目
<a name="search-training-plan-offerings"></a>

在 SageMaker AI 主控台的左側窗格中選擇**訓練計畫**，然後**建立訓練計畫**之後，**尋找訓練計畫**表單隨即開啟。此表單可讓您指定要求，並搜尋適合的訓練計畫方案。

遵循以下步驟來完成表單：

1. 識別您的**目標**：訓練計畫專屬於其目標資源。指定您想要使用計劃來執行 SageMaker 訓練任務還是 SageMaker HyperPod 叢集。

1. 對於**運算類型**，您可以在**執行個體**或 **UltraServer** 之間進行選擇。UltraServer 使用低延遲、高頻寬加速器互連來連線多個 Amazon EC2 執行個體。如需詳細資訊，請參閱 [Amazon EC2 UltraServer](https://aws.amazon.com/ec2/ultraservers/)。若要了解如何使用 UltraServer 搭配 SageMaker AI，請參閱 [SageMaker AI 中的 UltraServer](reserve-capacity-with-training-plans.md#training-plans-ultraservers)。

1. 選擇您偏好的**執行個體類型**和**執行個體計數**：如需指定 AWS 區域、持續時間和數量選項中的可用執行個體類型，請參閱 [支援的執行個體類型 AWS 區域和定價](reserve-capacity-with-training-plans.md#training-plans-supported-instances-and-regions)。

1. 定義您的時間參數：選擇所需的開始和結束日期，並在此時段內指定計畫持續時間。

1. 選擇**尋找訓練計畫**。

![\[SageMaker AI 主控台顯示搜尋訓練計畫方案頁面。介面會顯示一些選項，以選取計劃的目標資源 (訓練任務或 HyperPod 叢集)、指定執行個體類型和計數、設定開始和結束日期，以及輸入持續時間。尋找訓練計畫按鈕可在表單底部看見。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-search-training-plan-offerings.png)


SageMaker 訓練計畫會搜尋符合您容量要求的方案。在指定的時間範圍內找到相符項目時，它們會出現在頁面底部。每個訓練計畫方案都包含下列詳細資訊：
+ 計畫持續時間總計
+ 開始和結束日期
+ 預付總價：

  將滑鼠懸停在價格上方，以檢視執行個體每小時費率、執行個體計數和總時數的詳細明細
+ 計畫區段的總數。

按一下區段詳細資訊連結即會開啟模態檢視，其中包含區段特定的詳細資訊：
+ 持續時間
+ 開始和結束日期
+ Availability zone (可用區域)

![\[SageMaker AI 主控台顯示搜尋訓練計畫方案頁面，其中包含計畫要求的輸入欄位，而可用計畫區段顯示三個所找到計畫的詳細資訊，其持續時間、價格和可用性狀態各不相同。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-available-offerings.png)


如果找不到適合的計畫或可用的計畫不符合您的需求，請修改**訓練計畫要求**表單中的參數來調整搜尋條件。一旦找到適合的方案，請選取該方案，然後選擇**下一步**以繼續前往計畫保留頁面。在此頁面上，您可以命名您的計畫，然後在完成您的保留之前檢閱並確認您的選擇。

**注意**  
標記為 `Immediately available` 的計畫將在 30 分鐘內開始，前提是至少在排定的開始時間前 5 分鐘完成了付款。

# 保留最佳訓練計畫
<a name="choose-best-training-plan"></a>

搜尋訓練計畫已傳回符合您容量要求和預算的方案。

1. 輸入您計畫的名稱，然後選擇**下一步**。

1. 檢閱並**提交**您的訂單。
**重要**  
訓練計畫一旦購買就無法修改。
訓練計劃無法跨 AWS 帳戶或在您的 AWS 組織內共用。

   提交您的訂單之後
   + 訓練計畫一開始會以 `Pending` 的形式出現在您的訓練計畫清單中。
   + 發票會在收到訂單後自動產生。
   + 總付款會在履行程序期間收取。
   + 一旦付款成功，計畫狀態會變更為 `Scheduled`，然後計畫可供您使用。

![\[SageMaker AI 主控台顯示訓練計畫的「檢閱和購買」頁面。此頁面顯示訓練計畫詳細資訊、區段資訊、價格、計畫名稱和標籤。可以選擇編輯、取消、返回或建立計畫。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-review-and-purchase-training-plan.png)


# 列出訓練計畫
<a name="list-training-plans"></a>

若要檢視您的訓練計畫：

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

1. 在左側窗格功能表中選擇**訓練計畫**。這會顯示所有訓練計畫的清單，包括其名稱、狀態、目標資源類型，以及其他金鑰詳細資訊。

   購買計畫後，會將您導向至這個清單。新建立的計畫會伴隨 `Pending` 狀態出現，直到付款完成為止。此狀態通常會在付款處理後的幾分鐘內更新。

![\[SageMaker AI 主控台顯示訓練計畫清單頁面。此頁面包含一個資料表，列出訓練計畫及詳細資訊，例如名稱、狀態、執行個體總數、使用中執行個體、區域、開始日期和結束日期。可以看見一個建立新訓練計畫的按鈕。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-list-training-plans.png)


# 檢視訓練計畫詳細資訊
<a name="training-plan-details"></a>

從訓練計畫清單中，遵循計畫的名稱來檢視其詳細資訊。具體而言，您可以檢查目前的容量使用情況，並在計畫的詳細資訊頁面中列出工作負載。

詳細資訊頁面顯示：
+ 訓練計畫概觀：狀態、目標、執行個體類型和持續時間。
+ 區段詳細資訊、定價、計畫名稱和標籤的可展開區段。
+ 容量使用率：
  + 總計：此訓練計畫中預留的執行個體總數。
  + 使用中：此訓練計畫目前使用的執行個體數量。
  + 可用的執行個體：目前可用於此訓練計畫的執行個體數量。

在頁面底部，有一個連結可讓您檢視訓練任務或與該計畫相關聯的 SageMaker HyperPod 叢集執行個體群組清單，視其目標資源而定。

![\[SageMaker AI 主控台頁面顯示訓練計畫的詳細資訊。此頁面會顯示基本計畫資訊、狀態和執行個體詳細資訊。以下是可展開的區段，以取得其他詳細資訊。在底部，容量使用率區段會顯示計畫的執行個體總計、使用中執行個體和可用執行個體。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-view-training-plan.png)


# 使用 SageMaker API 建立 SageMaker 訓練計畫，或 AWS CLI
<a name="training-plan-creation-using-api-cli-sdk"></a>

SageMaker 訓練計畫支援透過其 API 以程式設計方式建立訓練計畫。您可以使用 AWS CLI 或 SageMaker SDKs與訓練計畫 API 互動。

SageMaker 訓練計畫的 API 動作提供以程式設計方式管理訓練計畫的全方位工作流程：
+ **`SearchTrainingPlanOfferings`：**可讓使用者透過指定執行個體類型、計數和所需時段等參數來查詢和探索可用的運算資源。API 會傳回最符合使用者要求的訓練計劃方案排名清單。
+ **`CreateTrainingPlan`：**允許保留特定的訓練計畫方案，使用唯一的訓練計畫 ARN 將潛在的運算容量轉換為排程的預留容量。
+ **`ListTrainingPlans`：**提供擷取和檢閱使用者帳戶中所有現有訓練計劃的方法 AWS ，以及選用的篩選和排序功能。
+ **`DescribeTrainingPlan`：**提供特定訓練計畫的詳細洞見，包括其從 `Pending` 到 `Active` 再到 `Expired` 的生命週期階段。
+ **`ExtendTrainingPlan`：**透過購買 延伸產品來擴展現有的訓練計劃。如需詳細資訊，請參閱[訓練計畫延伸](training-plan-extension.md)。
+ **`DescribeTrainingPlanExtensionHistory`：**擷取訓練計畫的延伸歷史記錄。如需詳細資訊，請參閱[訓練計畫延伸](training-plan-extension.md)。

**Topics**
+ [搜尋訓練計畫供應項目](search-training-plan-offerings-api-cli-sdk.md)
+ [保留最佳訓練計畫](choose-best-training-plan-using-api-cli-sdk.md)
+ [列出訓練計畫](list-training-plans-using-api-cli-sdk.md)
+ [檢視訓練計畫詳細資訊](training-plan-details-using-api-cli-sdk.md)

# 搜尋訓練計畫供應項目
<a name="search-training-plan-offerings-api-cli-sdk"></a>

若要建立訓練計畫，請先呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html) API 操作，將您的計劃要求 (例如執行個體類型、計數和所需時段) 做為輸入參數傳遞。訓練計畫專屬於其目標資源。確定您指定計畫將用於哪些目標資源 (`training-job` 或 `hyperpod-cluster`)。API 會傳回符合您要求的可用方案清單。如果找不到合適的方案，您可能需要調整要求並再次搜尋。

此 API 呼叫會擷取最符合您容量需求的訓練計畫方案。回應中傳回的每個 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingPlanOffering.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingPlanOffering.html) 都會以唯一的方案 ID 識別。清單中的第一個方案代表其最符合您的要求。如果在您指定的日期內沒有可用的訓練計畫，則清單為空白。調整您的搜尋條件並尋找一組新的方案。
+ 保留持續時間從 1 天到 182 天，增量單位為 1 天。
+ 保留執行個體數量選項為 1、2、4、8、16、32 或 64 個執行個體。

若要了解 SageMaker 訓練計畫支援的可用執行個體清單，請參閱 [支援的執行個體類型 AWS 區域和定價](reserve-capacity-with-training-plans.md#training-plans-supported-instances-and-regions)。

下列範例使用 AWS CLI 命令來請求具有指定執行個體類型、計數和時間資訊的培訓計劃方案。

```
# List training plan offerings with instance type, instance count, duration in hours, start time after, and end time before.
aws sagemaker search-training-plan-offerings \
--target-resources "training-job" \
--instance-type "ml.p4d.24xlarge" \
--instance-count 1 \
--duration-hours 15 \
--start-time-after "1737484800"
--end-time-before "1737657600"
```

此 JSON 文件是來自 SageMaker 訓練計畫 API 的範例回應。回應提供符合所指定容量要求的多個可用訓練計畫方案的相關資訊。它包含三種不同的方案，其中具有不同的持續時間、預付費用和開始/結束時間，全部都使用相同的執行個體類型並將訓練任務設為目標。

```
{
    "TrainingPlanOfferings": [
        {
            "TrainingPlanOfferingId": "tpo-SHA-256-hash-value",
            "TargetResources": [
                "training-job"
            ],
            "RequestedStartTimeAfter": "2025-01-21T11:08:27.704000-08:00",
            "DurationHours": 15,
            "DurationMinutes": 51,
            "UpfrontFee": "xxxx.xx",
            "CurrencyCode": "USD",
            "ReservedCapacityOfferings": [
                {
                    "InstanceType": "ml.p4d.24xlarge",
                    "InstanceCount": 1,
                    "AvailabilityZone": "us-west-2a",
                    "DurationHours": 15,
                    "DurationMinutes": 51,
                    "StartTime": "2025-01-21T11:39:00-08:00",
                    "EndTime": "2025-01-22T03:30:00-08:00"
                }
            ]
        },
        {
            "TrainingPlanOfferingId": "tpo-SHA-256-hash-value",
            "TargetResources": [
                "training-job"
            ],
            "RequestedStartTimeAfter": "2025-01-21T11:08:27.704000-08:00",
            "DurationHours": 39,
            "DurationMinutes": 51,
            "UpfrontFee": "xxxx.xx",
            "CurrencyCode": "USD",
            "ReservedCapacityOfferings": [
                {
                    "InstanceType": "ml.p4d.24xlarge",
                    "InstanceCount": 1,
                    "AvailabilityZone": "us-west-2a",
                    "DurationHours": 39,
                    "DurationMinutes": 51,
                    "StartTime": "2025-01-21T11:39:00-08:00",
                    "EndTime": "2025-01-23T03:30:00-08:00"
                }
            ]
        },
        {
            "TrainingPlanOfferingId": "tpo-SHA-256-hash-value",
            "TargetResources": [
                "training-job"
            ],
            "RequestedStartTimeAfter": "2025-01-21T11:08:27.704000-08:00",
            "DurationHours": 24,
            "DurationMinutes": 0,
            "UpfrontFee": "xxxx.xx",
            "CurrencyCode": "USD",
            "ReservedCapacityOfferings": [
                {
                    "InstanceType": "ml.p4d.24xlarge",
                    "InstanceCount": 1,
                    "AvailabilityZone": "us-west-2a",
                    "DurationHours": 24,
                    "DurationMinutes": 0,
                    "StartTime": "2025-01-22T03:30:00-08:00",
                    "EndTime": "2025-01-23T03:30:00-08:00"
                }
            ]
        }
    ]
}
```

以下是如何使用 AWS CLI 搜尋包含 UltraServers 之訓練計劃方案的範例命令。

```
aws sagemaker search-training-plan-offerings \
--ultra-server-type ml.c6i-32xlargesc \
--ultra-server-count 1 \
--duration-hours 24 \
--target-resources hyperpod-cluster
--start-time-after "1737484800" \
--end-time-before "1737657600"
```

```
{
    "TrainingPlanOfferings": [
        {
            "TrainingPlanOfferingId": "tpo-SHA-256-hash-value",
            "TargetResources": [
                "training-job"
            ],
            "RequestedStartTimeAfter": "2025-07-21T16:59:25.760000+00:00",
            "DurationHours": 24,
            "DurationMinutes": 0,
            "UpfrontFee": "0.24",
            "CurrencyCode": "USD",
            "ReservedCapacityOfferings": [
                {
                    "ReservedCapacityType": "UltraServer",
                    "UltraServerType": "ml.u-p6e-gb200x72",
                    "UltraServerCount": 1,
                    "InstanceType": "ml.p6e-gb200.36xlarge",
                    "InstanceCount": 18,
                    "AvailabilityZone": "us-east-2a",
                    "DurationHours": 24,
                    "DurationMinutes": 0,
                    "StartTime": "2025-07-22T11:30:00+00:00",
                    "EndTime": "2025-07-23T11:30:00+00:00"
                }
            ]
        }
    ]
}
```

下列各節會針對 `SearchTrainingPlanOfferings` API 操作定義必要和選用的輸入請求參數。

## 必要參數
<a name="search-training-plan-options-required-params"></a>

呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html) API 列出符合您要求的訓練計畫方案時，您必須提供下列值：
+ `TargetResources`：將使用計畫的目標資源 (`training-job` 或 `hyperpod-cluster`)。預設值為 `training-job`。訓練計畫專屬於其目標資源。
  + 專為 SageMaker 訓練任務設計的訓練計畫只能用來排程和執行訓練任務。
  + HyperPod 叢集的訓練計畫專門用來將運算資源提供給叢集的執行個體群組。
+ `InstanceType`：要佈建的執行個體類型。`InstanceType` 必須屬於支援的類型。

  若要了解 SageMaker 訓練計畫支援的可用執行個體清單，請參閱 [支援的執行個體類型 AWS 區域和定價](reserve-capacity-with-training-plans.md#training-plans-supported-instances-and-regions)。
+ `InstanceCount`：要佈建的執行個體數量。如果執行個體數量大於 1，則應該是 2 的次方。
+ `DurationHour`：所請求計畫的總持續時間，以小時為單位。`DurationHour` 會四捨五入至最接近的 24 倍數。

## 選用的參數
<a name="search-training-plan-options-optional-params"></a>

下列各節提供一些選用參數的詳細資訊，您可以將這些參數傳給 `SearchTrainingPlanOfferings` API 請求。
+ `StartTimeAfter`：指定計畫的請求開始時間。`StartTimeAfter` 未來應該是 `timestamp` 或 `ISO 8601 date/time` 值。
+ `EndTimeBefore`：以 `timestamp` 或 `ISO 8601 date/time` 格式指定計畫的請求結束時間。`EndTimeBefore` 應距開始時間至少 24 小時。
+ `UltraServerType`：指定要搜尋的 UltraServer 類型。如需 UltraServer 的詳細資訊，請參閱 [SageMaker AI 中的 UltraServer](reserve-capacity-with-training-plans.md#training-plans-ultraservers)。
+ `UltraServerCount`：指定要搜尋的 UltraServer 數量。

# 保留最佳訓練計畫
<a name="choose-best-training-plan-using-api-cli-sdk"></a>

在檢閱最符合您要求的可用訓練計劃方案之後，您可以透過呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html) API 操作來保留特定計畫。建立時，計畫一開始會進入 `Pending` 狀態，並保留到預留程序完成為止。API 呼叫的回應會傳回訓練計畫 Amazon Resource Name (ARN)。請記下此 ARN，以供稍後追蹤和監控之用。訓練計畫保留會在後端以非同步方式完成。總金額的付款會在履行過程中自動收取。一旦完成付款交易並保護請求的預留容量，訓練計畫就會設定為 `Scheduled` 狀態，並準備好進行排程。

**重要**  
訓練計畫一旦購買就無法修改。
訓練計劃無法跨 AWS 帳戶或在您的 AWS 組織內共用。

下列範例使用 AWS CLI 命令來請求特定的訓練計劃，並將計劃 ID 做為參數傳遞。

```
aws sagemaker create-training-plan \
--training-plan-offering-id "tpo-SHA-256-hash-value" \
--training-plan-name "name" \
```

此 JSON 文件是來自 SageMaker 訓練計畫 API 的範例回應。回應包含已成功建立之訓練計畫的 Amazon Resource Name (ARN)。

**注意**  
訓練計畫會保持 `Pending` 狀態，直到履行程序完成為止。

```
{
   "TrainingPlanArn":"arn:aws:sagemaker:us-east-1:123456789123:training-plan/large-models-fine-tuning"
}
```

下列各節會針對 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html) API 操作定義必要和選用的輸入請求參數。

## 必要參數
<a name="choose-best-training-plan-using-api-cli-sdk-required-params"></a>

呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingPlan.html) API 以保留特定訓練計畫時，您必須提供下列值：
+ `TrainingPlanOfferingId`：您要選擇的計畫 ID。您可以在 `SearchTrainingPlanOfferings` API 呼叫的回應中擷取計畫方案的 ID。其格式應以 `pto-*` 開頭。
+ `TrainingPlanName`：您正要建立的計畫名稱。

# 列出訓練計畫
<a name="list-training-plans-using-api-cli-sdk"></a>

您可以呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingPlans.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingPlans.html) API，列出在 AWS 您的帳戶和區域中建立的所有訓練計畫。

下列範例使用 AWS CLI 命令來擷取訓練計畫的清單。

```
aws sagemaker list-training-plans \
--start-time-after "2024-09-26T00:00:01.000Z"
```

此 JSON 文件是來自 SageMaker 訓練計畫 API 的範例回應。回應提供已成功建立和保留之訓練計畫的詳細資訊。

```
{
   "[TrainingPlanSummaries](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingPlanSummary.html)": [ 
      { 
         "AvailableInstanceCount": 2,
         "CurrencyCode": "USD",
         "DurationHours": 48,
         "DurationMinutes": 0,
         "EndTime": "2024-09-28T04:30:00-07:00",
         "InUseInstanceCount": 2,
         "[ReservedCapacitySummaries](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ReservedCapacitySummary.html)": [ 
            { 
               "AvailabilityZone": "string",
               "DurationHours": 48,
               "DurationMinutes": 0,
               "EndTime": "2024-09-28T04:30:00-07:00",
               "InstanceType": "ml.p5.48xlarge",
               "ReservedCapacityArn": "arn:aws:sagemaker:us-east-1:123456789123:reserved-capacity/large-models-fine-tuning-rc1",
               "StartTime": "2024-09-26T04:30:00-07:00",
               "Status": "Scheduled",
               "TotalInstanceCount": 4,
               "UltraServerCount": 4,
               "UltraServerType": "ml.p6e-gb200.36xlarge"
            }
         ],
         "StartTime": "2024-09-26T04:30:00-07:00",
         "Status": "Scheduled",
         "StatusMessage": "Payment confirmed, training plan scheduled."
         "TargetResources": [ "training-job" ],
         "TotalInstanceCount": 4,
         "TotalUltraServerCount": 4,
         "TrainingPlanArn": "arn:aws:sagemaker:us-east-1:123456789123:training-plan/large-models-fine-tuning",
         "TrainingPlanName": "large-models-fine-tuning",
         "UpfrontFee": "xxxx.xx"
      }
   ]
}
```

下列各節提供一些選用參數的詳細資訊，您可以將這些參數傳給 `ListTrainingPlans` API 請求。

## 選用的參數
<a name="list-training-plans-optional-params"></a>

下列各節提供一些選用參數的詳細資訊，您可以將這些參數傳給 `ListTrainingPlans` API 請求。
+ `StartTimeAfter`：所列計畫實際時間範圍的開始時間，指定為 `timestamp` 或 `ISO 8601 date/time`。
+ `StartTimeBefore`：所列計劃實際時間範圍的結束時間，指定為 `timestamp` 或 `ISO 8601 date/time`。
+ `Filters`：用來篩選結果的條件，最多 5 個名稱/值對，其中 "Name" 是 [TrainingPlanSummary](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingPlanSummary.html) 欄位的名稱，而 "Value" 是篩選條件要考慮的值。例如 `Name=Status,Value=Active`。

下列範例使用 AWS CLI 命令，使用上述一些選用參數來擷取訓練計畫清單。

```
aws sagemaker list-training-plans --max-results 10 --sort-by StartTime --sort-order Descending --start-time-after 13000000 --filters Name=Status,Value=Active
```

# 檢視訓練計畫詳細資訊
<a name="training-plan-details-using-api-cli-sdk"></a>

若要監控狀態或擷取訓練計畫的詳細資訊，您可以使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingPlan.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingPlan.html) API。API 回應包含 `Status` 欄位，其中反映訓練計畫的目前狀態：
+ 如果計畫購買失敗，狀態會設定為 `Failed`。
+ 成功付款後，狀態會根據計畫的開始日期從 `Pending` 轉換為 `Scheduled`。
+ 當計畫來到其開始日期時，狀態會變更為 `Active`。
+ 對於具有多個不連續預留容量的計畫，狀態會在作用中期間之間還原為 `Scheduled`，直到下一個預留容量的開始日期為止。
+ 在計畫的結束日期之後，狀態會變成 `Expired`。

一旦狀態為 `Scheduled`，您就可以針對 SageMaker 訓練任務或 HyperPod 叢集工作負載，利用計畫中預留的容量。

**注意**  
與計畫相關聯的訓練任務會保持 `Pending` 狀態，直到計畫變成 `Active` 為止。
對於針對運算容量使用訓練計畫的 HyperPod 叢集，一旦建立，執行個體群組狀態就會以 `InService` 出現。

下列範例使用 AWS CLI 命令，依其名稱擷取訓練計劃的詳細資訊。

```
aws sagemaker describe-training-plan \
--training-plan-name "name"
```

此 JSON 文件是來自 SageMaker 訓練計畫 API 的範例回應。此回應提供已成功建立之訓練計畫的詳細資訊。

```
      { 
         "AvailableInstanceCount": 2,
         "CurrencyCode": "USD",
         "DurationHours": 48,
         "DurationMinutes": 0,
         "EndTime": "2024-09-28T04:30:00-07:00",
         "InUseInstanceCount": 2,
         "[ReservedCapacitySummaries](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ReservedCapacitySummary.html)": [ 
            { 
               "AvailabilityZone": "string",
               "DurationHours": 48,
               "DurationMinutes": 0,
               "EndTime": "2024-09-28T04:30:00-07:00",
               "InstanceType": "ml.p5.48xlarge",
               "ReservedCapacityArn": "arn:aws:sagemaker:us-east-1:123456789123:reserved-capacity/large-models-fine-tuning-rc1",
               "StartTime": "2024-09-26T04:30:00-07:00",
               "Status": "Scheduled",
               "TotalInstanceCount": 4,
               "UltraServerCount": 4,
               "UltraServerType": "ml.p6e-gb200.36xlarge"
            }
         ],
         "StartTime": "2024-09-26T04:30:00-07:00",
         "Status": "Scheduled",
         "StatusMessage": "Payment confirmed, training plan scheduled."
         "TargetResources": [ "training-job" ],
         "TotalInstanceCount": 4,
         "TotalUltraServerCount": 4,
         "TrainingPlanArn": "arn:aws:sagemaker:us-east-1:123456789123:training-plan/large-models-fine-tuning",
         "TrainingPlanName": "large-models-fine-tuning",
         "UpfrontFee": "xxxx.xx"
      }
```

下列各節定義 `DescribeTrainingPlan` API 操作的必要輸入請求參數。

## 必要參數
<a name="training-plan-details-required-params"></a>
+ `TrainingPlanName`：您要描述的訓練計畫名稱。

# 訓練計畫延伸
<a name="training-plan-extension"></a>

SageMaker 訓練計畫可讓您擴展現有的訓練計畫，以避免工作負載中斷。當訓練計畫即將到期時，您可以直接透過 SageMaker AI 主控台或使用 API 或 以程式設計方式進行擴展 AWS CLI。這不需要建立新的計劃，並使用新的訓練計劃 ARN 重新設定工作負載。

使用訓練計畫擴充功能時，執行中的 SageMaker 訓練任務或 SageMaker HyperPod 叢集會在計畫擴充後繼續順暢運作，而不會中斷。延伸計劃反映新的結束日期，您可以擷取訓練計劃所有延伸項目的歷史記錄。

**重要**  
請注意，無法取消或修改擴充功能來新增或移除執行個體。

## 主要功能
<a name="training-plan-extension-features"></a>
+ 透過主控台或 API 擴展訓練計畫
+ 將計劃以 1 天為增量最多 14 天，或以 7 天為增量最多 182 天
+ 將計劃擴展任意次數
+ 在主控台或透過 API 檢視/列出訓練計畫的延伸歷史記錄
+ 在 SageMaker AI 中無縫繼續執行工作負載，無需重新設定

## 先決條件
<a name="training-plan-extension-prerequisites"></a>

在擴展訓練計畫之前，請確定下列事項：
+ 訓練計畫的狀態必須為 `Active`或 `Scheduled`。
+ 計劃不得有任何處於 `Payment Pending` 狀態的延伸項目。
+ 在計劃到期前，最多可以請求延長 1 小時或最多 56 天。

**Topics**
+ [主要功能](#training-plan-extension-features)
+ [先決條件](#training-plan-extension-prerequisites)
+ [使用 SageMaker AI 主控台擴展訓練計畫](training-plan-extension-using-console.md)
+ [使用 SageMaker API 或 擴展訓練計畫 AWS CLI](training-plan-extension-using-api-cli-sdk.md)

# 使用 SageMaker AI 主控台擴展訓練計畫
<a name="training-plan-extension-using-console"></a>

SageMaker 訓練計畫透過 SageMaker AI 主控台 UI 提供擴充現有訓練計畫的便利方式。本指南將逐步引導您使用 SageMaker AI 主控台擴展 SageMaker 訓練任務和 SageMaker HyperPod 叢集的訓練計畫。

若要使用主控台擴展訓練計畫：

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

1. 在左側導覽窗格中選擇**訓練計劃**。

1. 從清單中選擇您要延伸的訓練計畫。

1. 選擇**擴展**按鈕。

1. 輸入擴充功能的所需結束日期，然後選擇**搜尋**以尋找可用的擴充功能方案。

1. 檢閱延伸產品清單，其中包含持續時間、可用區域、預付費用以及開始和結束時間等詳細資訊。

1. 選取最符合您需求的延伸產品。

1. 檢閱確認對話方塊中的延伸模組詳細資訊，然後選擇**提交**以確認您的購買。

購買延伸項目後，訓練計畫的結束日期會更新，以反映新的延長期間。

## 檢視擴充功能歷史記錄
<a name="training-plan-extension-history-console"></a>

若要檢視訓練計畫的延伸歷史記錄：

1. 導覽至 SageMaker AI 主控台中的**訓練計畫**頁面。

1. 選取您要檢視的訓練計畫。

1. 在訓練計畫詳細資訊頁面中，檢視**延伸**項目區段以查看所有過去的延伸項目，包括延伸項目 ID、開始和結束日期、狀態，以及建立延伸項目的時間。

## 延伸狀態值
<a name="training-plan-extension-status-values-console"></a>

延伸項目可以有下列狀態值：
+ `Pending`：已請求擴充功能，正在等待付款處理。
+ `Active`：已成功購買延伸模組並處於作用中狀態。
+ `Scheduled`：延伸項目排定在未來的時間開始。
+ `Failed`：擴充功能購買失敗 （例如，由於付款問題）。
+ `Expired`：延長期間已結束。

# 使用 SageMaker API 或 擴展訓練計畫 AWS CLI
<a name="training-plan-extension-using-api-cli-sdk"></a>

SageMaker 訓練計畫支援透過 API 以程式設計方式擴展訓練計畫。您可以使用 AWS CLI 或 SageMaker SDKs與訓練計畫 API 互動。

訓練計畫延伸包含下列 API 動作：
+ **`SearchTrainingPlanOfferings`：**指定您的訓練計畫 ARN 和所需的延伸期間，以搜尋可用的延伸產品。API 會在 `TrainingPlanExtensionOfferings` 欄位中傳回延伸項目。
+ **`ExtendTrainingPlan`：**購買特定的延伸產品，藉由提供 來擴展您的訓練計畫`TrainingPlanExtensionOfferingId`。這會保留額外的運算容量，並更新訓練計畫的結束日期。
+ **`DescribeTrainingPlanExtensionHistory`：**檢視訓練計劃的完整擴充功能歷史記錄，包括所有過去的擴充功能及其狀態、日期和付款資訊。

**Topics**
+ [搜尋延伸產品](search-extension-offerings-api-cli-sdk.md)
+ [購買 擴充功能](extend-training-plan-api-cli-sdk.md)
+ [檢視擴充功能歷史記錄](describe-extension-history-api-cli-sdk.md)

# 搜尋延伸產品
<a name="search-extension-offerings-api-cli-sdk"></a>

使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html) API 搭配 `TrainingPlanArn` 參數，為您的訓練計劃尋找可用的延伸產品。

下列範例使用 AWS CLI 命令來搜尋現有訓練計畫的延伸產品。

```
aws sagemaker search-training-plan-offerings \
--training-plan-arn "arn:aws:sagemaker:us-east-2:123456789012:training-plan/my-training-plan" \
--duration-hours 48
```

此 JSON 文件是來自 SageMaker 訓練計畫 API 的範例回應。回應包含指定訓練計畫`TrainingPlanExtensionOfferings`可用的延伸產品。

```
{
    "TrainingPlanOfferings": [],
    "TrainingPlanExtensionOfferings": [
        {
            "TrainingPlanExtensionOfferingId": "tpeo-SHA-256-hash-value",
            "AvailabilityZone": "us-east-2a",
            "StartDate": "2025-09-23T12:00:00Z",
            "EndDate": "2025-09-25T12:00:00Z",
            "DurationHours": 48,
            "UpfrontFee": "xxxx.xx",
            "CurrencyCode": "USD"
        }
    ]
}
```

下列各節定義 API `SearchTrainingPlanOfferings`操作在搜尋延伸項目時的必要和選用輸入請求參數。

## 必要參數
<a name="search-extension-offerings-required-params"></a>

呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html) API 來搜尋延伸產品時，您必須提供下列值：
+ `TrainingPlanArn`：您要延伸的訓練計畫的 。必須`TrainingPlanArn`參考狀態為 `Active`或 的現有訓練計畫`Scheduled`。

## 選用的參數
<a name="search-extension-offerings-optional-params"></a>

下列各節提供一些選用參數的詳細資訊，您可以在搜尋延伸產品時傳遞給 `SearchTrainingPlanOfferings` API 請求。
+ `DurationHours`：擴充功能的所需持續時間，以小時為單位。`DurationHours` 會四捨五入至最接近的 24 倍數。

# 購買 擴充功能
<a name="extend-training-plan-api-cli-sdk"></a>

選取擴充功能方案後，請使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ExtendTrainingPlan.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ExtendTrainingPlan.html) API 購買擴充功能。

下列範例使用 AWS CLI 命令來擴展訓練計劃。

```
aws sagemaker extend-training-plan \
--training-plan-extension-offering-id "tpeo-SHA-256-hash-value"
```

此 JSON 文件是來自 SageMaker 訓練計畫 API 的範例回應。回應包含訓練計畫的延伸項目清單。

```
{
    "TrainingPlanExtensions": [
        {
            "TrainingPlanExtensionOfferingId": "tpeo-SHA-256-hash-value",
            "ExtendedAt": "2025-09-17T10:00:00Z",
            "StartDate": "2025-09-23T12:00:00Z",
            "EndDate": "2025-09-25T12:00:00Z",
            "Status": "Pending",
            "PaymentStatus": "Pending",
            "AvailabilityZone": "us-east-2a",
            "DurationHours": 48,
            "UpfrontFee": "xxxx.xx",
            "CurrencyCode": "USD"
        }
    ]
}
```

下一節定義 `ExtendTrainingPlan` API 操作的強制輸入請求參數。

## 必要參數
<a name="extend-training-plan-required-params"></a>

呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ExtendTrainingPlan.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ExtendTrainingPlan.html) API 擴展訓練計畫時，您必須提供下列值：
+ `TrainingPlanExtensionOfferingId`：您正在購買的延伸產品 ID。您可以在 `SearchTrainingPlanOfferings` API 呼叫的回應`TrainingPlanExtensionOfferings`中，從 擷取此 ID。其格式應以 `tpeo-*` 開頭。

# 檢視擴充功能歷史記錄
<a name="describe-extension-history-api-cli-sdk"></a>

使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingPlanExtensionHistory.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingPlanExtensionHistory.html) API 來檢視訓練計畫的完整延伸歷史記錄。

下列範例使用 AWS CLI 命令來擷取延伸歷史記錄。

```
aws sagemaker describe-training-plan-extension-history \
--training-plan-arn "arn:aws:sagemaker:us-east-2:123456789012:training-plan/my-training-plan"
```

此 JSON 文件是來自 SageMaker 訓練計畫 API 的範例回應。回應包含訓練計畫所有延伸項目的分頁清單。

```
{
    "TrainingPlanExtensions": [
        {
            "TrainingPlanExtensionOfferingId": "tpeo-SHA-256-hash-value",
            "ExtendedAt": "2025-09-17T10:00:00Z",
            "StartDate": "2025-09-23T12:00:00Z",
            "EndDate": "2025-09-25T12:00:00Z",
            "Status": "Active",
            "PaymentStatus": "Completed",
            "AvailabilityZone": "us-east-2a",
            "DurationHours": 48,
            "UpfrontFee": "xxxx.xx",
            "CurrencyCode": "USD"
        }
    ],
    "NextToken": null
}
```

下列各節會針對 `DescribeTrainingPlanExtensionHistory` API 操作定義必要和選用的輸入請求參數。

## 必要參數
<a name="describe-extension-history-required-params"></a>

呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingPlanExtensionHistory.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingPlanExtensionHistory.html) API 時，您必須提供下列值：
+ `TrainingPlanArn`：要擷取其延伸歷史記錄的訓練計劃的 。

## 選用的參數
<a name="describe-extension-history-optional-params"></a>

下列各節提供一些選用參數的詳細資訊，您可以將這些參數傳給 `DescribeTrainingPlanExtensionHistory` API 請求。
+ `NextToken`：如果先前的回應遭到截斷，您會收到此字符。在下一次請求中使用它來接收下一組結果。
+ `MaxResults`：回應中傳回的延伸項目數目上限。

## 延伸模組狀態值
<a name="extension-status-values-api"></a>

延伸項目可以有下列狀態值：
+ `Pending`：已請求擴充功能，正在等待付款處理。
+ `Active`：已成功購買延伸模組並處於作用中狀態。
+ `Scheduled`：延伸項目排定在未來的時間開始。
+ `Failed`：擴充功能購買失敗 （例如，由於付款問題）。
+ `Expired`：延長期間已結束。

# SageMaker 訓練任務的訓練計畫使用率
<a name="training-plan-utilization-for-training-jobs"></a>

您可以針對訓練任務使用 SageMaker 訓練計畫，方法是在建立訓練任務時指定您選擇的計畫。

**注意**  
訓練計畫必須處於 `Scheduled` 或 `Active` 狀態，才能供訓練任務使用。

如果訓練任務無法立即使用所需的容量，任務會等到該容量可用或等到符合 `StoppingCondition`，或任務已為容量 `Pending` 2 天，以先到者為準。如果符合停止條件，則會停止任務。如果任務已待定 2 天，則會以 `InsufficientCapacityError` 將其終止。

**重要**  
**預留容量終止程序：**您可以在預留容量結束時間前 30 分鐘完整存取所有預留執行個體。當預留容量剩餘 30 分鐘時，SageMaker 訓練計畫會開始終止該預留容量內任何執行中的執行個體。  
為了確保您不會由於這些終止而失去進度，建議您為訓練任務設定檢查點。

## 為您的訓練任務設定檢查點
<a name="training-jobs-checkpointing"></a>

針對 SageMaker 訓練任務使用 SageMaker 訓練計畫時，請務必在訓練指令碼中實作檢查點。這可讓您在預留容量過期之前儲存訓練進度。使用預留容量時，檢查點特別重要，因為如果您的任務在兩個預留容量之間中斷，或您的訓練計畫來到結束日期時，它可讓您從最後一個儲存點繼續訓練。

若要完成此操作，您可以使用 `SAGEMAKER_CURRENT_CAPACITY_BLOCK_EXPIRATION_TIMESTAMP` 環境變數。此變數有助於判斷何時啟動檢查點程序。透過將此邏輯納入您的訓練指令碼中，您可以確保以適當的間隔儲存模型的進度。

以下是如何在 Python 訓練指令碼中實作此檢查點邏輯的範例：

```
import os
import time
from datetime import datetime, timedelta

def is_close_to_expiration(threshold_minutes=30):
    # Retrieve the expiration timestamp from the environment variable
    expiration_time_str = os.environ.get('SAGEMAKER_CURRENT_CAPACITY_BLOCK_EXPIRATION_TIMESTAMP', '0')
    
    # If the timestamp is not set (default '0'), return False
    if expiration_time_str == '0':
        return False
    
    # Convert the timestamp string (in milliseconds) to a datetime object
    expiration_time = datetime(1970, 1, 1) + timedelta(milliseconds=int(expiration_time_str))
    
    # Calculate the time difference between now and the expiration time
    time_difference = expiration_time - datetime.now()
    
    # Return True if we're within the threshold time of expiration
    return time_difference < timedelta(minutes=threshold_minutes)

def start_checkpointing():
    # Placeholder function for checkpointing logic
    print("Starting checkpointing process...")
    # TODO: Implement actual checkpointing logic here
    # For example:
    # - Save model state
    # - Save optimizer state
    # - Save current epoch and iteration numbers
    # - Save any other relevant training state

# Main training loop
num_epochs = 100
final_checkpointing_done = False
for epoch in range(num_epochs):
    # TODO: Replace this with your actual training code
    # For example:
    # - Load a batch of data
    # - Forward pass
    # - Calculate loss
    # - Backward pass
    # - Update model parameters
    
    # Check if we're close to capacity expiration and haven't done final checkpointing
    if not final_checkpointing_done and is_close_to_expiration():
        start_checkpointing()
        final_checkpointing_done = True
    
    # Simulate some training time (remove this in actual implementation)
    time.sleep(1)
print("Training completed.")
```

**注意**  
訓練任務佈建遵循先進先出 (FIFO) 順序，但如果無法完成較大的任務，稍後建立的較小叢集任務可能會在先前建立的較大叢集任務之前獲指派容量。
SageMaker 訓練受管暖集區與 SageMaker 訓練計畫相容。如需重複使用叢集，您必須在後續 `CreateTrainingJob` 請求中提供相同的 `TrainingPlanArn` 值，才能重複使用相同的叢集。

**Topics**
+ [為您的訓練任務設定檢查點](#training-jobs-checkpointing)
+ [使用 SageMaker AI 主控台建立訓練任務](use-training-plan-for-training-jobs-using-console.md)
+ [使用 API、 AWS CLI SageMaker SDK 建立訓練任務](use-training-plan-for-training-jobs-using-api-cli-sdk.md)

# 使用 SageMaker AI 主控台建立訓練任務
<a name="use-training-plan-for-training-jobs-using-console"></a>

您可以使用 SageMaker AI UI，針對訓練任務使用 SageMaker 訓練計畫。建立訓練任務時，如果您的執行個體選擇和區域符合可用的計畫，建議您使用可用的計畫。

若要在 SageMaker 主控台中使用訓練計畫的預留容量建立訓練任務：

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

1. 在左側導覽窗格中，選擇**訓練**，然後選擇**訓練任務**。

1. 選擇**建立訓練任務**按鈕。

1. 為您的訓練任務設定資源時，請尋找**執行個體容量**區段。如果有符合您所選執行個體類型和區域的可用計畫，則這裡會顯示這些計畫。選取符合您運算容量需求的訓練計畫。

   如果沒有適合的計畫可用，您可以調整執行個體類型或區域，或繼續進行而不使用訓練計畫。

1. 選取訓練計畫 (或選擇在沒有訓練計畫的情況下繼續進行) 後，請完成其餘的訓練任務組態，然後選擇**建立訓練任務**以開始程序。

![\[SageMaker AI 主控台頁面，用於建立新的訓練任務。此頁面會顯示各種組態選項，包括任務設定、演算法選項、資源組態、訓練計畫選擇，以及停止條件。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-create-training-job.png)


檢閱並啟動您的任務。訓練計畫一變成 `Active` (待定容量)，您的任務就會開始執行。

# 使用 API、 AWS CLI SageMaker SDK 建立訓練任務
<a name="use-training-plan-for-training-jobs-using-api-cli-sdk"></a>

若要針對 SageMaker 訓練任務使用 SageMaker 訓練計畫，請在呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) API 操作時，在 `ResourceConfig` 中指定所需計畫的 `TrainingPlanArn` 參數。您只能每個任務使用一個計畫。

**重要**  
`CreateTrainingJob` 請求的 `ResourceConfig` 區段中設定的 `InstanceType` 欄位集必須符合訓練計畫的 `InstanceType`。

## 使用 CLI 在計畫上執行訓練任務
<a name="training-job-cli"></a>

下列範例示範如何建立 SageMaker 訓練任務，並使用 `TrainingPlanArn` `create-training-job` AWS CLI 命令中的 屬性將其與提供的訓練計畫建立關聯。

如需如何使用 AWS CLI [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) 命令建立訓練任務的詳細資訊，請參閱 [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-training-job.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-training-job.html)。

```
# Create a training job
aws sagemaker create-training-job \
  --training-job-name training-job-name \
  ...
    
  --resource-config '{
        "InstanceType": "ml.p5.48xlarge",
        "InstanceCount": 8,
        "VolumeSizeInGB": 10,
        "TrainingPlanArn": "training-plan-arn"
        }
    }' \
    ...
```

此 AWS CLI 範例命令會在 SageMaker AI 中建立新的訓練任務，並在 `--resource-config` 引數中傳遞訓練計畫。

```
aws sagemaker create-training-job \
  --training-job-name job-name \
  --role-arn arn:aws:iam::111122223333:role/DataAndAPIAccessRole \
  --algorithm-specification '{"TrainingInputMode": "File","TrainingImage": "111122223333.dkr.ecr.us-east-1.amazonaws.com/algo-image:tag", "ContainerArguments": [" "]}' \
  --input-data-config '[{"ChannelName":"training","DataSource":{"S3DataSource":{"S3DataType":"S3Prefix","S3Uri":"s3://bucketname/input","S3DataDistributionType":"ShardedByS3Key"}}}]' \
  --output-data-config '{"S3OutputPath": "s3://bucketname/output"}' \
  --resource-config '{"VolumeSizeInGB":10,"InstanceCount":4,"InstanceType":"ml.p5.48xlarge", "TrainingPlanArn" : "arn:aws:sagemaker:us-east-1:111122223333:training-plan/plan-name"}' \
  --stopping-condition '{"MaxRuntimeInSeconds": 1800}' \
  --region us-east-1
```

在建立訓練任務之後，您可以透過呼叫 `DescribeTrainingJob` API 來驗證是否已正確指派給訓練計畫。

```
aws sagemaker describe-training-job --training-job-name training-job-name
```

## 使用 SageMaker AI Python SDK 在計畫上執行訓練任務
<a name="training-job-sdk"></a>

或者，您可以使用 [SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/v2.html) 建立與訓練計畫相關聯的訓練任務。

如果您在 Studio 中使用來自 JupyterLab 的 SageMaker Python SDK 建立訓練任務，請確定執行 JupyterLab 應用程式之空間所使用的執行角色，具有使用 SageMaker 訓練計畫所需的許可。若要了解使用 SageMaker 訓練計畫所需的許可，請參閱 [IAM for SageMaker 訓練計畫](training-plan-iam-permissions.md)。

下列範例示範如何在使用 SageMaker Python SDK 時，使用 `Estimator` 物件中的 `training_plan` 屬性建立 SageMaker 訓練任務，並將其與提供的訓練計畫建立關聯。

如需 SageMaker 估算器的詳細資訊，請參閱[使用 SageMaker 估算器來執行訓練任務](https://docs.aws.amazon.com/sagemaker/latest/dg/docker-containers-adapt-your-own-private-registry-estimator.html)。

```
import sagemaker
import boto3
from sagemaker import get_execution_role
from sagemaker.estimator import Estimator
from sagemaker.inputs import TrainingInput

# Set up the session and SageMaker client
session = boto3.Session()
region = session.region_name
sagemaker_session = session.client('sagemaker')

# Get the execution role for the training job
role = get_execution_role()

# Define the input data configuration
trainingInput = TrainingInput(
    s3_data='s3://input-path',
    distribution='ShardedByS3Key',
    s3_data_type='S3Prefix'
)

estimator = Estimator(
    entry_point='train.py',
    image_uri="123456789123.dkr.ecr.{}.amazonaws.com/image:tag",
    role=role,
    instance_count=4,
    instance_type='ml.p5.48xlarge',
    training_plan="training-plan-arn",
    volume_size=20,
    max_run=3600,
    sagemaker_session=sagemaker_session,
    output_path="s3://output-path"
)

# Create the training job
estimator.fit(inputs=trainingInput, job_name=job_name)
```

在建立訓練任務之後，您可以透過呼叫 `DescribeTrainingJob` API 來驗證是否已正確指派給訓練計畫。

```
# Check job details
sagemaker_session.describe_training_job(TrainingJobName=job_name)
```

# Amazon SageMaker HyperPod 叢集的訓練計畫使用率
<a name="training-plan-utilization-for-hyperpod"></a>

若要針對您的 Amazon SageMaker HyperPod 叢集使用 SageMaker 訓練計畫，請在建立或更新您的叢集時，指定您要在叢集執行個體層級使用的訓練計畫。

**注意**  
訓練計畫必須處於 `Scheduled` 或 `Active` 狀態，才能供 HyperPod 叢集使用。
確定叢集組態符合訓練計畫中指定的可用區域 (AZ)。  
如需 VPC 設定、資源位置和安全群組組態，請參閱 SageMaker HyperPod 文件中的[使用自訂 Amazon VPC 設定 SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc)。  
如果使用 Amazon FSx for Lustre 設定 HyperPod，請了解區域和可用區域選擇、檢閱 VPC 組態要求，以及了解 [(選用) 使用 Amazon FSx for Lustre 設定 SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-fsx) 中的 AZ 一致性最佳實務。
您可以為每個執行個體群組選取一個計畫。不過，我們不建議針對叢集的主要執行個體群組使用訓練計畫，因為主要節點需要持續、穩定的資源，這些資源不符合訓練計劃容量的固定持續時間和潛在的不連續性質。

**Topics**
+ [使用 SageMaker AI 主控台在訓練計畫上建立 SageMaker HyperPod 叢集](use-training-plan-for-hyperpod-creation-using-console.md)
+ [使用 SageMaker AI 主控台更新訓練計畫上的 SageMaker HyperPod 叢集](use-training-plan-for-hyperpod-update-using-console.md)
+ [使用 SageMaker API 在訓練計畫上建立 SageMaker HyperPod 叢集，或 AWS CLI](use-training-plan-for-hyperpod-creation-using-api-cli-sdk.md)
+ [使用 SageMaker API 在訓練計劃上更新 SageMaker HyperPod 叢集，或 AWS CLI](use-training-plan-for-hyperpod-update-using-api-cli-sdk.md)

# 使用 SageMaker AI 主控台在訓練計畫上建立 SageMaker HyperPod 叢集
<a name="use-training-plan-for-hyperpod-creation-using-console"></a>

若要從 SageMaker AI 主控台 UI 使用訓練計畫建立 SageMaker HyperPod 叢集，請遵循下列步驟：

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

1. 在左側導覽窗格中，選擇 **Hyperpod**，然後選擇**建立叢集**。

1. 設定執行個體群組時，您可以選取符合您運算容量需求的計畫。

![\[SageMaker AI 主控台介面顯示模態視窗，用於在 SageMaker HyperPod 叢集內建立執行個體群組。表單包含執行個體群組名稱、執行個體類型、數量、執行個體容量 (具有隨需和訓練計畫的選項) 的欄位，以及建立時生命週期指令碼的目錄路徑。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-create-hyperpod-cluster.png)


檢閱並建立您的叢集。當訓練計畫變成 `Active` 時，使用訓練計畫的執行個體群組會擴增到指定的目標執行個體計數，受限於可用容量。在每個預留容量期間結束前 30 分鐘，執行個體群組會開始縮減至零個執行個體。此縮減狀態會持續到下一個預留容量期間開始或計畫結束為止。在此過程中，運作狀態良好的執行個體群組會在初始建立之後維持 `InService` 狀態，無論目前的執行個體計數為何。

# 使用 SageMaker AI 主控台更新訓練計畫上的 SageMaker HyperPod 叢集
<a name="use-training-plan-for-hyperpod-update-using-console"></a>

您可以使用 SageMaker AI 主控台 UI 更新、移除訓練計畫，或將其新增至現有的 SageMaker HyperPod 叢集。若要更新 SageMaker HyperPod 叢集的執行個體群組，請遵循下列步驟：

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

1. 在左側導覽窗格中，選擇 **Hyperpod**。

1. 遵循與叢集名稱相關聯的超連結，導覽至叢集的詳細資訊頁面。

1. 設定執行個體群組時，您可以更新計畫，以符合新的運算容量需求。

![\[SageMaker AI 主控台介面顯示模態視窗，用於更新 SageMaker HyperPod 叢集內的執行個體群組。表單包含執行個體群組名稱、執行個體類型、數量、執行個體容量 (具有隨需和訓練計畫的選項) 的欄位，以及建立時生命週期指令碼的目錄路徑。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/training-plans/tp-update-hyperpod-clusters.png)


檢閱和更新您的叢集。

# 使用 SageMaker API 在訓練計畫上建立 SageMaker HyperPod 叢集，或 AWS CLI
<a name="use-training-plan-for-hyperpod-creation-using-api-cli-sdk"></a>

若要針對您的 Amazon SageMaker HyperPod 叢集使用 SageMaker 訓練計畫，請在呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html) API 操作時，在 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html) 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-TrainingPlanArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-TrainingPlanArn) 參數中指定您要使用的訓練計畫 ARN。

確定與您計劃所指定 AZ 相關聯的子網路包含在叢集組態的 `VPCConfig` 中。您可以在 [``DescribeTrainingPlan](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingPlan.html) API 呼叫的回應中擷取訓練計畫的 `AvailabilityZone`。

下列範例說明如何建立新的 SageMaker HyperPod 叢集，並在 `create-cluster` AWS CLI 命令的 `--instance-groups` 屬性中為執行個體群組提供訓練計劃。

```
# Create a cluster         
aws sagemaker create-cluster \
  --cluster-name cluster-name \
  --instance-groups '[ \
        { \
            "InstanceCount": 1,\
            "InstanceGroupName": "controller-nodes",\
            "InstanceType": "ml.t3.xlarge",\
            "LifeCycleConfig": {"SourceS3Uri": source_s3_uri, "OnCreate": "on_create.sh"},\
            "ExecutionRole": "arn:aws:iam::customer_account_id:role/execution_role",\
            "ThreadsPerCore": 1,\
        },\
        { \
            "InstanceCount": 2, \
            "InstanceGroupName": "worker-nodes",\
            "InstanceType": "p4d.24xlarge",\
            "LifeCycleConfig": {"SourceS3Uri": source_s3_uri, "OnCreate": "on_create.sh"},\
            "ExecutionRole": "arn:aws:iam::customer_account_id}:role/execution_role}",\
            "ThreadsPerCore": 1,\
            "TrainingPlanArn": training_plan_arn,\
        }]'
```

如需如何使用 建立 HyperPod 叢集的資訊 AWS CLI，請參閱 [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html)。

建立叢集後，您可以透過呼叫 `DescribeCluster` API 來驗證您的執行個體群組是否已從訓練計畫正確地獲指派容量。

```
aws sagemaker describe-cluster --cluster-name cluster-name
```

# 使用 SageMaker API 在訓練計劃上更新 SageMaker HyperPod 叢集，或 AWS CLI
<a name="use-training-plan-for-hyperpod-update-using-api-cli-sdk"></a>

您可以使用 `update-cluster` AWS CLI 命令更新現有叢集的執行個體群組，以新增、更新或移除訓練計劃。下列範例說明如何更新 SageMaker HyperPod 叢集，並為執行個體群組提供新的訓練計畫。

```
# Update a cluster
aws sagemaker update-cluster \
  --cluster-name cluster-name \
  --instance-groups '[ \
        { \
            "InstanceCount": 1,\
            "InstanceGroupName": "controller-nodes",\
            "InstanceType": "ml.t3.xlarge",\
            "LifeCycleConfig": {"SourceS3Uri": source_s3_uri, "OnCreate": "on_create.sh"},\
            "ExecutionRole": "arn:aws:iam::customer_account_id:role/execution_role",\
            "ThreadsPerCore": 1,\
        },\
        { \
            "InstanceCount": 2, \
            "InstanceGroupName": "worker-nodes",\
            "InstanceType": "p4d.24xlarge",\
            "LifeCycleConfig": {"SourceS3Uri": source_s3_uri, "OnCreate": "on_create.sh"},\
            "ExecutionRole": "arn:aws:iam::customer_account_id}:role/execution_role}",\
            "ThreadsPerCore": 1,\
            "TrainingPlanArn": training_plan_arn,\
        },\
        {\
            "InstanceCount": 1,\
            "InstanceGroupName": "worker-nodes-2",\
            "InstanceType": "p4d.24xlarge",\
            "LifeCycleConfig": {"SourceS3Uri": source_s3_uri, "OnCreate": "on_create.sh"},\
            "ExecutionRole": "arn:aws:iam::customer_account_id:role/execution_role",\
            "ThreadsPerCore": 1,\
            "TrainingPlanArn": training_plan_arn,\
        }\
    ]'
```

# 使用 AWS 管理主控台檢視 SageMaker 訓練計畫配額
<a name="training-plan-quotas"></a>

**重要**  
如需 Amazon SageMaker 訓練計畫的定價資訊，請參閱 [Amazon SageMaker 定價](https://aws.amazon.com/sagemaker/pricing/)頁面。導覽至**隨需定價**下的 **Amazon SageMaker HyperPod 彈性訓練計畫**區段。選擇您所需的區域，以檢視可用的執行個體類型及其對應的價格。
請確定您的訓練任務或 HyperPod 服務配額允許每個執行個體類型的執行個體數量上限超過您計劃中指定的執行個體數量。

您可以使用 AWS 管理主控台檢視 SageMaker 訓練計畫的目前配額和限制。

若要搜尋特定配額值：

1. 開啟 [ Service Quotas 主控台](https://console.aws.amazon.com/servicequotas/home/services/sagemaker/quotas)。

1. 在左側導覽窗格中，選擇 **AWS 服務**。

1. 從 AWS 服務清單中，搜尋並選取 **Amazon SageMaker AI**。

1. 在**服務配額**清單中，您可以看到服務配額名稱、套用值 （如果有的話）、 AWS 預設配額，以及配額值是否可以調整。

若要尋找特定配額，您可以使用**服務配額**清單頂端的搜尋列。輸入您要搜尋之配額的 `Limit Name`。例如，若要尋找每個區域的訓練計畫數量配額，請在搜尋列中輸入 **training-plan-total\$1count**。

下表概述 SageMaker 訓練計畫的配額限制名稱。


**SageMaker 訓練計畫配額限制**  

| 限制名稱 | 顯示名稱 | 
| --- | --- | 
| training-plan-total\$1count | 每個區域的訓練計畫數量 | 
| reserved-capacity-ml-p4d-24xlarge | 每個區域跨訓練計畫的預留容量中的 ml.p4d.24xlarge 執行個體數量 | 
| reserved-capacity-ml-p5-48xlarge | 每個區域跨訓練計畫的預留容量中的 ml.p5.48xlarge 執行個體數量 | 
| reserved-capacity-ml-p5e-48xlarge | 每個區域跨訓練計畫的預留容量中的 ml.p5e.48xlarge 執行個體數量 | 
| reserved-capacity-ml-p5en-48xlarge | 每個區域跨訓練計畫的預留容量中的 ml.p5en.48xlarge 執行個體數量 | 
| reserved-capacity-ml-trn1-32xlarge | 每個區域跨訓練計畫的預留容量中的 ml-trn1-32xlarge 執行個體數量 | 
| reserved-capacity-ml-trn2-48xlarge | 每個區域跨訓練計畫的預留容量中的 ml.trn2.48xlarge 執行個體數量 | 

如果您需要更高的 SageMaker 訓練計畫限制，您可以請求提高配額。增加配額的能力取決於其是否可調整，您可以在**服務配額**主控台中看到。

請求提高配額：

1. 導覽至**服務配額**主控台中的特定配額。

1. 如果配額可調整，您可以根據**可調整性**欄中列出的值，在帳戶層級或資源層級請求增加配額。

1. 針對**增加配額值**，輸入新值。新值必須大於目前的值。

1. 選擇**請求**。

1. 配額增加請求需要經過審核和核准 AWS。若要在主控台中檢視任何擱置或最近已解決的請求，請從服務的詳細資訊頁面導覽至**請求歷程記錄**索引標籤，或從導覽窗格中選擇**儀表板**。對於擱置的請求，請選擇請求狀態以開啟請求回條。請求的初始狀態為 `Pending`。狀態變更為 後`Quota requested`，您會在 AWS Support 中看到案例編號。選擇案例編號，為請求開啟票證。

通常，若要進一步了解如何請求增加配額，請參閱《AWS Service Quotas 使用者指南》**中的[請求增加配額](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

# 版本備註
<a name="training-plan-release-notes"></a>

請參閱以下版本備註，以追蹤 SageMaker 訓練計畫的最新更新。

## Amazon SageMaker 訓練計畫版本備註：2024 年 12 月 4 日
<a name="training-plan-release-notes-20241204"></a>

**新功能**
+ 於 AWS re：Invent 2024 推出 Amazon SageMaker 訓練計畫。