

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SageMaker AI マネージドウォームプールの使用
<a name="train-warm-pools-how-to-use"></a>

SageMaker AI マネージドウォームプールは、SageMaker Python SDK、Amazon SageMaker AI コンソール、または低レベル API を通じて使用できます。管理者はオプションで `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()` を呼び出します。トレーニングジョブが完了すると、ウォームプールは保持されます。トレーニングスクリプトと推定器の詳細については、「[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/')
```

次に、一致する 2 つ目のトレーニングジョブを作成します。この例では、`my-training-job-1` と一致する必要な属性がすべて含まれ、実験用に別のハイパーパラメータを持つ `my-training-job-2` を作成します。2 つ目のトレーニングジョブはウォームプールを再利用し、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 または CLI で SageMaker AI AWS マネージドウォームプールを使用します。

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

以下のコマンドで SageMaker API を使用して SageMaker AI マネージドウォームプールをセットアップします。
+ [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
+ [UpdateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html)
+ [ListTrainingJobs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingJobs.html)
+ [DescribeTrainingJob](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>

次のコマンドで CLI を使用して SageMaker AI AWS マネージドウォームプールを設定します。
+ [create-training-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-training-job.html)
+ [update-training-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-training-job.html)
+ [list-training-jobs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/list-training-jobs.html)
+ [describe-training-job](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 マネージドウォームプールでは、`KeepAlivePeriodInSeconds` 値は 3600 秒 (60 分) に制限されていますが、管理者は必要に応じてこの制限を下げることができます。

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

****  

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

------

詳細については、*サービス認可リファレンス*の「[Condition keys for Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys)」を参照してください。