

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为您的训练任务或 HyperPod 集群保留训练计划
<a name="reserve-capacity-with-training-plans"></a>

Amazon SageMaker 训练计划是一项功能，允许您为大规模 AI 模型训练工作负载预留 GPU 容量，并帮助最大限度地利用 GPU 容量。此功能允许访问备受追捧的实例类型，这些实例类型涵盖了一系列 GPU 加速的计算选项，包括最新的 NVIDIA GPU 技术和训练芯片。 AWS 通过 SageMaker 培训计划，您无需管理底层基础架构，即可在指定的时间表和预算内确保对这些高需求、高性能计算资源的可预测访问。对于那些需要应对在为其关键任务 AI 工作负载获取并调度这些超额订阅的计算实例方面的挑战的组织而言，这种灵活性非常有用。

## 什么是 SageMaker 培训计划
<a name="training-plans-what-is"></a>

SageMaker 培训计划允许您预留根据目标资源需求量身定制的计算容量，例如 SageMaker 训练作业或 SageMaker HyperPod 集群。该服务会自动处理预留、加速计算资源的预调配、基础设施设置、工作负载执行以及基础设施故障恢复。

SageMaker 训练计划由一个或多个预留容量块组成，每个区块由以下参数定义：
+ 特定实例类型
+ 实例数量
+ 可用区
+ Duration
+ 开始和结束时间

