

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

# SageMaker AI 관리형 웜 풀 사용
<a name="train-warm-pools-how-to-use"></a>

SageMaker Python SDK, Amazon SageMaker AI 콘솔 또는 하위 수준 API를 통해 SageMaker 관리형 웜 풀을 사용할 수 있습니다. 관리자는 선택적으로 `sagemaker:KeepAlivePeriod` 조건 키를 사용하여 특정 사용자 또는 그룹에 대한 `KeepAlivePeriodInSeconds` 한도를 추가로 제한할 수 있습니다.

**Topics**
+ [SageMaker AI Python SDK 사용](#train-warm-pools-how-to-use-python-sdk)
+ [Amazon SageMaker AI 콘솔 사용](#train-warm-pools-how-to-use-sagemaker-console)
+ [하위 수준 SageMaker API 사용](#train-warm-pools-how-to-use-low-level-apis)
+ [IAM 조건 키](#train-warm-pools-how-to-use-iam-condition-key)

## SageMaker AI Python SDK 사용
<a name="train-warm-pools-how-to-use-python-sdk"></a>

SageMaker Python SDK를 사용하여 웜 풀을 생성, 업데이트 또는 종료할 수 있습니다.

**참고**  
이 기능은 SageMaker AI [Python SDK v2.110.0](https://pypi.org/project/sagemaker/2.110.0/) 이상에서 사용할 수 있습니다.

**Topics**
+ [웜 풀 생성](#train-warm-pools-how-to-use-python-sdk-create)
+ [웜 풀 업데이트](#train-warm-pools-how-to-use-python-sdk-update)
+ [웜 풀 종료](#train-warm-pools-how-to-use-python-sdk-terminate)

### 웜 풀 생성
<a name="train-warm-pools-how-to-use-python-sdk-create"></a>

웜 풀을 만들려면 SageMaker Python SDK를 사용하여 `keep_alive_period_in_seconds` 값이 0보다 큰 추정기를 만들고 `fit()`를 호출하세요. 훈련 작업이 완료되면 웜 풀이 유지됩니다. 훈련 스크립트 및 추정기에 대한 추가 정보는 [SageMaker Python SDK를 사용한 모델 훈련(Train a Model with the SageMaker Python SDK)](https://sagemaker.readthedocs.io/en/stable/overview.html#train-a-model-with-the-sagemaker-python-sdk)을 참조하세요. 스크립트가 웜 풀을 생성하지 않는 경우 가능한 설명은 [웜 풀 생성](train-warm-pools.md#train-warm-pools-creation)을 참조하세요.

```
import sagemaker
from sagemaker import get_execution_role
from sagemaker.tensorflow import TensorFlow

# Creates a SageMaker AI session and gets execution role
session = sagemaker.Session()
role = get_execution_role()

# Creates an example estimator
estimator = TensorFlow(
    ...
    entry_point={{'my-training-script.py'}},
    source_dir={{'code'}},
    role={{role}},
    model_dir={{'model_dir'}},
    framework_version={{'2.2'}},
    py_version={{'py37'}},
    job_name={{'my-training-job-1'}},
    instance_type={{'ml.g4dn.xlarge'}},
    instance_count={{1}},
    volume_size={{250}},
    hyperparameters={
        "batch-size": {{512}},
        "epochs": {{1}},
        "learning-rate": {{1e-3}},
        "beta_1": {{0.9}},
        "beta_2": {{0.999}},
    },
    keep_alive_period_in_seconds={{1800}},
)

# Starts a SageMaker training job and waits until completion
estimator.fit({{'s3://my_bucket/my_training_data/'}})
```

다음으로, 두 번째 매칭하는 훈련 작업을 생성하세요. 이 예제에서는 `my-training-job-2`을 생성하는데 이는 `my-training-job-1`와 매칭되는 필요한 모든 속성을 포함하지만 실험에 사용할 하이퍼파라미터는 다릅니다. 두 번째 훈련 작업은 웜 풀을 재사용하므로 첫 번째 훈련 작업보다 더 빨리 시작됩니다. 다음 코드 예에서는 Tensorflow 추정기를 사용합니다. 웜 풀 기능은 Amazon SageMaker AI에서 실행되는 모든 훈련 알고리즘과 함께 사용할 수 있습니다. 매칭하는 속성에 대한 추가 정보는 [매칭하는 훈련 작업](train-warm-pools.md#train-warm-pools-matching-criteria)을 참조하세요.

```
# Creates an example estimator
estimator = TensorFlow(
    ...
    entry_point={{'my-training-script.py'}},
    source_dir={{'code'}},
    role={{role}},
    model_dir={{'model_dir'}},
    framework_version={{'py37'}},
    py_version={{'pyxy'}},
    job_name={{'my-training-job-2'}},
    instance_type={{'ml.g4dn.xlarge'}},
    instance_count={{1}},
    volume_size={{250}},
    hyperparameters={
        "batch-size": {{512}},
        "epochs": {{2}},
        "learning-rate": {{1e-3}},
        "beta_1": {{0.9}},
        "beta_2": {{0.999}},
    },
    keep_alive_period_in_seconds={{1800}},
)

# Starts a SageMaker training job and waits until completion
estimator.fit({{'s3://my_bucket/my_training_data/'}})
```

두 훈련 작업의 웜 풀 상태를 확인하여 웜 풀이 `my-training-job-1`을 위한 `Reused`인지 `my-training-job-2`을 위한 `InUse`인지 확인하세요.

**참고**  
훈련 작업 이름에는 날짜/시간 접미사가 있습니다. 예제 훈련 작업 이름은 `my-training-job-1`이고 실제 훈련 작업 이름으로 `my-training-job-2`를 대체해야 합니다. 사용자는 `estimator.latest_training_job.job_name` 명령을 사용하여 실제 훈련 작업 이름을 가져올 수 있습니다.

```
session.describe_training_job({{'my-training-job-1'}})
session.describe_training_job({{'my-training-job-2'}})
```

`describe_training_job`의 결과는 해당 훈련 작업에 대한 모든 세부 정보를 제공합니다. `WarmPoolStatus` 속성을 찾아 훈련 작업의 웜 풀에 대한 정보를 확인할 수 있습니다. 출력은 다음 예와 비슷해야 합니다.

```
# Warm pool status for training-job-1
...
'WarmPoolStatus': {'Status': 'Reused', 
  'ResourceRetainedBillableTimeInSeconds': 1000,
  'ReusedByName': my-training-job-2}
...

# Warm pool status for training-job-2
... 
'WarmPoolStatus': {'Status': 'InUse'}
...
```

### 웜 풀 업데이트
<a name="train-warm-pools-how-to-use-python-sdk-update"></a>

훈련 작업이 완료되고 웜 풀 상태가 `Available`가 되면 `KeepAlivePeriodInSeconds` 값을 업데이트할 수 있습니다.

```
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":{{3600}}})
```

### 웜 풀 종료
<a name="train-warm-pools-how-to-use-python-sdk-terminate"></a>

웜 풀을 수동으로 종료하려면 `KeepAlivePeriodInSeconds ` 값을 0으로 설정합니다.

```
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":0})
```

지정된 `KeepAlivePeriodInSeconds` 값을 초과하거나 클러스터에 대한 패치 업데이트가 있는 경우 웜 풀이 자동으로 종료됩니다.

## Amazon SageMaker AI 콘솔 사용
<a name="train-warm-pools-how-to-use-sagemaker-console"></a>

콘솔을 통해 웜 풀을 생성하거나, 웜 풀을 해제하거나, 특정 훈련 작업의 웜 풀 상태 및 청구 대상 시간을 확인할 수 있습니다. 또한 어떤 매칭 훈련 작업에서 웜 풀을 재사용했는지도 확인할 수 있습니다.

1. [Amazon SageMaker AI 콘솔](https://console.aws.amazon.com/ec2/)을 열고 탐색 창에서 **훈련 작업**을 선택합니다. 해당하는 경우 각 훈련 작업의 웜 풀 상태는 **웜 풀 상태** 열에 표시되고 활성 웜 풀의 남은 시간은 **남은 시간)** 열에 표시됩니다.

1. 콘솔에서 웜 풀을 사용하는 훈련 작업을 생성하려면 **훈련 작업 생성**을 선택합니다. 그런 다음 훈련 작업 리소스를 구성할 때 **연결 유지 기간** 필드에 값을 지정해야 합니다. 이 값은 지속 시간을 초 단위로 나타내며 1에서 3600 사이의 정수여야 합니다.

1. 콘솔에서 웜 풀을 해제하려면 해당 훈련 작업을 선택하고 **작업** 드롭다운 메뉴에서 **클러스터 릴리스**를 선택합니다.

1. 웜 풀에 대한 자세한 내용을 보려면 훈련 작업 이름을 선택합니다. 작업 세부 정보 페이지에서 **웜 풀 상태)** 섹션으로 스크롤하여 웜 풀 상태, (웜 풀 상태가 `Available`인 경우) 남은 시간, 웜 풀 청구 대상 시간(초), 웜 풀 상태가 `Reused`인 경우 웜 풀을 재사용한 훈련 작업 이름을 확인할 수 있습니다.

## 하위 수준 SageMaker API 사용
<a name="train-warm-pools-how-to-use-low-level-apis"></a>

SageMaker API 또는 AWS CLI에서 SageMaker AI 관리형 웜 풀을 사용합니다.

### SageMaker AI API
<a name="train-warm-pools-how-to-use-low-level-apis-sagemaker"></a>

다음 명령으로 SageMaker API를 사용하여 SageMaker AI의 관리형 웜 풀을 설정합니다.
+ [훈련 작업 생성](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
+ [훈련 작업 업데이트](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html)
+ [훈련 작업 목록](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingJobs.html)
+ [훈련 작업 설명](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html)

### AWS CLI
<a name="train-warm-pools-how-to-use-low-level-apis-cli"></a>

다음 명령과 함께 AWS CLI를 사용하여 SageMaker AI 관리형 웜 풀을 설정합니다.
+ [훈련 작업 생성](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-training-job.html)
+ [훈련 작업 업데이트](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-training-job.html)
+ [훈련 작업 목록](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/list-training-jobs.html)
+ [훈련 작업 설명](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/describe-training-job.html)

## IAM 조건 키
<a name="train-warm-pools-how-to-use-iam-condition-key"></a>

관리자는 선택적으로 `sagemaker:KeepAlivePeriod` 조건 키를 사용하여 특정 사용자 또는 그룹에 대한 `KeepAlivePeriodInSeconds` 한도를 추가로 제한할 수 있습니다. SageMaker AI의 관리형 웜 풀은 3,600초(60분)로 `KeepAlivePeriodInSeconds` 값을 제한하지만 관리자는 필요한 경우 이 제한을 낮출 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnforceKeepAlivePeriodLimit",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateTrainingJob"
            ],
            "Resource": "*",
            "Condition": {
                "NumericLessThanIfExists": {
                    "sagemaker:KeepAlivePeriod": "{{1800}}"
                }
            }
        }
    ]
}
```

------

자세한 내용은 *서비스 권한 부여 참조*에서 [Amazon SageMaker에 사용되는 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys)를 참조하세요.