Crea il tuo primo Hybrid Job - Amazon Braket

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea il tuo primo Hybrid Job

Questa sezione mostra come creare un Hybrid Job usando uno script Python. In alternativa, per creare un lavoro ibrido da codice Python locale, come il tuo ambiente di sviluppo integrato (IDE) preferito o un notebook Braket, vedi. Esegui il codice locale come processo ibrido

Imposta le autorizzazioni

Prima di eseguire il primo lavoro ibrido, è necessario assicurarsi di disporre di autorizzazioni sufficienti per procedere con questa attività. Per stabilire di disporre delle autorizzazioni corrette, seleziona Autorizzazioni dal menu sul lato sinistro della Braket Console. La pagina Gestione delle autorizzazioni per Amazon Braket ti aiuta a verificare se uno dei tuoi ruoli esistenti dispone di autorizzazioni sufficienti per eseguire il tuo lavoro ibrido o ti guida attraverso la creazione di un ruolo predefinito che può essere utilizzato per eseguire il tuo lavoro ibrido se non disponi già di tale ruolo.

Pagina delle autorizzazioni e delle impostazioni per il servizio Amazon Braket che mostra un ruolo collegato al servizio e l'opzione per verificare i ruoli esistenti per il ruolo di esecuzione di Hybrid Jobs.

Per verificare di disporre di ruoli con autorizzazioni sufficienti per eseguire un lavoro ibrido, seleziona il pulsante Verifica il ruolo esistente. Se lo fai, ricevi un messaggio che indica che i ruoli sono stati trovati. Per visualizzare i nomi dei ruoli e i relativi ARN, seleziona il pulsante Mostra ruoli.

Schermata delle autorizzazioni e delle impostazioni di Amazon Braket che mostra un ruolo collegato al servizio trovato e i ruoli esistenti con autorizzazioni sufficienti per eseguire lavori ibridi.

Se non disponi di un ruolo con autorizzazioni sufficienti per eseguire un lavoro ibrido, ricevi un messaggio che indica che tale ruolo non è stato trovato. Seleziona il pulsante Crea ruolo predefinito per ottenere un ruolo con autorizzazioni sufficienti.

Pagina delle autorizzazioni e delle impostazioni di Amazon Braket che mostra il ruolo collegato al servizio trovato e nessun ruolo di esecuzione di lavori ibridi trovato.

Se il ruolo è stato creato correttamente, riceverai un messaggio di conferma.

Pagina delle autorizzazioni e delle impostazioni di Amazon Braket che mostra un ruolo collegato al servizio trovato e un ruolo di esecuzione di lavori ibridi creato correttamente.

Se non disponi delle autorizzazioni necessarie per effettuare questa richiesta, ti verrà negato l'accesso. In questo caso, contatta l' AWS amministratore interno.

AccessDenied messaggio di errore che indica che l'utente non è autorizzato a eseguire iam: ListAttachedRolePolicies on e AmazonBraketJobsExecutionRole con un rifiuto esplicito.

Crea ed esegui

Una volta ottenuto un ruolo con le autorizzazioni per eseguire un lavoro ibrido, sei pronto per procedere. L'elemento chiave del tuo primo lavoro ibrido con Braket è lo script dell'algoritmo. Definisce l'algoritmo da eseguire e contiene le classiche attività logiche e quantistiche che fanno parte dell'algoritmo. Oltre allo script dell'algoritmo, puoi fornire altri file di dipendenza. Lo script dell'algoritmo, insieme alle sue dipendenze, viene chiamato modulo sorgente. Il punto di ingresso definisce il primo file o funzione da eseguire nel modulo di origine all'avvio del processo ibrido.

Diagramma che mostra il flusso di lavoro relativo alla creazione di un lavoro quantistico utilizzando una console o un notebook, all'esecuzione dello script dell'algoritmo su un dispositivo quantistico e all'analisi dei risultati.

Innanzitutto, consideriamo il seguente esempio di base di uno script di algoritmo che crea cinque stati a campana e stampa i risultati di misurazione corrispondenti.

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!")

