

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# SageMaker API를 사용한 SageMaker 훈련 계획 생성 또는 AWS CLI
<a name="training-plan-creation-using-api-cli-sdk"></a>

SageMaker 훈련 계획은 API를 통한 훈련 계획의 프로그래밍 방식 생성을 지원합니다. AWS CLI 또는 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일에서 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"
                }
            ]
        }
    ]
}
```

다음은를 사용하여 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에 대한 자세한 내용은 [SageMaker AI의 UltraServers](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 없습니다.

다음 예제에서는 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개의 이름-값 페어로 결과를 필터링하는 데 사용되는 기준입니다. 여기서 '이름'은 [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`: 설명하려는 훈련 계획의 이름입니다.