**注意**  
培训计划特定于其目标资源（Trainin SageMaker g Job 或 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`。

适用于计划用户/机器学习工程师的步骤：

1. **资源分配**：使用您的计划将 SageMaker AI 训练作业排队或分配给 SageMaker HyperPod 集群实例组。

1. **激活**：当计划开始日期到来时，它会变为 `Active`。根据可用的预留容量， SageMaker 培训计划会自动启动训练作业或配置实例组。

**注意**  
当预留容量期开始时，训练计划的状态会从 `Scheduled` 过渡到 `Active`，随后，当等待下一个预留容量期开始时，状态会恢复为 `Scheduled`。

下图全面概述了 SageMaker 培训计划如何与不同计划交互[target resources](#training-plans-target-resources)，说明了计划的生命周期及其在 SageMaker 培训作业和 SageMaker HyperPod 集群资源分配中的作用。
+ Train@@ **ing Job 的 SageMaker 训练计划**：第一张图表说明了训练计划和 SageMaker Training Job 之间交互的工作 end-to-end流程。  
![\[账单、带培训计划的容量预留和 Trainin SageMaker g Job。训练计划生命周期及由管理员与机器学习工程师管理的训练作业状态示意图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/training-plans/tp-training-plan-for-training-jobs.png)
+ ** SageMaker HyperPod集群训练计划**：第二张图说明了训练计划和 SageMaker HyperPod 实例组之间交互 end-to-end的工作流程。  
![\[计费、通过训练计划进行的容量预留以及实例组管理工作流。训练计划生命周期及由管理员与机器学习工程师管理的实例组状态示意图。\]](http://docs.aws.amazon.com/zh_cn/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**

**注意**  
实例类型的可用性可能会随时间发生变化。 up-to-date有关按地区划分的可用实例类型及其各自价格的更多信息，请参阅[SageMaker 定价](https://aws.amazon.com/sagemaker-ai/pricing/)。向下滚动至按**需定价**下的 **Amazon SageMaker HyperPod 灵活培训计划**部分。选择一个区域以查看可用实例类型列表。

跨多个区域的可用性使用户能够为工作负载选择最合适的位置，同时可考量数据驻留要求以及与其他 AWS 服务的地理邻近性等因素。

**重要**  
您可以使用 SageMaker 培训计划预留具有以下预留期限和实例数量选项的实例。  
预留持续时间以 1 天为增量单位，可选范围为 1 天至 182 天。
预留实例数量选项包括 1、2、4、8、16、32 或 64 个实例。
确保您的训练任务或 HyperPod 服务配额允许每种实例类型的最大实例数超过计划中指定的实例数。要查看当前配额或请求提高配额，请参阅[使用 AWS 管理控制台查看 SageMaker 训练计划配额](training-plan-quotas.md)。

## UltraServers 在 SageMaker 人工智能中
<a name="training-plans-ultraservers"></a>

UltraServers 在 SageMaker AI 中，提供了一组通过高带宽网络域互连的实例。例如，P6e-在一个 NVIDIA NVLink 域下最多可GB200 UltraServer 连接 18 个`p6e-gb200.36xlarge`实例。每个实例 4 个 NVIDIA Blackwell GPUs ，每个 p6e GB200 UltraServer 支持 72 个 GPUs，因此您可以在 AI 上以高性能运行最大的 AI 工作负载。 SageMaker 

 UltraServers 与 SageMaker AI 配合使用时，您可以将性能与 SageMaker AI 的托管基础架构、内置的故障弹性功能、集成的监控功能以及与其他 SageMaker AI 和 AWS 服务的原生集成相结合。这种集成使您可以专注于模型开发和部署，而 SageMaker AI 则可以处理管理 AI 基础设施的无差别繁重工作。

**注意**  
UltraServers 仅在达拉斯本地区域（us-east-1-dfw-2a）中可用，该区域是美国东部（弗吉尼亚北部）区域的延伸。有关更多信息，请参阅 [AWS 本地区域 s 入门](https://docs.aws.amazon.com/local-zones/latest/ug/getting-started.html)

### 注意事项
<a name="training-plans-ultraservers-considerations"></a>

 UltraServers 与 SageMaker AI 一起使用时，请考虑以下几点：
+ 您可以同时 UltraServers 用于[ SageMaker 训练[ SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod.html)作业](https://docs.aws.amazon.com/sagemaker/latest/dg/train-model.html)。
+ 您只能购买 UltraServers 整套商品。有关实例和定价信息的更多信息，请参阅 Amazon A [ SageMaker I 定价中的亚马逊 SageMaker HyperPod ](https://aws.amazon.com/sagemaker-ai/pricing/)灵活培训计划。
+ 如果您使用的是和 UltraServers HyperPod，则 HyperPod 会自动为资源添加拓扑标签以帮助您分配资源。有关更多信息，请参阅在 Amazon [中使用拓扑感知调度。 SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-topology.html)
+ SageMaker AI 并 UltraServers 提供各种增强工作负载弹性的功能，包括先发制人检查以及自动故障检测和缓解。根据问题所在， SageMaker AI 可以运行操作来恢复您的工作负载，例如重启实例、用备件替换故障实例以及替换失败的实例。 UltraServers
+ 为了增加弹性，您可以将中的实例配置 UltraServer 为用作备件。将备用实例保留在内 UltraServer 可确保 SageMaker AI 能够快速响应实例故障，同时最大限度地减少对任务的任何影响。我们建议您为每个实例保留一个备用实例 UltraServer。您无需预留任何备用实例，但这可能会限制支持选项，并减慢故障恢复速度。您可以 UltraServers 按整件购买，因此您保留的备件数量不会影响定价。
+ 要查看中的状态和实例 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 培训计划可以根据资源可用性自动在可用区 (AZs) 之间移动工作负载。

    这种用于训练作业的多可用区方法提升了资源分配的灵活性，并增加了为您的工作负载找到合适容量的几率。但是，您应该注意，在预订期的不同 AZs 时段，您的作业可能会以不同的方式运行。
+ 当使用双块产品时，用户应仔细考量这种拆分式分配是否能满足其工作负载需求。这可能需要调整作业调度或工作负载分配，以适应预留的非连续性特征。

# 用于 SageMaker 培训计划的 IAM
<a name="training-plan-iam-permissions"></a>

SageMaker 培训计划需要两个不同角色的特定权限::

1. **计划创建者角色**：分配了*计划创建者*角色的用户需要相应权限，以便搜索训练计划产品、创建新的训练计划，以及列出和描述训练计划。

1. **计划用户角色**：拥有 “*计划用户” 角色的用户*需要权限才能在 SageMaker 训练作业中或创建和更新 SageMaker HyperPod 集群时使用训练计划。

在使用 SageMaker 训练计划之前，请根据您的访问方法更新权限：
+ 对于 AWS 管理控制台 或 SageMaker SDKs 用户：更新为控制台用户或 API 用户配置的 IAM 角色的权限。
+ 对于 AWS CLI 用户：确保您的 AWS CLI 个人资料已正确配置相应的凭据和权限。
+ 对于 Studio 应用程序用户（例如） JupyterLab，为与应用程序使用的空间关联的执行角色设置权限。

您可以使用托管策略或单个更精细的权限来设置这些权限。

有关如何更新角色的权限策略的信息，请参阅[更新角色的权限](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`托管策略被设计为主要用于实验目的的 ease-of-use策略。虽然它提供了对 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>