Salvate questo file con il nome algorithm_script.py nella directory di lavoro corrente sul notebook Braket o nell'ambiente locale. Il file algorithm_script.py ha start_here() come punto di ingresso pianificato.

Quindi, crea un file Python o un taccuino Python nella stessa directory del file algorithm_script.py. Questo script avvia il processo ibrido e gestisce qualsiasi elaborazione asincrona, come la stampa dello stato o dei risultati chiave che ci interessano. Come minimo, questo script deve specificare lo script di lavoro ibrido e il dispositivo principale.

Nota

Per ulteriori informazioni su come creare un notebook Braket o caricare un file, ad esempio il file algorithm_script.py, nella stessa directory dei notebook, consulta Esegui il tuo primo circuito usando l'SDK Amazon Braket Python

Per questo primo caso di base, scegli come obiettivo un simulatore. Indipendentemente dal tipo di dispositivo quantistico scelto come target, un simulatore o un'unità di elaborazione quantistica (QPU) effettiva, il dispositivo specificato device nello script seguente viene utilizzato per pianificare il processo ibrido ed è disponibile per gli script dell'algoritmo come variabile di ambiente. AMZN_BRAKET_DEVICE_ARN

Nota

È possibile utilizzare solo i dispositivi disponibili nel processo ibrido. Regione AWS L'SDK Amazon Braket seleziona automaticamente questa opzione. Regione AWS Ad esempio, un lavoro ibrido in us-east-1 può IonQ utilizzareSV1,, TN1 e dispositiviDM1, ma non dispositivi. Rigetti

Se scegli un computer quantistico anziché un simulatore, Braket pianifica i tuoi lavori ibridi per eseguire tutte le loro attività quantistiche con accesso 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 )

Il parametro wait_until_complete=True imposta una modalità dettagliata in modo che il lavoro stampi l'output del lavoro effettivo mentre è in esecuzione. Dovreste vedere un output simile a quello dell'esempio seguente.

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

Puoi anche utilizzare il tuo modulo personalizzato con il metodo AwsQuantumJob.create passandone la posizione (il percorso di una directory o di un file locale o un URI S3 di un file tar.gz). Per un esempio funzionante, consulta il file Parallelize_training_for_qml.ipynb nella cartella hybrid jobs nel repository Amazon Braket examples Github.

Monitora i risultati

In alternativa, puoi accedere all'output del registro da Amazon CloudWatch. Per fare ciò, vai alla scheda Gruppi di log nel menu a sinistra della pagina dei dettagli del lavoro, seleziona il gruppo di logaws/braket/jobs, quindi scegli il flusso di log che contiene il nome del lavoro. Nell'esempio precedente è braket-job-default-1631915042705/algo-1-1631915190.

CloudWatch gruppo di log che mostra l'elenco degli eventi di log con percorsi di file e timestamp per i test Python di Amazon Braket SDK.

Puoi anche visualizzare lo stato del lavoro ibrido nella console selezionando la pagina Hybrid Jobs e quindi scegliendo Impostazioni.

Dettagli del processo ibrido di Amazon Braket con riepilogo, orari degli eventi, codice sorgente e configurazione dell'istanza e condizioni di arresto.

Il tuo lavoro ibrido produce alcuni artefatti in Amazon S3 mentre è in esecuzione. Il nome predefinito del bucket S3 è amazon-braket-<region>-<accountid> e il contenuto si trova nella directory. jobs/<jobname>/<timestamp> Puoi configurare le posizioni S3 in cui vengono archiviati questi artefatti specificandone una diversa code_location quando il lavoro ibrido viene creato con Braket Python SDK.

Nota

Questo bucket S3 deve trovarsi nella stessa posizione del job script. Regione AWS

La jobs/<jobname>/<timestamp> directory contiene una sottocartella con l'output dello script del punto di ingresso in un file. model.tar.gz Esiste anche una directory chiamata script che contiene gli elementi dello script dell'algoritmo in un file. source.tar.gz I risultati delle vostre attività quantistiche effettive si trovano nella directory denominata. jobs/<jobname>/tasks