Entradas, salidas, variables de entorno y funciones auxiliares - Amazon Braket

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.

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 Jobs Jupyter.

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"

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 la CreateJob solicitudOutputDataConfig.

  • AMZN_BRAKET_SCRIPT_ENTRY_POINT— El punto de entrada especificado en la CreateJob solicitudScriptModeConfig.

  • AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE— El tipo de compresión especificado en la CreateJob solicitudScriptModeConfig.

  • AMZN_BRAKET_SCRIPT_S3_URI— La ubicación en Amazon S3 del script del usuario, tal como se especifica en la CreateJob 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 la CreateJob solicitudOutputDataConfig.

  • AMZN_BRAKET_JOB_TOKEN— La cadena que se debe pasar al jobToken parámetro CreateQuantumTask 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