첫 번째 하이브리드 Job 생성하기 - Amazon Braket

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

첫 번째 하이브리드 Job 생성하기

이 섹션에서는 Python 스크립트를 사용하여 Hybrid Job을 생성하는 방법을 보여줍니다. 또는 선호하는 통합 개발 환경 (IDE) 또는 Braket 노트북과 같은 로컬 Python 코드에서 하이브리드 작업을 생성하려면 을 참조하십시오로컬 코드를 하이브리드 작업으로 실행.

권한 설정

첫 번째 하이브리드 작업을 실행하기 전에 이 작업을 진행할 수 있는 충분한 권한이 있는지 확인해야 합니다. 권한이 올바른지 확인하려면 Braket 콘솔 왼쪽의 메뉴에서 권한을 선택하십시오. Amazon Braket의 권한 관리 페이지는 기존 역할 중 하나에 하이브리드 작업을 실행하기에 충분한 권한이 있는지 확인하는 데 도움이 되며, 하이브리드 작업을 실행하는 데 사용할 수 있는 기본 역할을 아직 갖고 있지 않은 경우 하이브리드 작업을 실행하는 데 사용할 수 있는 기본 역할을 생성하는 방법을 안내합니다.

Amazon Braket 서비스의 권한 및 설정 페이지에는 하이브리드 작업 실행 역할의 기존 역할을 확인하는 서비스 연결 역할 및 옵션이 나와 있습니다.

하이브리드 작업을 실행할 수 있는 충분한 권한을 가진 역할이 있는지 확인하려면 기존 역할 확인 버튼을 선택하십시오. 그럴 경우 역할을 찾았다는 메시지가 나타납니다. 역할 이름과 역할을 보려면 역할 보기 버튼을 선택합니다. ARNs

Amazon Braket 권한 및 설정 화면에는 검색된 서비스 연결 역할과 하이브리드 작업을 실행할 수 있는 충분한 권한이 있는 기존 역할이 표시됩니다.

하이브리드 작업을 실행할 수 있는 충분한 권한을 가진 역할이 없는 경우 해당 역할을 찾을 수 없다는 메시지가 표시됩니다. 충분한 권한이 있는 역할을 가져오려면 기본 역할 만들기 버튼을 선택합니다.

Amazon Braket 권한 및 설정 페이지에 서비스 연결 역할은 찾았지만 하이브리드 작업 실행 역할은 발견되지 않았음을 보여 줍니다.

역할이 성공적으로 생성되면 이를 확인하는 메시지가 나타납니다.

Amazon Braket 권한 및 설정 페이지에는 검색된 서비스 연결 역할과 성공적으로 생성된 하이브리드 작업 실행 역할이 표시됩니다.

이 문의를 할 권한이 없는 경우 액세스가 거부됩니다. 이 경우 내부 담당자에게 문의하세요. AWS 관리자에게

AccessDenied 사용자가 ListAttachedRolePolicies iam:를 수행할 권한이 없음을 나타내는 오류 메시지 AmazonBraketJobsExecutionRole 명시적 거부 포함

생성 및 실행

하이브리드 작업을 실행할 권한이 있는 역할을 갖게 되면 작업을 계속할 준비가 된 것입니다. 첫 번째 Braket 하이브리드 작업의 핵심은 알고리즘 스크립트입니다. 실행하려는 알고리즘을 정의하며 알고리즘의 일부인 기존 논리 및 양자 작업을 포함합니다. 알고리즘 스크립트 외에도 다른 종속성 파일을 제공할 수 있습니다. 알고리즘 스크립트와 종속 항목을 함께 소스 모듈이라고 합니다. 진입점은 하이브리드 작업이 시작될 때 소스 모듈에서 실행할 첫 번째 파일 또는 함수를 정의합니다.

콘솔이나 노트북을 사용하여 양자 작업을 생성하고, 양자 장치에서 알고리즘 스크립트를 실행하고, 결과를 분석하는 워크플로를 보여주는 다이어그램입니다.

먼저, 5가지 벨 상태를 생성하고 해당 측정 결과를 출력하는 알고리즘 스크립트의 다음 기본 예를 살펴보겠습니다.

import os from braket.aws import AwsDevice from braket.circuits import Circuit def start_here(): print("Test job started!") # Use the device declared in the job script device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"]) bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) print("Test job completed!")

Braket 노트북 또는 로컬 환경의 현재 작업 디렉토리에 algorithm_script.py 라는 이름으로 이 파일을 저장하십시오. algorithm_script.py 파일이 시작 start_here() 지점으로 계획되어 있습니다.

다음으로, algorithm_script.py 파일과 같은 디렉토리에 Python 파일 또는 Python 노트북을 생성합니다. 이 스크립트는 하이브리드 작업을 시작하고 원하는 상태나 주요 결과를 인쇄하는 등의 모든 비동기 처리를 처리합니다. 이 스크립트는 최소한 하이브리드 작업 스크립트와 기본 장치를 지정해야 합니다.

참고

Braket 노트북을 생성하거나 노트북과 동일한 디렉터리에 algorithm_script.py 파일과 같은 파일을 업로드하는 방법에 대한 자세한 내용은 Amazon Braket Python을 사용하여 첫 번째 회로 실행을 참조하십시오. SDK