此部分针对[用于 SageMaker 培训计划的 IAM](#training-plan-iam-permissions) 部分中提及的各个角色，详细解析了其所需的单独权限。

对于计划创建者，以下权限是必需的：
+ `sagemaker:SearchTrainingPlanOfferings`
+ `sagemaker:CreateTrainingPlan`
+ `sagemaker:CreateReservedCapacity`
+ `sagemaker:AddTags`
+ `sagemaker:DescribeTrainingPlan`
+ `sagemaker:ListTrainingPlans`

计划用户需要以下权限：
+ `sagemaker:CreateTrainingJob`（适用于 T SageMaker raining Job）
+ `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/"`资源 ARNs。

------
#### [ 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 配置，除了群集特定的 ARNs 资源外，还要包括这些配置。

------
#### [ 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 或直接与训练计划 API 交互 SageMaker SDKs 来完成。

有关 step-by-step控制台说明和详细的 API 参考，请参阅本文档中的相应部分。

**Topics**
+ [SageMaker 使用 SageMaker AI 控制台创建训练计划](training-plan-creation-using-console.md)
+ [SageMaker 使用 SageMaker API 创建训练计划，或者 AWS CLI](training-plan-creation-using-api-cli-sdk.md)

# SageMaker 使用 SageMaker AI 控制台创建训练计划
<a name="training-plan-creation-using-console"></a>

SageMaker 训练计划提供了一种通过 SageMaker AI 控制台用户界面创建训练计划的便捷方式，允许用户轻松安排机器学习培训资源。本指南将引导您完成使用 SageMaker AI 控制台为 SageMaker 训练作业和 SageMaker HyperPod 集群创建训练计划的过程。按照以下步骤操作，您将搜索训练计划产品、查看可用选项，并购买最能满足您需求的计划。

要使用用户界面直观地创建训练计划，请执行以下操作：

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_cn/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**。 UltraServers 正在使用低延迟、高带宽的加速器互连连接连接多个 Amazon EC2 实例。有关更多信息，请参阅 [Amazon EC2 UltraServers](https://aws.amazon.com/ec2/ultraservers/)。要了解如何 UltraServers 与 SageMaker AI 配合使用，请参阅[UltraServers 在 SageMaker 人工智能中](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_cn/sagemaker/latest/dg/images/training-plans/tp-search-training-plan-offerings.png)


SageMaker 培训计划搜索符合您的容量要求的产品。在指定的时间范围内找到匹配项后，这些匹配项会显示在页面底部。每个训练计划产品均包含以下详细信息：
+ 计划总持续时间
+ 开始和结束日期
+ 预付总价格：

  将鼠标悬停在价格上方可查看实例每小时费率、实例计数和总小时数的详细明细
+ 计划分段总数

单击分段详细信息链接可打开包含分段特定详细信息的模态视图：
+ Duration
+ 开始和结束日期
+ 可用区

![\[SageMaker AI 控制台显示 “搜索培训计划产品” 页面，其中包含计划要求的输入字段，“可用计划” 部分显示已找到的三个持续时间、价格和可用性状态各不相同的计划的详细信息。\]](http://docs.aws.amazon.com/zh_cn/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_cn/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_cn/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_cn/sagemaker/latest/dg/images/training-plans/tp-view-training-plan.png)


# SageMaker 使用 SageMaker API 创建训练计划，或者 AWS CLI
<a name="training-plan-creation-using-api-cli-sdk"></a>

SageMaker 培训计划支持通过其 API 以编程方式创建培训计划。您可以使用 AWS CLI 或与训练计划 API 进行交互 SageMaker SDKs。

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 天为增量单位，可选范围为 1 天至 182 天。
+ 预留实例数量选项包括 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 的示例响应。此响应提供了有关符合指定容量要求的多种可用训练计划产品的信息。它包括三种不同的产品，它们的持续时间、预付费用和 start/end 时间各不相同，它们都使用相同的实例类型并针对培训作业。

```
{
    "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"
                }
            ]
        }
    ]
}
```

以下是如何使用搜索包含的培训计划选项的示例命令 UltraServers。 AWS CLI 

```
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 要搜索的类型。有关的更多信息 UltraServers，请参阅[UltraServers 在 SageMaker 人工智能中](reserve-capacity-with-training-plans.md#training-plans-ultraservers)。
+ `UltraServerCount`：指定 UltraServers 要搜索的数量。

# 预订最佳训练计划
<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 资源名称（ARN）。请记下此 ARN，以便后续用于跟踪和监控。训练计划预订在后端以异步方式完成。款项总额将在履约过程中自动收取。在付款交易完成并锁定请求的预留容量后，培训计划将设置为 `Scheduled` 状态，可供调度。

**重要**  
训练计划一经购买便无法修改。
培训计划不能在不同 AWS 账户之间或 AWS 组织内共享。

以下示例使用 an 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 资源名称（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 个名称-值对，其中 “名称” 是 a 字段的名称，“值” 是筛选器要考虑的值。[TrainingPlanSummary](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingPlanSummary.html)例如 `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 集群工作负载。

**注意**  
在计划变为 `Active` 之前，与计划关联的训练作业将保持 `Pending` 状态。
对于使用计算容量训练计划的 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 控制台用户界面扩展现有训练计划的便捷方式。本指南将引导您完成使用 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. 在培训计划详情页面中，查看**扩展**部分以查看所有以往的延期，包括扩展课程编号、开始和结束日期、状态以及扩展模块的创建时间。

## 分机状态值
<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 或与训练计划 API 进行交互 SageMaker SDKs。

培训计划扩展涉及以下 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>

使用带有`TrainingPlanArn`参数的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchTrainingPlanOfferings.html)API 来查找适用于您的培训计划的可用扩展选项。

以下示例使用 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"
        }
    ]
}
```

以下各节定义了搜索扩展产品时 `SearchTrainingPlanOfferings` API 操作的必填和可选输入请求参数。

## 必填参数
<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.")
```

