Cree su primer trabajo híbrido - 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.

Cree su primer trabajo híbrido

En esta sección se muestra cómo crear un Hybrid Job mediante un script de Python. Como alternativa, para crear un trabajo híbrido a partir del código Python local, como su entorno de desarrollo integrado (IDE) preferido o un bloc de notas Braket, consulteEjecute su código local como un trabajo híbrido.

Configure los permisos

Antes de ejecutar su primer trabajo híbrido, debe asegurarse de tener los permisos suficientes para continuar con esta tarea. Para determinar si tiene los permisos correctos, seleccione Permisos en el menú de la parte izquierda de la consola Braket. La página de administración de permisos para Amazon Braket le ayuda a comprobar si uno de sus roles actuales tiene permisos suficientes para ejecutar su trabajo híbrido o lo guía a través de la creación de un rol predeterminado que pueda usarse para ejecutar su trabajo híbrido si aún no lo tiene.

Página de permisos y configuración del servicio Amazon Braket que muestra un rol vinculado al servicio y una opción para verificar los roles existentes para el rol de ejecución de Hybrid Jobs.

Para comprobar que tiene roles con permisos suficientes para ejecutar un trabajo híbrido, seleccione el botón Verificar el rol existente. Si lo hace, recibirá un mensaje en el que se indica que se han encontrado los roles. Para ver los nombres de las funciones y los ARN de sus funciones, seleccione el botón Mostrar funciones.

Pantalla de permisos y configuración de Amazon Braket que muestra un rol vinculado a un servicio encontrado y los roles existentes con permisos suficientes para ejecutar trabajos híbridos.

Si no tiene un rol con los permisos suficientes para ejecutar un trabajo híbrido, recibirá un mensaje en el que se indica que no se ha encontrado dicho rol. Seleccione el botón Crear un rol predeterminado para obtener un rol con permisos suficientes.

Página de permisos y configuración de Amazon Braket que muestra el rol vinculado al servicio encontrado y no se encontró ningún rol de ejecución de trabajos híbridos.

Si el rol se creó correctamente, recibirá un mensaje que lo confirma.

Página de permisos y configuración de Amazon Braket que muestra un rol vinculado a un servicio encontrado y un rol de ejecución de trabajos híbridos creado correctamente.

Si no tiene permisos para realizar esta consulta, se le denegará el acceso. En este caso, póngase en contacto con su AWS administrador interno.

AccessDenied mensaje de error que indica que el usuario no está autorizado a ejecutar el comando iam: ListAttachedRolePolicies en caso contrario, AmazonBraketJobsExecutionRole con una denegación explícita.

Crear y ejecutar

Una vez que tenga un rol con permisos para ejecutar un trabajo híbrido, estará listo para continuar. La pieza clave de su primer trabajo híbrido de Braket es el script del algoritmo. Define el algoritmo que desea ejecutar y contiene las tareas lógicas y cuánticas clásicas que forman parte de su algoritmo. Además del script del algoritmo, puede proporcionar otros archivos de dependencia. El script del algoritmo, junto con sus dependencias, se denomina módulo fuente. El punto de entrada define el primer archivo o función que se ejecutará en el módulo fuente cuando se inicie el trabajo híbrido.

Diagrama que muestra el flujo de trabajo consistente en crear un trabajo cuántico con una consola o portátil, ejecutar el script del algoritmo en un dispositivo cuántico y analizar los resultados.

En primer lugar, consideremos el siguiente ejemplo básico de un script de algoritmo que crea cinco estados de campana e imprime los resultados de medición correspondientes.

import os from braket.aws import AwsDevice from braket.circuits import Circuit def start_here(): print("Test job started!") # Use the device declared in the job script device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"]) bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) print("Test job completed!")

Guarde este archivo con el nombre algorithm_script.py en el directorio de trabajo actual de su bloc de notas Braket o en su entorno local. El fichero algorithm_script.py tiene start_here() como punto de entrada previsto.

A continuación, cree un archivo de Python o un cuaderno de Python en el mismo directorio que el archivo algorithm_script.py. Este script inicia el trabajo híbrido y gestiona cualquier procesamiento asíncrono, como imprimir el estado o los resultados clave que nos interesen. Como mínimo, este script debe especificar el script de trabajo híbrido y el dispositivo principal.

nota

Para obtener más información sobre cómo crear un bloc de notas Braket o cargar un archivo, como el archivo algorithm_script.py, en el mismo directorio que los cuadernos, consulte Ejecute su primer circuito con el SDK de Python de Amazon Braket

