View a markdown version of this page

クォータ共有へのジョブの送信 - AWS Batch

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

クォータ共有へのジョブの送信

クォータ管理ジョブキューでは、ジョブの送信時にすべてのジョブでクォータ共有を指定する必要があります。クォータ共有にジョブを送信するには、SubmitServiceJob quotaShareNameで を指定します。オプションで を指定して、ジョブの試行が に入るまでのプリエンプションの試行回数を制限preemptionConfigurationできますFAILED。ジョブで発生するプリエンプションの数を制限するには、ジョブの送信時に ServiceJobPreemptionConfiguration preemptionRetriesBeforeTermination内で を設定します。

前提条件

クォータ共有にジョブを送信する前に、次のことを確認してください。

  • クォータ管理リソース – クォータ管理用に設定されたスケジューリングポリシー、サービス環境、ジョブキュー。詳細については、「クォータ管理リソースを作成する」を参照してください。

  • クォータ共有 – ジョブキューに少なくとも 1 つのクォータ共有が作成されます。詳細については、「クォータ共有の作成」を参照してください。

  • IAM アクセス許可 – ジョブを送信するアクセス許可 AWS Batch。詳細については、「AWS Batch IAM ポリシー、ロール、アクセス許可」を参照してください。

クォータ共有にサービスジョブを送信する

次の表は、SageMaker Python SDK または AWS CLI を使用してクォータ共有にサービスジョブを送信する方法を示しています。

Submit using the SageMaker Python SDK

SageMaker Python SDK には、クォータ管理が有効なジョブキューにジョブを送信するためのサポートが組み込まれています。次の例は、モデルトレーナーを作成し、トレーニングキューを作成し、クォータ共有にジョブを送信する方法を示しています。完全な例については、GitHub の完全なサンプルノートブックを参照してください。

トレーニングジョブの設定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}}'"