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, consulteEjecutar tu código local como un trabajo híbrido.
En esta sección:
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 Gestió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.
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 su función ARNs, seleccione el botón Mostrar funciones.
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.
Si el rol se creó correctamente, recibirá un mensaje que lo confirma.
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.
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.
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 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.
Initializing Braket Job: arn:aws:braket:us-west-2:111122223333:job/braket-job-default-123456789012 Job queue position: 1 Job queue position: 1 Job queue position: 1 .............. . . . Beginning Setup Checking for Additional Requirements Additional Requirements Check Finished Running Code As Process Test job started! Counter({'00': 58, '11': 42}) Counter({'00': 55, '11': 45}) Counter({'11': 51, '00': 49}) Counter({'00': 56, '11': 44}) Counter({'11': 56, '00': 44}) Test job completed! Code Run Finished 2025-09-24 23:13:40,962 sagemaker-training-toolkit INFO Reporting training SUCCESS
nota
También puedes usar tu módulo personalizado con el método AwsQuantumJob.create
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.
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.
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.
Guardar los resultados de su trabajo
Puede guardar los resultados generados por el script del algoritmo para que estén disponibles en el objeto de trabajo híbrido del script de trabajo híbrido, así como en la carpeta de salida de Amazon S3 (en un archivo comprimido con tar denominado model.tar.gz).
El resultado debe guardarse en un archivo con un formato de notación de JavaScript objetos (JSON). Si los datos no se pueden serializar fácilmente en texto, como en el caso de una matriz numérica, puede incluir una opción para serializar utilizando un formato de datos decapado. Consulte el módulo braket.jobs.data_persistence
Para guardar los resultados de los trabajos híbridos, añada las siguientes líneas comentadas con #ADD al archivo algorithm_script.py.
import os from braket.aws import AwsDevice from braket.circuits import Circuit from braket.jobs import save_job_result # ADD def start_here(): print("Test job started!") device = AwsDevice(os.environ['AMZN_BRAKET_DEVICE_ARN']) results = [] # ADD bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) results.append(task.result().measurement_counts) # ADD save_job_result({"measurement_counts": results}) # ADD print("Test job completed!")
A continuación, puede mostrar los resultados del trabajo desde su script de trabajo añadiendo la línea print(job.result())comentada con #ADD.
import time from braket.aws import AwsQuantumJob job = AwsQuantumJob.create( source_module="algorithm_script.py", entry_point="algorithm_script:start_here", device="arn:aws:braket:::device/quantum-simulator/amazon/sv1", ) print(job.arn) while job.state() not in AwsQuantumJob.TERMINAL_STATES: print(job.state()) time.sleep(10) print(job.state()) print(job.result()) # ADD
En este ejemplo, la hemos eliminado wait_until_complete=True para suprimir la salida detallada. Puedes volver a añadirlo para su depuración. Cuando ejecutas este trabajo híbrido, muestra el identificador y el job-arn estado del trabajo híbrido cada 10 segundos hasta que el trabajo híbrido esté listoCOMPLETED, tras lo cual te muestra los resultados del circuito de campana. Consulte el siguiente ejemplo.
arn:aws:braket:us-west-2:111122223333:job/braket-job-default-123456789012 INITIALIZED RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING ... RUNNING RUNNING COMPLETED {'measurement_counts': [{'11': 53, '00': 47},..., {'00': 51, '11': 49}]}
Guardar y reiniciar los trabajos híbridos mediante puntos de control
Puede guardar las iteraciones intermedias de sus trabajos híbridos mediante puntos de control. En el ejemplo del script de algoritmos de la sección anterior, añadiría las siguientes líneas comentadas con #ADD para crear archivos de puntos de control.
from braket.aws import AwsDevice from braket.circuits import Circuit from braket.jobs import save_job_checkpoint # ADD import os def start_here(): print("Test job starts!") device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"]) # ADD the following code job_name = os.environ["AMZN_BRAKET_JOB_NAME"] save_job_checkpoint(checkpoint_data={"data": f"data for checkpoint from {job_name}"}, checkpoint_file_suffix="checkpoint-1") # End of ADD 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 hybrid job completed!")
Al ejecutar el trabajo híbrido, se crea el archivo -checkpoint-1.json <jobname>en los artefactos del trabajo híbrido del directorio de puntos de control con una ruta predeterminada. /opt/jobs/checkpoints El script del trabajo híbrido permanece inalterado a menos que desee cambiar esta ruta predeterminada.
Si desea cargar un trabajo híbrido desde un punto de control generado por un trabajo híbrido anterior, utilice from braket.jobs import load_job_checkpoint el script del algoritmo. La lógica que se debe cargar en el script de su algoritmo es la siguiente.
from braket.jobs import load_job_checkpoint checkpoint_1 = load_job_checkpoint( "previous_job_name", checkpoint_file_suffix="checkpoint-1", )
Tras cargar este punto de control, puede continuar con la lógica en función del contenido cargado en él. checkpoint-1
nota
El checkpoint_file_suffix debe coincidir con el sufijo previamente especificado al crear el punto de control.
El guion de orquestación debe especificar lo del trabajo híbrido anterior con la línea job-arn comentada con #ADD.
from braket.aws import AwsQuantumJob job = AwsQuantumJob.create( source_module="source_dir", entry_point="source_dir.algorithm_script:start_here", device="arn:aws:braket:::device/quantum-simulator/amazon/sv1", copy_checkpoints_from_job="<previous-job-ARN>", #ADD )