本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
输入、输出、环境变量和辅助函数
除了构成完整算法脚本的一个或多个文件外,您的混合作业还可以有其他输入和输出。当您的混合作业启动时,AmazonBraket 会将创建混合作业时提供的输入复制到运行算法脚本的容器中。混合任务完成后,算法期间定义的所有输出都将复制到指定的 Amazon S3 位置。
注意
算法指标是实时报告的,不遵循此输出程序。
Amazon Braket 还提供了多个环境变量和辅助函数,以简化与容器输入和输出的交互。
本节介绍了 Amazon Braket Python 软件开发工具包提供的AwsQuantumJob.create
函数的关键概念及其与容器文件结构的映射。
输入
输入数据:通过使用input_data
参数指定设置为字典的输入数据文件,可以将输入数据提供给混合算法。用户在 SDK 的AwsQuantumJob.create
函数中定义input_data
参数。这会将输入数据复制到环境变量所给位置的容器文件系统"AMZN_BRAKET_INPUT_DIR"
。有关如何在混合算法中使用输入数据的几个示例,请参阅带有 Amazon Braket Hybrid Jobs 的 QAOA PennyLane 和 Amazon Braket Hybrid Job
注意
当输入数据很大 (>1GB) 时,混合作业需要很长时间才能提交。这是因为本地输入数据将首先上传到 S3 存储桶,然后将 S3 路径添加到混合任务请求中,最后,混合任务请求将提交给 Braket 服务。
超参数:如果传入hyperparameters
,则它们在环境变量"AMZN_BRAKET_HP_FILE"
下可用。
检查点:要指定job-arn
要在新的混合作业中使用哪个检查点,请使用copy_checkpoints_from_job
命令。此命令将检查点数据复制到新的混合作业中,使其在作业运行时在环境变量AMZN_BRAKET_CHECKPOINT_DIR
给出的路径上可用。checkpoint_configs3Uri
默认值为None
,这意味着来自其他混合作业的检查点数据将不会用于新的混合作业。
输出
量子任务:量子任务结果存储在 S3 位置s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks
。
Job 结果:您的算法脚本保存到环境变量给定目录的所有内容"AMZN_BRAKET_JOB_RESULTS_DIR"
都将复制到中指定的 S3 位置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 混合任务运行 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
— Amazon S3 位置,默认情况下,SDK 将在其中存储任务的量子任务结果。 -
AMZN_BRAKET_JOB_RESULTS_S3_PATH
— 存储任务结果的 Amazon S3 位置,如CreateJob
请求中所述OutputDataConfig
。 -
AMZN_BRAKET_JOB_TOKEN
— 对于在作业容器中创建CreateQuantumTask
的量子任务,应传递给的jobToken
参数的字符串。
辅助函数
Amazon Braket 提供了多个辅助函数,以简化与容器输入和输出的交互。这些辅助函数将从用于运行 Hybrid Job 的算法脚本中调用。以下示例演示了如何使用它们。
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