Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Entradas, salidas, variables de entorno y funciones auxiliares
Además del archivo o los archivos que componen el script de algoritmo completo, su trabajo híbrido puede tener entradas y salidas adicionales. Cuando se inicia el trabajo híbrido, Amazon Braket copia las entradas proporcionadas como parte de la creación del trabajo híbrido en el contenedor que ejecuta el script del algoritmo. Cuando se completa el trabajo híbrido, todos los resultados definidos durante el algoritmo se copian en la ubicación de Amazon S3 especificada.
nota
Las métricas del algoritmo se notifican en tiempo real y no siguen este procedimiento de salida.
Amazon Braket también proporciona varias variables de entorno y funciones auxiliares para simplificar las interacciones con las entradas y salidas de los contenedores.
En esta sección se explican los conceptos clave de la AwsQuantumJob.create
función proporcionada por el SDK de Python de Amazon Braket y su asignación a la estructura de archivos contenedores.
En esta sección:
Entradas
Datos de entrada: los datos de entrada se pueden proporcionar al algoritmo híbrido especificando el archivo de datos de entrada, que está configurado como un diccionario, con el input_data
argumento. El usuario define el input_data
argumento dentro de la AwsQuantumJob.create
función en el SDK. Esto copia los datos de entrada al sistema de archivos contenedor en la ubicación indicada por la variable de entorno"AMZN_BRAKET_INPUT_DIR"
. Para ver un par de ejemplos de cómo se utilizan los datos de entrada en un algoritmo híbrido, consulte la QAOA con Amazon Braket Hybrid Jobs PennyLane y el aprendizaje automático cuántico en los cuadernos Amazon Braket Hybrid
nota
Si los datos de entrada son grandes (más de 1 GB), habrá un largo tiempo de espera antes de que se envíe el trabajo híbrido. Esto se debe a que los datos de entrada locales se cargan primero en un depósito de S3, después se añade la ruta de S3 a la solicitud de trabajo híbrido y, por último, la solicitud de trabajo híbrido se envía al servicio Braket.
Hiperparámetros: si los transfierehyperparameters
, estarán disponibles en la variable de entorno. "AMZN_BRAKET_HP_FILE"
nota
Puntos de control: para especificar qué job-arn
punto de control desea utilizar en un nuevo trabajo híbrido, utilice el comando. copy_checkpoints_from_job
Este comando copia los datos de los puntos de control a los checkpoint_configs3Uri
del nuevo trabajo híbrido y los hace disponibles en la ruta indicada por la variable de entorno AMZN_BRAKET_CHECKPOINT_DIR
mientras se ejecuta el trabajo. El valor predeterminado esNone
, lo que significa que los datos de los puntos de control de otro trabajo híbrido no se utilizarán en el nuevo trabajo híbrido.
Salidas
Tareas cuánticas: los resultados de las tareas cuánticas se almacenan en la ubicación s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks
S3.
Resultados del trabajo: todo lo que el script de su algoritmo guarda en el directorio indicado por la variable de entorno "AMZN_BRAKET_JOB_RESULTS_DIR"
se copia en la ubicación S3 especificada enoutput_data_config
. Si no especifica este valor, el valor predeterminado es. s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data
Proporcionamos la función auxiliar del SDK save_job_result
, que puede utilizar para almacenar los resultados cómodamente en forma de diccionario cuando se invoca desde el script de su algoritmo.
Puntos de control: si desea utilizar puntos de control, puede guardarlos en el directorio indicado por la variable de entorno. "AMZN_BRAKET_CHECKPOINT_DIR"
En su lugar, también puedes usar la función de ayuda del SDK. save_job_checkpoint
Métricas de algoritmos: puedes definir las métricas de los algoritmos como parte del script de tu algoritmo que se emiten a Amazon CloudWatch y se muestran en tiempo real en la consola de Amazon Braket mientras se ejecuta tu trabajo híbrido. Para ver un ejemplo de cómo utilizar las métricas de los algoritmos, consulte Utilizar Amazon Braket Hybrid Jobs para ejecutar un algoritmo de QAOA.
Variables de entorno
Amazon Braket proporciona varias variables de entorno para simplificar las interacciones con las entradas y salidas de los contenedores. En el siguiente código se enumeran las variables de entorno que utiliza Braket.
-
AMZN_BRAKET_INPUT_DIR
— El directorio de datos de entrada. opt/braket/input/data -
AMZN_BRAKET_JOB_RESULTS_DIR
— El directorio de salida en el opt/braket/model que se escriben los resultados del trabajo. -
AMZN_BRAKET_JOB_NAME
: el nombre del trabajo. -
AMZN_BRAKET_CHECKPOINT_DIR
— El directorio de puntos de control. -
AMZN_BRAKET_HP_FILE
— El archivo que contiene los hiperparámetros. -
AMZN_BRAKET_DEVICE_ARN
— El ARN (nombre del AWS recurso) del dispositivo. -
AMZN_BRAKET_OUT_S3_BUCKET
— El bucket Amazon S3 de salida, tal y como se especifica en laCreateJob
solicitudOutputDataConfig
. -
AMZN_BRAKET_SCRIPT_ENTRY_POINT
— El punto de entrada especificado en laCreateJob
solicitudScriptModeConfig
. -
AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE
— El tipo de compresión especificado en laCreateJob
solicitudScriptModeConfig
. -
AMZN_BRAKET_SCRIPT_S3_URI
— La ubicación en Amazon S3 del script del usuario, tal como se especifica en laCreateJob
solicitudScriptModeConfig
. -
AMZN_BRAKET_TASK_RESULTS_S3_URI
— La ubicación de Amazon S3 donde el SDK almacenaría los resultados de las tareas cuánticas de forma predeterminada para el trabajo. -
AMZN_BRAKET_JOB_RESULTS_S3_PATH
— La ubicación de Amazon S3 en la que se almacenarían los resultados del trabajo, tal y como se especifica en laCreateJob
solicitudOutputDataConfig
. -
AMZN_BRAKET_JOB_TOKEN
— La cadena que se debe pasar aljobToken
parámetroCreateQuantumTask
correspondiente a las tareas cuánticas creadas en el contenedor de tareas.
Funciones auxiliares
Amazon Braket proporciona varias funciones auxiliares para simplificar las interacciones con las entradas y salidas de los contenedores. Estas funciones auxiliares se llamarían desde el script del algoritmo que se utiliza para ejecutar su Hybrid Job. En el siguiente ejemplo, se muestra cómo utilizarlas.
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