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.
Conceptos clave de los trabajos híbridos
En esta sección se explican los conceptos clave de la función AwsQuantumJob.create proporcionada por el SDK de Python de Amazon Braket y su asignación a la estructura del archivo contenedor.
Además del archivo o los archivos que componen el script completo del algoritmo, el 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 de 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. Para obtener más información, consulte el paquete braket.jobs
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 argumento input_data. El usuario define el argumento input_data dentro de la función AwsQuantumJob.create en el SDK. Esto copia los datos de entrada al sistema de archivo 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 (>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 cargarán primero en un bucket S3, luego se añadirá la ruta S3 a la solicitud de trabajo híbrido y, por último, la solicitud de trabajo híbrido se enviará al servicio de Braket.
Hiperparámetros: si transfierehyperparameters, estarán disponibles en la variable de entorno "AMZN_BRAKET_HP_FILE".
nota
Para obtener más información sobre cómo crear hiperparámetros y datos de entrada y, a continuación, pasar esta información al script de trabajo híbrido, consulte la sección Uso de hiperparámetros en esta página
Puntos de control: para especificar un job-arn cuyo punto de control desea utilizar en un nuevo trabajo híbrido, utilice el comando copy_checkpoints_from_job. Este comando copia los datos del punto de control al checkpoint_configs3Uri del nuevo trabajo híbrido, de forma que estén disponibles en la ruta indicada por la variable de entorno AMZN_BRAKET_CHECKPOINT_DIR mientras se ejecuta el trabajo. El valor predeterminado es None, lo que significa que los datos del punto de control de otro trabajo híbrido no se utilizarán en el nuevo trabajo híbrido.
Outputs
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 de S3.
Resultados del trabajo: todo lo que el script de algoritmo guarda en el directorio indicado por la variable de entorno "AMZN_BRAKET_JOB_RESULTS_DIR" se copia en la ubicación de S3 especificada en output_data_config. Si no se especifica el 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 llame desde el script de 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". También puede usar la función auxiliar del SDK save_job_checkpoint en su lugar.
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 algoritmo, consulte Uso de los trabajos híbridos de Amazon Braket para ejecutar un algoritmo QAOA.
Para obtener más información sobre cómo guardar los resultados de sus trabajos, consulte Guardar los resultados en la documentación de trabajos híbridos.
Variables de entorno
Amazon Braket proporciona varias variables de entorno para simplificar las interacciones con las entradas y salidas del contenedor. En el siguiente código se enumeran las variables de entorno que utiliza Braket.
-
AMZN_BRAKET_INPUT_DIR— El directorio opt/braket/input/data de datos de entrada. -
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 de Amazon S3 de salida, tal como se especifica en laOutputDataConfigde la solicitud deCreateJob. -
AMZN_BRAKET_SCRIPT_ENTRY_POINT: el punto de entrada, tal como se especifica en laScriptModeConfigde la solicitud deCreateJob. -
AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE: el tipo de compresión, tal como se especifica en laScriptModeConfigde la solicitud deCreateJob. -
AMZN_BRAKET_SCRIPT_S3_URI: la ubicación en Amazon S3 del script del usuario, tal como se especifica en laScriptModeConfigde la solicitud deCreateJob. -
AMZN_BRAKET_TASK_RESULTS_S3_URI: la ubicación de Amazon S3 en la que el SDK almacenaría los resultados de las tareas cuánticas de forma predeterminada. -
AMZN_BRAKET_JOB_RESULTS_S3_PATH: la ubicación de Amazon S3 en la que se almacenarían los resultados del trabajo, tal como se especifica en laOutputDataConfigde la solicitud deCreateJob. -
AMZN_BRAKET_JOB_TOKEN: la cadena que se debe pasar al parámetrojobTokendeCreateQuantumTaskcorrespondiente 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 del contenedor. Estas funciones auxiliares se llamarían desde dentro del script de algoritmo que se utiliza para ejecutar su trabajo híbrido. En el siguiente ejemplo se muestra cómo utilizarlas.
from braket.jobs import get_checkpoint_dir, get_hyperparameters, get_input_data_dir, get_job_device_arn, get_job_name, get_results_dir, save_job_result, save_job_checkpoint, load_job_checkpoint 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(result_data='data') # Save hybrid job results save_job_checkpoint(checkpoint_data={'key': 'value'}) # Save a checkpoint load_job_checkpoint() # Load a previously saved checkpoint