입력, 출력, 환경 변수 및 헬퍼 함수 - Amazon Braket

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

입력, 출력, 환경 변수 및 헬퍼 함수

전체 알고리즘 스크립트를 구성하는 파일 외에도 하이브리드 작업에는 추가 입력과 출력이 있을 수 있습니다. 하이브리드 작업이 시작되면 Amazon Braket은 하이브리드 작업 생성의 일부로 제공된 입력을 알고리즘 스크립트를 실행하는 컨테이너에 복사합니다. 하이브리드 작업이 완료되면 알고리즘 중에 정의된 모든 출력이 지정된 Amazon S3 위치로 복사됩니다.

참고

알고리즘 지표는 실시간으로 보고되며이 출력 절차를 따르지 않습니다.

또한 Amazon Braket은 컨테이너 입력 및 출력과의 상호 작용을 간소화하기 위한 여러 환경 변수 및 헬퍼 함수를 제공합니다.

이 섹션에서는 Amazon Braket Python SDK에서 제공하는 AwsQuantumJob.create 함수의 주요 개념과 컨테이너 파일 구조에 대한 매핑을 설명합니다.

입력

입력 데이터: input_data 인수를 사용하여 사전으로 설정된 입력 데이터 파일을 지정하여 하이브리드 알고리즘에 입력 데이터를 제공할 수 있습니다. 사용자는 SDK의 AwsQuantumJob.create 함수 내에서 input_data 인수를 정의합니다. 그러면 환경 변수에서 지정한 위치의 컨테이너 파일 시스템에 입력 데이터가 복사됩니다"AMZN_BRAKET_INPUT_DIR". 하이브리드 알고리즘에서 입력 데이터가 사용되는 방법에 대한 몇 가지 예는 Amazon Braket Hybrid Jobs가 포함된 QAOA와 Amazon Braket Hybrid Jobs Jupyter 노트북의 PennyLane 및 Quantum 기계 학습을 참조하세요. Amazon Braket

참고

입력 데이터가 크면(>1GB) 하이브리드 작업이 제출되기까지 대기 시간이 길어집니다. 이는 로컬 입력 데이터가 먼저 S3 버킷에 업로드된 다음 S3 경로가 하이브리드 작업 요청에 추가되고 마지막으로 하이브리드 작업 요청이 Braket 서비스에 제출되기 때문입니다.

하이퍼파라미터:를 전달하면 환경 변수에서 hyperparameters사용할 수 있습니다"AMZN_BRAKET_HP_FILE".

참고

하이퍼파라미터 및 입력 데이터를 생성한 다음이 정보를 하이브리드 작업 스크립트에 전달하는 방법에 대한 자세한 내용은 하이퍼파라미터 사용 섹션 및이 github 페이지를 참조하세요. https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_jobs/1_Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs/qcbm/qcbm.py

체크포인트: 새 하이브리드 작업에 사용할 job-arn 체크포인트를 지정하려면 copy_checkpoints_from_job 명령을 사용합니다. 이 명령은 체크포인트 데이터를 통해 새 하이브리드 작업checkpoint_configs3Uri의에 복사하므로 작업이 실행되는 AMZN_BRAKET_CHECKPOINT_DIR 동안 환경 변수가 지정한 경로에서 사용할 수 있습니다. 기본값은 입니다. 즉None, 다른 하이브리드 작업의 체크포인트 데이터는 새 하이브리드 작업에 사용되지 않습니다.

결과

Quantum 작업: Quantum 작업 결과는 S3 위치에 저장됩니다s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks.

작업 결과: 알고리즘 스크립트가 환경 변수가 제공한 디렉터리에 저장하는 모든 것이에 지정된 S3 위치로 복사"AMZN_BRAKET_JOB_RESULTS_DIR"됩니다output_data_config. 이 값을 지정하지 않으면 기본값은 입니다s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data. 알고리즘 스크립트에서 호출할 때 결과를 딕셔너리 형태로 편리하게 저장하는 데 사용할 수 있는 SDK save_job_result 헬퍼 함수를 제공합니다.

