

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

# 할당량 공유에 작업 제출
<a name="submit-job-quota-share"></a>

할당량 관리 작업 대기열에서는 모든 작업이 작업 제출 시 할당량 공유를 지정해야 합니다. 할당량 공유에 작업을 제출하려면 [SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)`quotaShareName`에서를 지정합니다. 선택적으로를 제공하여 작업 시도가에 들어가기 전에 선점 시도 횟수를 제한할 `preemptionConfiguration` 수 있습니다`FAILED`. 작업 경험의 선점 횟수를 제한하려면 작업 제출 시 [ServiceJobPreemptionConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_ServiceJobPreemptionConfiguration.html) `preemptionRetriesBeforeTermination` 내에서를 설정합니다.

## 사전 조건
<a name="submit-job-quota-share-prerequisites"></a>

할당량 공유에 작업을 제출하기 전에 다음을 갖추어야 합니다.
+ **할당량 관리 리소스** - 할당량 관리를 위해 구성된 예약 정책, 서비스 환경 및 작업 대기열입니다. 자세한 내용은 [할당량 관리 리소스 생성](create-quota-management-resources.md) 단원을 참조하십시오.
+ **할당량 공유** - 작업 대기열에 하나 이상의 할당량 공유가 생성되었습니다. 자세한 내용은 [할당량 공유 생성](create-quota-shares.md) 단원을 참조하십시오.
+ **IAM 권한** - 작업을 제출할 수 있는 권한입니다 AWS Batch. 자세한 내용은 [AWS Batch IAM 정책, 역할 및 권한](IAM_policies.md) 단원을 참조하십시오.

## 할당량 공유에 서비스 작업 제출
<a name="submit-job-quota-share-example"></a>

아래 표는 SageMaker Python SDK 또는 AWS CLI를 사용하여 할당량 공유에 서비스 작업을 제출하는 방법을 보여줍니다.

------
#### [ Submit using the SageMaker Python SDK ]

[SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/v3-examples/training-examples/aws_batch/sm-training-queues_quota-management.html)는 할당량 관리가 활성화된 작업 대기열에 작업을 제출할 수 있도록 기본적으로 지원됩니다. 다음 예제에서는 모델 트레이너를 생성하고, 훈련 대기열을 생성하고, 할당량 공유에 작업을 제출하는 방법을 보여줍니다. 전체 예제는 GitHub의 [전체 샘플 노트북](https://github.com/aws/sagemaker-python-sdk/blob/master/v3-examples/training-examples/aws_batch/sm-training-queues_quota-management.ipynb)을 참조하세요.

훈련 작업 구성을 `ModelTrainer` 정의하는를 생성합니다.

```
from sagemaker.train.model_trainer import ModelTrainer
from sagemaker.train.configs import SourceCode, Compute, StoppingCondition

source_code = SourceCode(command="echo 'Hello World'")

model_trainer = ModelTrainer(
    training_image={{"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:2.5-gpu-py311"}},
    source_code=source_code,
    base_job_name={{"my-training-job"}},
    compute=Compute(instance_type={{"ml.g5.xlarge"}}, instance_count={{1}}),
    stopping_condition=StoppingCondition(max_runtime_in_seconds={{300}}),
)
```

할당량 관리가 활성화된 작업 대기열을 이름으로 참조하는 `TrainingQueue` 객체를 생성합니다.

```
from sagemaker.train.aws_batch.training_queue import TrainingQueue

queue = TrainingQueue({{"my-sagemaker-job-queue"}})
```

를 호출`queue.submit`하고를 지정하여 할당량 공유에 작업을 제출합니다`quota_share_name`. 할당량 공유 내에서 작업 순서에 영향을 미치`priority`려면를 설정해야 합니다. 실제 환경에서`ModelTrainer`는 훈련할 데이터가 `inputs` 있어야 합니다.

```
job = queue.submit(
    job_name={{"my-training-job"}},
    training_job=model_trainer,
    quota_share_name={{"my_quota_share"}},
    priority={{3}},
    inputs=None,
)
```

------
#### [ Submit using the AWS CLI ]

다음 예제에서는 **submit-service-job** 명령을 사용하여 할당량 공유에 작업을 제출합니다.

```
aws batch submit-service-job \
    --job-name {{"my-sagemaker-training-job"}} \
    --job-queue {{"my-sagemaker-job-queue"}} \
    --service-job-type "SAGEMAKER_TRAINING" \
    --quota-share-name {{"my_quota_share"}} \
    --timeout-config '{"attemptDurationSeconds":{{3600}}}' \
    --scheduling-priority {{5}} \
    --service-request-payload {{'{\"TrainingJobName\": \"sagemaker-training-job-example\", \"AlgorithmSpecification\": {\"TrainingImage\": \"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.8.0-cpu-py3\", \"TrainingInputMode\": \"File\", \"ContainerEntrypoint\":  [\"sleep\", \"1\"]}, \"RoleArn\":\"arn:aws:iam::123456789012:role/SageMakerExecutionRole\", \"OutputDataConfig\": {\"S3OutputPath\": \"s3://example-bucket/model-output/\"}, \"ResourceConfig\": {\"InstanceType\": \"ml.m5.large\", \"InstanceCount\": 1, \"VolumeSizeInGB\": 1}}'}}"
```

------