

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à.

# Concetti chiave per Hybrid Jobs
<a name="braket-jobs-concepts"></a>

Questa sezione spiega i concetti chiave della `AwsQuantumJob.create` funzione fornita da Amazon Braket Python SDK e la mappatura alla struttura del file contenitore.

Oltre al file o ai file che compongono lo script completo dell'algoritmo, il lavoro ibrido può avere input e output aggiuntivi. All'avvio del processo ibrido, Amazon Braket 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**  
 Le *metriche dell'algoritmo* vengono riportate in tempo reale e non seguono questa procedura di output.

Amazon Braket fornisce anche diverse variabili di ambiente e funzioni di supporto per semplificare le interazioni con gli input e gli output dei container. *Per ulteriori informazioni, consulta il [pacchetto braket.jobs nell'SDK](https://amazon-braket-sdk-python.readthedocs.io/en/latest/_apidoc/braket.jobs.html) Amazon Braket.* 

**Topics**
+ [Input](#braket-jobs-inputs)
+ [Output](#braket-jobs-outputs)
+ [Variabili di ambiente](#braket-jobs-environmental-variables)
+ [Funzioni di supporto](#braket-jobs-helper-functions)

## Input
<a name="braket-jobs-inputs"></a>

 **Dati di** input: i dati di input possono essere forniti all'algoritmo ibrido specificando il file di dati di input, che è impostato come dizionario, con l'`input_data`argomento. L'utente definisce l'`input_data`argomento all'interno della `AwsQuantumJob.create` funzione nell'SDK. Questo copia i dati di input nel file system del contenitore nella posizione indicata dalla variabile `"AMZN_BRAKET_INPUT_DIR"` di ambiente. Per un paio di esempi di come i dati di input vengono utilizzati in un algoritmo ibrido, consulta [QAOA con Amazon Braket Hybrid Jobs PennyLane [e Quantum machine learning nei notebook Amazon Braket Hybrid Jobs Jobs Jupyter](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_jobs/1_Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs/Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs.ipynb)](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_jobs/2_Using_PennyLane_with_Braket_Hybrid_Jobs/Using_PennyLane_with_Braket_Hybrid_Jobs.ipynb).

**Nota**  
Quando i dati di input sono di grandi dimensioni (> 1 GB), ci sarà un lungo tempo 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 passa`hyperparameters`, 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, consulta la sezione [Use hyperparameters](braket-jobs-hyperparameters.md) e questa pagina github.](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_jobs/1_Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs/qcbm/qcbm.py)

 **Punti di controllo**: per specificare `job-arn` il checkpoint di cui desideri utilizzare in un nuovo lavoro ibrido, usa il comando. `copy_checkpoints_from_job` Questo comando copia i dati del checkpoint nel nuovo processo ibrido, rendendoli disponibili nel percorso indicato dalla variabile di ambiente `AMZN_BRAKET_CHECKPOINT_DIR` durante l'esecuzione del lavoro. `checkpoint_configs3Uri` L'impostazione predefinita è `None` che i dati del checkpoint di un altro lavoro ibrido non verranno utilizzati nel nuovo lavoro ibrido.

## Output
<a name="braket-jobs-outputs"></a>

 **Attività quantistiche: i risultati delle attività** quantistiche vengono archiviati nella posizione S3. `s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks`

 **Risultati del lavoro**: 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 in. `output_data_config` Se il valore non è specificato, il valore predefinito è. `s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data` Forniamo la funzione di supporto SDK **`save_job_result`**, che puoi utilizzare per archiviare comodamente i risultati sotto forma di dizionario quando richiami dallo script dell'algoritmo.

 **Punti di controllo**: se desideri utilizzare i checkpoint, puoi salvarli nella directory fornita dalla variabile di ambiente. `"AMZN_BRAKET_CHECKPOINT_DIR"` Puoi invece utilizzare anche la funzione di supporto SDK. `save_job_checkpoint`

 **Metriche dell'algoritmo**: puoi definire le metriche dell'algoritmo come parte dello script dell'algoritmo che vengono emesse su Amazon CloudWatch e visualizzate in tempo reale nella console Amazon Braket mentre il processo ibrido è in esecuzione. Per un esempio di come utilizzare le metriche degli algoritmi, consulta Use [Amazon Braket Hybrid Jobs per eseguire un algoritmo QAOA](braket-jobs-run-qaoa-algorithm.md).

Per ulteriori informazioni sul salvataggio dei risultati dei lavori, consulta [Salvare i risultati nella documentazione di Hybrid](https://docs.aws.amazon.com/braket/latest/developerguide/braket-jobs-first.html#braket-jobs-save-results) Jobs. 

## Variabili di ambiente
<a name="braket-jobs-environmental-variables"></a>

Amazon Braket fornisce diverse variabili di ambiente per semplificare le interazioni con gli input e gli output dei container. Il codice seguente elenca le variabili ambientali utilizzate da Braket.
+ `AMZN_BRAKET_INPUT_DIR`— La directory dei dati di input. opt/braket/input/data
+ `AMZN_BRAKET_JOB_RESULTS_DIR`— La directory di output opt/braket/model in cui scrivere i risultati del lavoro.
+ `AMZN_BRAKET_JOB_NAME`— Il nome del lavoro.
+ `AMZN_BRAKET_CHECKPOINT_DIR`— L'elenco dei checkpoint.
+ `AMZN_BRAKET_HP_FILE`— Il file contenente gli iperparametri.
+ `AMZN_BRAKET_DEVICE_ARN`— L'ARN (AWS Resource Name) del dispositivo.
+ `AMZN_BRAKET_OUT_S3_BUCKET`— Il bucket Amazon S3 di output, come specificato nella `CreateJob` richiesta. `OutputDataConfig`
+ `AMZN_BRAKET_SCRIPT_ENTRY_POINT`— Il punto di ingresso specificato nella `CreateJob` richiesta. `ScriptModeConfig`
+ `AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE`— Il tipo di compressione specificato nella `CreateJob` richiesta`ScriptModeConfig`.
+ `AMZN_BRAKET_SCRIPT_S3_URI`— La posizione Amazon S3 dello script dell'utente come specificato nella `CreateJob` richiesta. `ScriptModeConfig`
+ `AMZN_BRAKET_TASK_RESULTS_S3_URI`— La posizione Amazon S3 in cui l'SDK archivia i risultati quantistici delle attività per impostazione predefinita per il lavoro.
+ `AMZN_BRAKET_JOB_RESULTS_S3_PATH`— La sede Amazon S3 in cui verranno archiviati i risultati del lavoro, come specificato nella `CreateJob` richiesta. `OutputDataConfig`
+ `AMZN_BRAKET_JOB_TOKEN`— La stringa che deve essere passata al `CreateQuantumTask` `jobToken` parametro per le attività quantistiche create nel job container.

## Funzioni di supporto
<a name="braket-jobs-helper-functions"></a>

Amazon Braket offre diverse funzioni di supporto per semplificare le interazioni con gli input e gli output dei container. Queste funzioni di supporto verrebbero richiamate dall'interno dello script dell'algoritmo utilizzato per eseguire Hybrid Job. L'esempio seguente mostra come utilizzarle.

```
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
```