**注意**  
训练作业配置遵循 First-In-First-Out（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>

您可以使用 AI U SageMaker I 将 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_cn/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>

以下示例演示如何使用`create-training-job` AWS CLI 命令中的`TrainingPlanArn`属性创建 SageMaker 训练作业并将其与提供的训练计划相关联。

有关如何使用 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 软件开发工具包根据计划运行训练作业
<a name="training-job-sdk"></a>

或者，您可以使用 [SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/v2.html) 创建与训练计划关联的训练作业。

如果您 JupyterLab 在 Studio 中使用 SageMaker Python SDK 创建训练作业，请确保运行 JupyterLab应用程序的空间使用的执行角色具有使用 SageMaker 训练计划所需的权限。要了解使用 SageMaker 培训计划所需的权限，请参阅[用于 SageMaker 培训计划的 IAM](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文档[SageMaker HyperPod 使用自定义 Amazon VPC 进行设置](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc)中的。  
如果 HyperPod 使用 Amazon fo FSx r Lustre 进行设置，请在中了解区域和可用区选择，查看 VPC 配置要求并了解可用区对齐最佳实践。[（可选）在 Amazon SageMaker HyperPod 上设置 Lu FSx stre](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-fsx)
您可以为每个实例组选择一个计划。但是，我们建议不要对集群的主实例组使用训练计划，因为主节点需要持续、稳定的资源，而这与训练计划容量的固定持续时间特性及潜在的不连续特性并不匹配。

**Topics**
+ [使用 A SageMaker I 控制台根据训练计划创建 SageMaker HyperPod 集群](use-training-plan-for-hyperpod-creation-using-console.md)
+ [使用 A SageMaker I 控制台更新 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)

# 使用 A SageMaker I 控制台根据训练计划创建 SageMaker HyperPod 集群
<a name="use-training-plan-for-hyperpod-creation-using-console"></a>

要使用 SageMaker AI 控制台界面的训练计划创建 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_cn/sagemaker/latest/dg/images/training-plans/tp-create-hyperpod-cluster.png)


查看和创建集群。当训练计划变为 `Active` 时，使用训练计划的实例组会纵向扩展到指定的目标实例数，视可用容量而定。在每个预留容量期结束前三十分钟，实例组开始缩减到零个实例。这种缩减状态会持续到下一个预留容量期开始或计划结束。在整个过程中，运行状况良好的实例组在初始创建后会保持 `InService` 状态，无论当前实例数量如何。

# 使用 A SageMaker I 控制台更新 SageMaker HyperPod 集群的训练计划
<a name="use-training-plan-for-hyperpod-update-using-console"></a>

您可以使用 SageMaker AI 控制台用户界面更新、移除或向现有 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_cn/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。

确保与计划的指定可用区关联的子网包含在集群配置的 `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>

**重要**  
有关 SageMaker 培训计划的定价信息，请参阅 [Amazon SageMaker 定价](https://aws.amazon.com/sagemaker/pricing/)页面。导航至**按需定价**下的 **Amazon SageMaker HyperPod 灵活培训计划**部分。选择所需的区域以查看可用的实例类型及其对应的价格。
确保您的训练任务或 HyperPod 服务配额允许每种实例类型的最大实例数超过计划中指定的实例数。

您可以使用 AWS 管理控制台查看 SageMaker 培训计划的当前配额和限制。

要搜索特定配额值，请执行以下操作：

1. 打开 [ 服务限额控制台](https://console.aws.amazon.com/servicequotas/home/services/sagemaker/quotas)。

1. 在左侧导航窗格中，选择 **AWS 服务**。

1. 从 AWS 服务列表中，搜索并选择 **Amazon A SageMaker I**。

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`，您会看到带有 Su AWS pport 的案例编号。选择案例编号以打开请求服务单。

要了解有关请求增加配额的更多信息，请参阅《AWS 服务配额用户指南》**中的[请求增加配额](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

# 发行说明
<a name="training-plan-release-notes"></a>

要跟踪 SageMaker 培训计划的最新更新，请参阅以下版本说明。

## 亚马逊 SageMaker 培训计划发布说明：2024 年 12 月 4 日
<a name="training-plan-release-notes-20241204"></a>

**新功能**
+ 在 re AWS : Invent 2024 上推出了亚马逊 SageMaker 培训计划。