

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

# でサービスジョブを送信する AWS Batch
<a name="service-job-submit"></a>

サービスジョブを送信するには AWS Batch、[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html) API を使用します。 AWS CLI または SDK を使用してジョブを送信できます。

実行ロールがまだない場合は、サービスジョブを送信する前に作成する必要があります。SageMaker AI 実行ロールを作成するには、「*[SageMaker AI デベロッパーガイド](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)*」の「[SageMaker AI 実行ロールの使用方法](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)」を参照してください。

## サービスジョブの送信ワークフロー
<a name="service-job-submit-workflow"></a>

サービスジョブを送信すると、 は次のワークフロー AWS Batch を実行します。

1. AWS Batch は`[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)`リクエストを受け取り、 AWS Batch特定のパラメータを検証します。`serviceRequestPayload` は検証なしで渡されます。

1. ジョブは `SUBMITTED` 状態になり、指定されたジョブキューに配置されます。

1. AWS Batch は、キューの前面にある`RUNNABLE`ジョブに対してサービス環境に使用可能な容量があるかどうかを評価します。

1. 容量が利用可能な場合、ジョブは `SCHEDULED` に移動し、ジョブは SageMaker AI に渡されます。

1. 容量が取得され、SageMaker AI がサービスジョブデータをダウンロードすると、サービスジョブは初期化を開始し、ジョブは `STARTING` に変更されます。

1. SageMaker AI がジョブの実行を開始すると、ステータスは `RUNNING` に変更されます。

1. SageMaker AI がジョブを実行する間、 は進行状況 AWS Batch を監視し、サービスの状態を AWS Batch ジョブの状態にマッピングします。サービスジョブの状態のマッピング方法の詳細については、「[AWS Batch サービスジョブのステータスを SageMaker AI ステータスにマッピングする](service-job-status.md)」を参照してください。

1. サービスジョブが完了すると、`SUCCEEDED` に移動し、出力をダウンロードする準備が整います。

## 前提条件
<a name="service-job-submit-prerequisites"></a>

サービスジョブを送信する前に、以下があることを確認してください。
+ **サービス環境** – 容量制限を定義するサービス環境。詳細については、「[でサービス環境を作成する AWS Batch](create-service-environments.md)」を参照してください。
+ **SageMaker ジョブキュー** – ジョブスケジューリングを提供する SageMaker ジョブキュー。詳細については、「[AWS Batch で SageMaker トレーニングジョブのキューを作成する](create-sagemaker-job-queue.md)」を参照してください。
+ **IAM アクセス許可** – AWS Batch ジョブキューとサービス環境を作成および管理するためのアクセス許可。詳細については、「[AWS Batch IAM ポリシー、ロール、アクセス許可](IAM_policies.md)」を参照してください。

## サービスジョブを送信する
<a name="service-job-submit-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_getting_started_with_model_trainer.html)には、 にジョブを送信するためのサポートが組み込まれています AWS Batch。次の例は、モデルトレーナーの作成、トレーニングキューの作成、ジョブの送信の方法を示しています。完全な例については、GitHub の[「完全なサンプルノートブック](https://github.com/aws/sagemaker-python-sdk/blob/master/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.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`。

```
job = queue.submit(
    training_job=model_trainer,
    inputs=None,
)
```

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

 AWS CLI を使用してサービスジョブを送信する方法を以下に示します。

```
aws batch submit-service-job \
    --job-name "my-sagemaker-training-job" \
    --job-queue "my-sagemaker-job-queue" \
    --service-job-type "SAGEMAKER_TRAINING" \
    --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}}'
    --client-token "unique-token-12345"
```

`serviceRequestPayload` パラメータの詳細については、「[のサービスジョブペイロード AWS Batch](service-job-payload.md)」を参照してください。

------