체크포인트: 체크포인트를 사용하려면 환경 변수에서 지정한 디렉터리에 체크포인트를 저장할 수 있습니다"AMZN_BRAKET_CHECKPOINT_DIR". save_job_checkpoint SDK 헬퍼 함수를 대신 사용할 수도 있습니다.

알고리즘 지표: 하이브리드 작업이 실행되는 동안 Amazon CloudWatch로 내보내지고 Amazon Braket 콘솔에 실시간으로 표시되는 알고리즘 스크립트의 일부로 알고리즘 지표를 정의할 수 있습니다. 알고리즘 지표를 사용하는 방법의 예는 Amazon Braket Hybrid Jobs를 사용하여 QAOA 알고리즘 실행을 참조하세요.

환경 변수

Amazon Braket은 컨테이너 입력 및 출력과의 상호 작용을 간소화하는 여러 환경 변수를 제공합니다. 아래 코드는 Braket이 사용하는 환경 변수를 나열합니다.

  • AMZN_BRAKET_INPUT_DIR - 입력 데이터 디렉터리 opt/braket/input/data.

  • AMZN_BRAKET_JOB_RESULTS_DIR - 작업 결과를 쓸 출력 디렉터리 opt/braket/model입니다.

  • AMZN_BRAKET_JOB_NAME - 작업의 이름입니다.

  • AMZN_BRAKET_CHECKPOINT_DIR - 체크포인트 디렉터리입니다.

  • AMZN_BRAKET_HP_FILE - 하이퍼파라미터가 포함된 파일입니다.

  • AMZN_BRAKET_DEVICE_ARN - 디바이스 ARN(AWS 리소스 이름).

  • AMZN_BRAKET_OUT_S3_BUCKET - CreateJob 요청의에 지정된 출력 Amazon S3 버킷입니다OutputDataConfig.

  • AMZN_BRAKET_SCRIPT_ENTRY_POINT - CreateJob 요청의에 지정된 진입점입니다ScriptModeConfig.

  • AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE - CreateJob 요청의에 지정된 압축 유형입니다ScriptModeConfig.

  • AMZN_BRAKET_SCRIPT_S3_URI - CreateJob 요청의에 지정된 사용자 스크립트의 Amazon S3 위치입니다ScriptModeConfig.

  • AMZN_BRAKET_TASK_RESULTS_S3_URI - SDK가 기본적으로 작업에 대한 양자 작업 결과를 저장하는 Amazon S3 위치입니다.

  • AMZN_BRAKET_JOB_RESULTS_S3_PATH - CreateJob 요청의에 지정된 대로 작업 결과가 저장될 Amazon S3 위치입니다OutputDataConfig.

  • AMZN_BRAKET_JOB_TOKEN - 작업 컨테이너에 생성된 양자 작업에 대해 CreateQuantumTaskjobToken 파라미터에 전달되어야 하는 문자열입니다.

헬퍼 함수

Amazon Braket은 컨테이너 입력 및 출력과의 상호 작용을 간소화하는 몇 가지 헬퍼 함수를 제공합니다. 이러한 헬퍼 함수는 하이브리드 작업을 실행하는 데 사용되는 알고리즘 스크립트 내에서 호출됩니다. 다음 예제에서는 이를 사용하는 방법을 보여줍니다.

get_checkpoint_dir() # Get the checkpoint directory get_hyperparameters() # Get the hyperparameters as strings get_input_data_dir() # Get the input data directory get_job_device_arn() # Get the device specified by the hybrid job get_job_name() # Get the name of the hybrid job. get_results_dir() # Get the path to a results directory save_job_result() # Save hybrid job results save_job_checkpoint() # Save a checkpoint load_job_checkpoint() # Load a previously saved checkpoint