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

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

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

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

참고

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

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

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

입력

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

참고

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

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

참고

하이퍼파라미터 및 입력 데이터를 생성한 다음이 정보를 하이브리드 작업 스크립트에 전달하는 방법에 대한 자세한 내용은 하이퍼파라미터 사용 섹션 및이 github 페이지를 참조하세요.

체크포인트: 새 하이브리드 작업에 사용할 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. 알고리즘 스크립트에서 호출할 때 딕셔너리의 형태로 결과를 편리하게 저장하는 데 사용할 수 있는 save_job_result SDK헬퍼 함수를 제공합니다.

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

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

환경 변수

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

# the input data directory opt/braket/input/data os.environ["AMZN_BRAKET_INPUT_DIR"] # the output directory opt/braket/model to write job results to os.environ["AMZN_BRAKET_JOB_RESULTS_DIR"] # the name of the job os.environ["AMZN_BRAKET_JOB_NAME"] # the checkpoint directory os.environ["AMZN_BRAKET_CHECKPOINT_DIR"] # the file containing the hyperparameters os.environ["AMZN_BRAKET_HP_FILE"] # the device ARN (AWS Resource Name) os.environ["AMZN_BRAKET_DEVICE_ARN"] # the output S3 bucket, as specified in the CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_OUT_S3_BUCKET"] # the entry point as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_ENTRY_POINT"] # the compression type as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE"] # the S3 location of the user’s script as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_S3_URI"] # the S3 location where the SDK would store the quantum task results by default for the job os.environ["AMZN_BRAKET_TASK_RESULTS_S3_URI"] # the S3 location where the job results would be stored, as specified in CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_JOB_RESULTS_S3_PATH"] # the string that should be passed to CreateQuantumTask’s jobToken parameter for quantum tasks created in the job container os.environ["AMZN_BRAKET_JOB_TOKEN"]

헬퍼 함수

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