Para este primer caso básico, opta por un simulador. Independientemente del tipo de dispositivo cuántico al que apunte, ya sea un simulador o una unidad de procesamiento cuántico (QPU) real, el dispositivo que especifique device en el siguiente script se utiliza para programar el trabajo híbrido y está disponible para los scripts del algoritmo como variable AMZN_BRAKET_DEVICE_ARN de entorno.

nota

Solo puede usar los dispositivos que estén disponibles en Región de AWS su trabajo híbrido. El Amazon Braket SDK lo selecciona automáticamente. Región de AWS Por ejemplo, un trabajo híbrido en us-east-1 puede IonQ usar dispositivosSV1,, TN1 yDM1, pero no dispositivos. Rigetti

Si eliges un ordenador cuántico en lugar de un simulador, Braket programa tus trabajos híbridos para que ejecuten todas sus tareas cuánticas con acceso prioritario.

from braket.aws import AwsQuantumJob from braket.devices import Devices job = AwsQuantumJob.create( Devices.Amazon.SV1, source_module="algorithm_script.py", entry_point="algorithm_script:start_here", wait_until_complete=True )

El parámetro wait_until_complete=True establece un modo detallado para que el trabajo imprima el resultado del trabajo real a medida que se ejecuta. Debería ver un resultado similar al siguiente ejemplo.

job = AwsQuantumJob.create( Devices.Amazon.SV1, source_module="algorithm_script.py", entry_point="algorithm_script:start_here", wait_until_complete=True, ) Initializing Braket Job: arn:aws:braket:us-west-2:<accountid>:job/<UUID> ......................................... . . . Completed 36.1 KiB/36.1 KiB (692.1 KiB/s) with 1 file(s) remaining#015download: s3://braket-external-assets-preview-us-west-2/HybridJobsAccess/models/braket-2019-09-01.normal.json to ../../braket/additional_lib/original/braket-2019-09-01.normal.json Running Code As Process Test job started!!!!! Counter({'00': 55, '11': 45}) Counter({'11': 59, '00': 41}) Counter({'00': 55, '11': 45}) Counter({'00': 58, '11': 42}) Counter({'00': 55, '11': 45}) Test job completed!!!!! Code Run Finished 2021-09-17 21:48:05,544 sagemaker-training-toolkit INFO Reporting training SUCCESS
nota

También puedes usar tu módulo personalizado con el método AwsQuantumJob.create pasando su ubicación (la ruta a un directorio o archivo local o el URI de S3 de un archivo tar.gz). Para ver un ejemplo práctico, consulta el archivo Parallelize_Training_for_QML.ipynb en la carpeta de trabajos híbridos del repositorio Github de ejemplos de Amazon Braket.

Supervisar resultados

Como alternativa, puedes acceder a la salida del registro desde Amazon CloudWatch. Para ello, vaya a la pestaña Grupos de registros en el menú izquierdo de la página de detalles del trabajo, seleccione el grupo de registros yaws/braket/jobs, a continuación, elija el flujo de registro que contiene el nombre del trabajo. En el ejemplo anterior, es braket-job-default-1631915042705/algo-1-1631915190.

CloudWatch grupo de registros que muestra una lista de eventos de registro con rutas de archivo y marcas de tiempo para las pruebas de Python del SDK de Amazon Braket.

También puede ver el estado del trabajo híbrido en la consola seleccionando la página Trabajos híbridos y, a continuación, seleccionando Configuración.

Detalles del trabajo híbrido de Amazon Braket que muestran un resumen, los tiempos de los eventos, el código fuente y la configuración de la instancia y las condiciones de parada.

Su trabajo híbrido produce algunos artefactos en Amazon S3 mientras se ejecuta. El nombre predeterminado del bucket de S3 es amazon-braket-<region>-<accountid> y el contenido está en el jobs/<jobname>/<timestamp> directorio. Puede configurar las ubicaciones de S3 en las que se almacenan estos artefactos especificando una diferente code_location al crear el trabajo híbrido con el SDK de Python de Braket.

nota

Este depósito de S3 debe estar ubicado en el mismo lugar que Región de AWS el script de trabajo.

El jobs/<jobname>/<timestamp> directorio contiene una subcarpeta con el resultado del script del punto de entrada en un model.tar.gz archivo. También hay un directorio llamado script que contiene los artefactos del script del algoritmo en un source.tar.gz archivo. Los resultados de sus tareas cuánticas reales se encuentran en el directorio nombradojobs/<jobname>/tasks.