

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

# API、SageMaker SDK AWS CLIを使用してトレーニングジョブを作成する
<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` パラメータを指定します。ジョブごとに 1 つのプランのみを使用できます。

**重要**  
`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 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トレーニングプランを使用するために必要なアクセス許可の詳細については、「[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)
```