Ingressi, uscite, variabili ambientali e funzioni di supporto - 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à.

Ingressi, uscite, variabili ambientali e funzioni di supporto

Oltre al file o ai file che compongono lo script completo dell'algoritmo, il job ibrido può avere input e output aggiuntivi. Quando inizia il processo ibrido,AmazonBraket copia gli input forniti come parte della creazione del lavoro ibrido nel contenitore che esegue lo script dell'algoritmo. Al termine del processo ibrido, tutti gli output definiti durante l'algoritmo vengono copiati nella posizione Amazon S3 specificata.

Nota

Metriche dell'algoritmovengono segnalati in tempo reale e non seguono questa procedura di output.

AmazonBraket fornisce anche diverse variabili di ambiente e funzioni di supporto per semplificare le interazioni con gli input e gli output del contenitore.

Questa sezione spiega i concetti chiave diAwsQuantumJob.createfunzione fornita daAmazonBraket Python SDK e la loro mappatura alla struttura del file contenitore.

Input

Dati di input: I dati di input possono essere forniti all'algoritmo ibrido specificando il file di dati di input, che è impostato come dizionario, coninput_dataargomento. L'utente definisce ilinput_dataargomento all'interno delAwsQuantumJob.createfunzione nell'SDK. Questo copia i dati di input nel file system del contenitore nella posizione indicata dalla variabile di ambiente"AMZN_BRAKET_INPUT_DIR". Per un paio di esempi di come i dati di input vengono utilizzati in un algoritmo ibrido, consultaQAOA con Amazon Braket Hybrid Jobs e PennyLaneeApprendimento automatico quantistico in Amazon Braket Hybrid JobsQuaderni Jupyter

Nota

Quando i dati di input sono di grandi dimensioni (> 1 GB), ci sarà un lungo periodo di attesa prima che il lavoro ibrido venga inviato. Ciò è dovuto al fatto che i dati di input locali verranno prima caricati su un bucket S3, quindi il percorso S3 verrà aggiunto alla richiesta di lavoro ibrida e, infine, la richiesta di lavoro ibrida verrà inviata al servizio Braket.

Iperparametri: Se si passahyperparameters, sono disponibili nella variabile di ambiente"AMZN_BRAKET_HP_FILE".

Nota

Per ulteriori informazioni su come creare iperparametri e dati di input e quindi passare queste informazioni allo script di lavoro ibrido, consultaUtilizzare gli iperparametrisezione e questo githubpagina.

posti di blocco: Per specificare unjob-arndi cui vuoi usare il checkpoint in un nuovo lavoro ibrido, usa ilcopy_checkpoints_from_jobcomando. Questo comando copia i dati del checkpoint nelcheckpoint_configs3Uridel nuovo lavoro ibrido, rendendolo disponibile nel percorso indicato dalla variabile di ambienteAMZN_BRAKET_CHECKPOINT_DIRmentre il processo è in esecuzione. Il valore predefinito è .None, il che significa che i dati del checkpoint di un altro lavoro ibrido non verranno utilizzati nel nuovo lavoro ibrido.

Output

Compiti quantistici: I risultati delle attività quantistiche vengono archiviati nella posizione S3 specificata inoutput_data_config. Se non si specifica questo valore, il valore predefinito ès3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks.

Risultati Job: Tutto ciò che lo script dell'algoritmo salva nella directory fornita dalla variabile di ambiente"AMZN_BRAKET_JOB_RESULTS_DIR"viene copiato nella posizione S3 specificata inoutput_data_config. Se non si specifica questo valore, il valore predefinito ès3://amazon-braket-<region>-<accountID>/jobs/<job-name>/data. Forniamo la funzione di supporto SDK save_job_result , che puoi utilizzare per archiviare comodamente i risultati sotto forma di dizionario quando richiamati dallo script dell'algoritmo.

Punti di controllo: Se si desidera utilizzare i checkpoint, è possibile salvarli nella directory fornita dalla variabile di ambiente"AMZN_BRAKET_CHECKPOINT_DIR". Puoi anche utilizzare la funzione di supporto SDKsave_job_checkpointinvece.

Metriche degli algoritmi: Puoi definire le metriche dell'algoritmo come parte dello script dell'algoritmo che vengono emesse ad Amazon CloudWatch e visualizzati in tempo reale nelAmazonSostieni la console mentre il tuo lavoro ibrido è in esecuzione. Per un esempio su come utilizzare le metriche degli algoritmi, consultaUsa Amazon Braket Hybrid Jobs per eseguire un algoritmo QAOA_.

Variabili di ambiente

AmazonBraket fornisce diverse variabili di ambiente per semplificare le interazioni con gli input e gli output del contenitore. Il codice seguente elenca le variabili ambientali utilizzate da Braket.

# the input data directory opt/braket/input/data os.environ["AMZN_BRAKET_INPUT_DIR"] # the output directory opt/braket/model to write job results to os.environ["AMZN_BRAKET_JOB_RESULTS_DIR"] # the name of the job os.environ["AMZN_BRAKET_JOB_NAME"] # the checkpoint directory os.environ["AMZN_BRAKET_CHECKPOINT_DIR"] # the file containing the hyperparameters os.environ["AMZN_BRAKET_HP_FILE"] # the device ARN (AWS Resource Name) os.environ["AMZN_BRAKET_DEVICE_ARN"] # the output S3 bucket, as specified in the CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_OUT_S3_BUCKET"] # the entry point as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_ENTRY_POINT"] # the compression type as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE"] # the S3 location of the user’s script as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_S3_URI"] # the S3 location where the SDK would store the quantum task results by default for the job os.environ["AMZN_BRAKET_TASK_RESULTS_S3_URI"] # the S3 location where the job results would be stored, as specified in CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_JOB_RESULTS_S3_PATH"] # the string that should be passed to CreateQuantumTask’s jobToken parameter for quantum tasks created in the job container os.environ["AMZN_BRAKET_JOB_TOKEN"]

Funzioni di supporto

AmazonBraket offre diverse funzioni di supporto per semplificare le interazioni con gli input e gli output del contenitore. Queste funzioni di supporto verrebbero richiamate dall'interno dello script dell'algoritmo utilizzato per eseguire Hybrid Job. L'esempio seguente illustra come utilizzarli.

save_job_result() # helper function to save your job results save_job_checkpoint() # helper function to save checkpoints load_job_checkpoint() # helper function to load a previously saved job checkpoints