を使用してハイブリッドジョブを直接操作する API - Amazon Braket

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

を使用してハイブリッドジョブを直接操作する API

を使用して Amazon Braket Hybrid Jobs に直接アクセスして操作できますAPI。ただし、 APIを直接使用する場合、デフォルトと便利なメソッドは使用できません。

注記

Amazon Braket Python SDK を使用して Amazon Braket Hybrid Jobs を操作することを強くお勧めします。ハイブリッドジョブを正常に実行するのに役立つ便利なデフォルトと保護を提供します。

このトピックでは、 の使用の基本について説明しますAPI。API を使用する場合は、このアプローチがより複雑になり、ハイブリッドジョブを実行するための反復処理が複数回行われる可能性があることに注意してください。

API を使用するには、アカウントに AmazonBraketFullAccess管理ポリシーを持つロールが必要です。

注記

AmazonBraketFullAccess マネージドポリシーでロールを取得する方法の詳細については、Amazon Braket を有効にする」ページを参照してください。

さらに、実行ロール が必要です。このロールはサービスに渡されます。 Amazon Braket コンソール を使用してロールを作成できます。アクセス許可と設定ページの「実行ロール」タブを使用して、ハイブリッドジョブのデフォルトロールを作成します。

CreateJob API では、ハイブリッドジョブに必要なすべてのパラメータを指定する必要があります。Python を使用するには、アルゴリズムスクリプトファイルを input.tar.gz ファイルなどの tar バンドルに圧縮し、次のスクリプトを実行します。コードの部分を角括弧 (<>) で更新して、ハイブリッドジョブが開始されるパス、ファイル、メソッドを指定するアカウント情報とエントリポイントと一致させます。

from braket.aws import AwsDevice, AwsSession import boto3 from datetime import datetime s3_client = boto3.client("s3") client = boto3.client("braket") project_name = "job-test" job_name = project_name + "-" + datetime.strftime(datetime.now(), "%Y%m%d%H%M%S") bucket = "amazon-braket-<your_bucket>" s3_prefix = job_name job_script = "input.tar.gz" job_object = f"{s3_prefix}/script/{job_script}" s3_client.upload_file(job_script, bucket, job_object) input_data = "inputdata.csv" input_object = f"{s3_prefix}/input/{input_data}" s3_client.upload_file(input_data, bucket, input_object) job = client.create_job( jobName=job_name, roleArn="arn:aws:iam::<your_account>:role/service-role/AmazonBraketJobsExecutionRole", # https://docs.aws.amazon.com/braket/latest/developerguide/braket-manage-access.html#about-amazonbraketjobsexecution algorithmSpecification={ "scriptModeConfig": { "entryPoint": "<your_execution_module>:<your_execution_method>", "containerImage": {"uri": "292282985366.dkr.ecr.us-west-1.amazonaws.com/amazon-braket-base-jobs:1.0-cpu-py37-ubuntu18.04"} # Change to the specific region you are using "s3Uri": f"s3://{bucket}/{job_object}", "compressionType": "GZIP" } }, inputDataConfig=[ { "channelName": "hellothere", "compressionType": "NONE", "dataSource": { "s3DataSource": { "s3Uri": f"s3://{bucket}/{s3_prefix}/input", "s3DataType": "S3_PREFIX" } } } ], outputDataConfig={ "s3Path": f"s3://{bucket}/{s3_prefix}/output" }, instanceConfig={ "instanceType": "ml.m5.large", "instanceCount": 1, "volumeSizeInGb": 1 }, checkpointConfig={ "s3Uri": f"s3://{bucket}/{s3_prefix}/checkpoints", "localPath": "/opt/omega/checkpoints" }, deviceConfig={ "priorityAccess": { "devices": [ "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" ] } }, hyperParameters={ "hyperparameter key you wish to pass": "<hyperparameter value you wish to pass>", }, stoppingCondition={ "maxRuntimeInSeconds": 1200, "maximumTaskLimit": 10 }, )

ハイブリッドジョブを作成したら、 GetJobAPIまたはコンソールからハイブリッドジョブの詳細にアクセスできます。前の例のようにcreateJobコードを実行した Python セッションからハイブリッドジョブの詳細を取得するには、次の Python コマンドを使用します。

getJob = client.get_job(jobArn=job["jobArn"])

ハイブリッドジョブをキャンセルするには、ジョブ () Amazon Resource Nameの CancelJobAPIを使用して を呼び出します'JobArn'。

cancelJob = client.cancel_job(jobArn=job["jobArn"])

checkpointConfig パラメータcreateJobAPIを使用して、 の一部としてチェックポイントを指定できます。

checkpointConfig = { "localPath" : "/opt/omega/checkpoints", "s3Uri": f"s3://{bucket}/{s3_prefix}/checkpoints" },
注記

のローカルパス checkpointConfig は、予約済みパスの /opt/ml/opt/braket/tmp、または /usr/local/nvidia のいずれかで開始することはできません。