이 기본적인 첫 번째 사례에서는 시뮬레이터를 대상으로 합니다. 시뮬레이터 또는 실제 양자 처리 장치 (QPU) 중 어떤 유형을 대상으로 하든, 다음 스크립트에서 지정하는 장치는 하이브리드 작업을 예약하는 데 사용되며 알고리즘 스크립트에서 환경 변수로 사용할 수 있습니다. device AMZN_BRAKET_DEVICE_ARN

참고

에서 사용할 수 있는 장치만 사용할 수 있습니다. AWS 리전 하이브리드 작업의 Amazon Braket은 이것을 SDK 자동으로 선택합니다. AWS 리전. 예를 들어 us-east-1의 하이브리드 작업은 다음을 사용할 수 있습니다.IonQ, SV1, DM1, 및 TN1 기기, 하지만 그렇지 않음 Rigetti 디바이스.

시뮬레이터 대신 양자 컴퓨터를 선택하면 Braket은 우선 액세스가 가능한 모든 양자 작업을 실행하도록 하이브리드 작업을 예약합니다.

from braket.aws import AwsQuantumJob from braket.devices import Devices job = AwsQuantumJob.create( Devices.Amazon.SV1, source_module="algorithm_script.py", entry_point="algorithm_script:start_here", wait_until_complete=True )

이 파라미터는 작업이 실행 중인 실제 작업의 출력을 인쇄하도록 세부 정보 표시 모드를 wait_until_complete=True 설정합니다. 다음 예제와 비슷한 출력이 표시될 것입니다.

job = AwsQuantumJob.create( Devices.Amazon.SV1, source_module="algorithm_script.py", entry_point="algorithm_script:start_here", wait_until_complete=True, ) Initializing Braket Job: arn:aws:braket:us-west-2:<accountid>:job/<UUID> ......................................... . . . Completed 36.1 KiB/36.1 KiB (692.1 KiB/s) with 1 file(s) remaining#015download: s3://braket-external-assets-preview-us-west-2/HybridJobsAccess/models/braket-2019-09-01.normal.json to ../../braket/additional_lib/original/braket-2019-09-01.normal.json Running Code As Process Test job started!!!!! Counter({'00': 55, '11': 45}) Counter({'11': 59, '00': 41}) Counter({'00': 55, '11': 45}) Counter({'00': 58, '11': 42}) Counter({'00': 55, '11': 45}) Test job completed!!!!! Code Run Finished 2021-09-17 21:48:05,544 sagemaker-training-toolkit INFO Reporting training SUCCESS
참고

또한 위치 (로컬 디렉토리 또는 파일의 경로 또는 tar.gz 파일의 S3URI) 를 전달하여 사용자 정의 AwsQuantumJob모듈을.create 메서드와 함께 사용할 수 있습니다. 실제 예제는 Amazon Braket 예제 Github 리포지토리의 하이브리드 작업 폴더에 있는 Parallelize_Training_for_ QML .ipynb 파일을 참조하십시오.

모니터 결과

또는 Amazon에서 로그 출력에 액세스할 수 CloudWatch 있습니다. 이렇게 하려면 작업 세부 정보 페이지의 왼쪽 메뉴에 있는 로그 그룹 탭으로 이동하여 로그 그룹을 aws/braket/jobs 선택한 다음 작업 이름이 포함된 로그 스트림을 선택합니다. 위 예시에서는 다음과 같습니다braket-job-default-1631915042705/algo-1-1631915190.

CloudWatch Amazon Braket SDK Python 테스트의 파일 경로 및 타임스탬프와 함께 로그 이벤트 목록을 보여 주는 로그 그룹입니다.

하이브리드 작업 페이지를 선택한 다음 설정을 선택하여 콘솔에서 하이브리드 작업의 상태를 볼 수도 있습니다.

요약, 이벤트 시간, 소스 코드 및 인스턴스 구성, 중지 조건을 보여주는 Amazon Braket 하이브리드 작업 세부 정보

하이브리드 작업은 실행 중에 Amazon S3에서 일부 아티팩트를 생성합니다. 기본 S3 버킷 이름은 amazon-braket-<region>-<accountid> 이며 콘텐츠는 jobs/<jobname>/<timestamp> 디렉터리에 있습니다. Braket Python으로 하이브리드 작업을 생성할 code_location 때 다른 위치를 지정하여 이러한 아티팩트가 저장되는 S3 위치를 구성할 수 있습니다. SDK

참고

이 S3 버킷은 동일한 위치에 있어야 합니다. AWS 리전 작업 스크립트로 사용하세요.

jobs/<jobname>/<timestamp>디렉토리에는 엔트리 포인트 스크립트의 출력이 model.tar.gz 파일에 들어 있는 하위 폴더가 있습니다. 알고리즘 스크립트 아티팩트가 script 파일에 들어 있는 디렉토리도 있습니다. source.tar.gz 실제 양자 작업의 결과는 이름이 지정된 jobs/<jobname>/tasks 디렉터리에 있습니다.