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

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

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

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

참고

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

이 주제에서는 사용의 기본 사항을 다룹니다API. API를 사용하기로 선택한 경우이 접근 방식이 더 복잡할 수 있으며 하이브리드 작업을 실행할 수 있도록 여러 반복에 대비해야 합니다.

API를 사용하려면 계정에 AmazonBraketFullAccess 관리형 정책이 있는 역할이 있어야 합니다.

참고

AmazonBraketFullAccess 관리형 정책으로 역할을 가져오는 방법에 대한 자세한 내용은 Amazon Braket 활성화 페이지를 참조하세요.

또한 실행 역할이 필요합니다. 이 역할은 서비스에 전달됩니다. Amazon Braket 콘솔을 사용하여 역할을 생성할 수 있습니다. 권한 및 설정 페이지의 실행 역할 탭을 사용하여 하이브리드 작업에 대한 기본 역할을 생성합니다.

에서는 하이브리드 작업에 필요한 모든 파라미터를 지정CreateJobAPI해야 합니다. 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"])

하이브리드 작업을 취소하려면 작업()Amazon Resource Name의를 CancelJob API 사용하여를 호출합니다'JobArn'.

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

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

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

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