를 사용하여 하이브리드 작업과 직접 상호 작용 API - Amazon Braket

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

를 사용하여 하이브리드 작업과 직접 상호 작용 API

를 사용하여 Amazon Braket 하이브리드 작업에 직접 액세스하고 상호 작용할 수 있습니다.API. 그러나 를 사용할 때는 기본값 및 편의 방법을 사용할 수 없습니다.API 직접.

참고

Amazon Braket Python 을 사용하여 Amazon Braket SDK하이브리드 작업과 상호 작용하는 것이 좋습니다. 하이브리드 작업이 성공적으로 실행되는 데 도움이 되는 편리한 기본값과 보호 기능을 제공합니다.

이 주제에서는 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/Ankaa-2" ] } }, hyperParameters={ "hyperparameter key you wish to pass": "<hyperparameter value you wish to pass>", }, stoppingCondition={ "maxRuntimeInSeconds": 1200, "maximumTaskLimit": 10 }, )

하이브리드 작업을 생성한 후에는 를 통해 하이브리드 작업 세부 정보에 액세스할 수 있습니다. GetJob API 또는 콘솔. 이전 예제와 같이 createJob 코드를 실행한 Python 세션에서 하이브리드 작업 세부 정보를 가져오려면 다음 Python 명령을 사용합니다.

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

하이브리드 작업을 취소하려면 CancelJob API 와 함께 Amazon Resource Name 작업('JobArn').

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

의 일부로 체크포인트를 지정할 수 있습니다. createJob API checkpointConfig 파라미터를 사용합니다.

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

localPath 의 는 /opt/ml, /opt/braket, /tmp또는 와 같은 예약 경로로 시작할 수 checkpointConfig 없습니다/usr/local/nvidia.