

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

# API, AWS CLI SageMaker SDK를 사용하여 훈련 작업 생성
<a name="use-training-plan-for-training-jobs-using-api-cli-sdk"></a>

SageMaker 훈련 작업에 SageMaker 훈련 계획을 사용하려면 [`CreateTrainingJob`](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) 명령을 사용하여 훈련 작업을 생성하는 방법에 대한 자세한 내용은 섹션을 참조하세요[`create-training-job`](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/)를 사용하여 훈련 계획과 연결된 훈련 작업을 생성할 수 있습니다.

Studio의 JupyterLab에서 SageMaker Python SDK를 사용하여 훈련 작업을 생성하는 경우 JupyterLab 애플리케이션을 실행하는 스페이스에서 사용하는 실행 역할에 SageMaker 훈련 계획을 사용하는 데 필요한 권한이 있어야 합니다. SageMaker 훈련 계획을 사용하는 데 필요한 권한에 대한 자세한 내용은 [SageMaker 훈련 계획용 IAM](training-plan-iam-permissions.md) 섹션을 참조하세요.

다음 예시에서는 SageMaker Python SDK를 사용할 때 `ModelTrainer` 객체의 `training_plan` 속성을 사용하여 SageMaker 훈련 작업을 생성하고 제공된 훈련 계획과 연결하는 방법을 보여줍니다.

SageMaker ModelTrainer에 대한 자세한 내용은 [ SageMaker ModelTrainer를 사용하여 훈련 작업 실행을 참조하세요](https://docs.aws.amazon.com/sagemaker/latest/dg/docker-containers-adapt-your-own-private-registry-estimator.html).

```
import boto3
from sagemaker.core.helper.session_helper import get_execution_role
from sagemaker.train import ModelTrainer
from sagemaker.train.configs import InputData
from sagemaker.train.configs import Compute, SourceCode
from sagemaker.core.shapes import OutputDataConfig

# 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 = InputData(
    channel_name='{{training}}',
    data_source='{{s3://input-path}}'
)

model_trainer = ModelTrainer(
    training_image="{{123456789123.dkr.ecr.{}.amazonaws.com/image:tag}}",
    source_code=SourceCode(entry_script='train.py'),
    role=role,
    compute=Compute(
        instance_type='{{ml.p5.48xlarge}}',
        instance_count={{4}},
        volume_size_in_gb={{20}},
        training_plan_arn="{{training-plan-arn}}"
    ),
    output_data_config=OutputDataConfig(s3_output_path="{{s3://output-path}}")
)

# Create the training job
model_trainer.train(input_data_config=[trainingInput])
```

훈련 작업을 생성한 후 `DescribeTrainingJob` API를 직접적으로 호출하여 훈련 계획에 제대로 할당되었는지 확인할 수 있습니다.

```
# Check job details
sagemaker_session.describe_training_job(TrainingJobName=job_name)
```