

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

# クォータ共有へのジョブの送信
<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)」を参照してください。
+ **クォータ共有** – ジョブキューに少なくとも 1 つのクォータ共有が作成されます。詳細については、「[クォータ共有の作成](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}}'}}"
```

------