

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Concepts clés pour les emplois hybrides
<a name="braket-jobs-concepts"></a>

Cette section explique les concepts clés de la `AwsQuantumJob.create` fonction fournie par le SDK Amazon Braket Python et le mappage à la structure du fichier conteneur.

Outre le ou les fichiers qui constituent votre script d'algorithme complet, votre tâche hybride peut comporter des entrées et des sorties supplémentaires. Lorsque votre tâche hybride démarre, Amazon Braket copie les entrées fournies dans le cadre de la création de la tâche hybride dans le conteneur qui exécute le script d'algorithme. Lorsque la tâche hybride est terminée, toutes les sorties définies au cours de l'algorithme sont copiées vers l'emplacement Amazon S3 spécifié.

**Note**  
 Les *métriques de l'algorithme* sont rapportées en temps réel et ne suivent pas cette procédure de sortie.

Amazon Braket fournit également plusieurs variables d'environnement et fonctions d'assistance pour simplifier les interactions avec les entrées et sorties des conteneurs. *Pour plus d'informations, consultez le [package braket.jobs dans le SDK](https://amazon-braket-sdk-python.readthedocs.io/en/latest/_apidoc/braket.jobs.html) Amazon Braket.* 

**Topics**
+ [Inputs](#braket-jobs-inputs)
+ [Sorties](#braket-jobs-outputs)
+ [Variables d'environnement](#braket-jobs-environmental-variables)
+ [Fonctions d'assistance](#braket-jobs-helper-functions)

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

 **Données d'**entrée : Les données d'entrée peuvent être fournies à l'algorithme hybride en spécifiant le fichier de données d'entrée, qui est configuré sous forme de dictionnaire, avec l'`input_data`argument. L'utilisateur définit l'`input_data`argument au sein de la `AwsQuantumJob.create` fonction dans le SDK. Cela copie les données d'entrée dans le système de fichiers conteneur à l'emplacement indiqué par la variable d'environnement`"AMZN_BRAKET_INPUT_DIR"`. Pour quelques exemples de la façon dont les données d'entrée sont utilisées dans un algorithme hybride, consultez le [QAOA avec Amazon Braket Hybrid Jobs PennyLane](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) [et l'apprentissage automatique quantique dans les blocs-notes Jupyter d'Amazon Braket](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) Hybrid Jobs.

**Note**  
Lorsque les données d'entrée sont volumineuses (> 1 Go), le temps d'attente est long avant que la tâche hybride ne soit soumise. Cela est dû au fait que les données d'entrée locales seront d'abord téléchargées dans un compartiment S3, puis le chemin S3 sera ajouté à la demande de travail hybride et, enfin, la demande de travail hybride est soumise au service Braket.

 **Hyperparamètres** : si vous les transmettez`hyperparameters`, ils sont disponibles sous la variable `"AMZN_BRAKET_HP_FILE"` d'environnement.

**Note**  
[Pour plus d'informations sur la façon de créer des hyperparamètres et des données d'entrée, puis de transmettre ces informations au script de tâche hybride, consultez la section [Utiliser les hyperparamètres](braket-jobs-hyperparameters.md) et cette page 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)

 **Points de contrôle** : pour spécifier `job-arn` le point de contrôle que vous souhaitez utiliser dans une nouvelle tâche hybride, utilisez la `copy_checkpoints_from_job` commande. Cette commande copie les données du point `checkpoint_configs3Uri` de contrôle vers la nouvelle tâche hybride, les rendant disponibles sur le chemin indiqué par la variable d'environnement `AMZN_BRAKET_CHECKPOINT_DIR` pendant l'exécution de la tâche. La valeur par défaut est`None`, ce qui signifie que les données de point de contrôle d'une autre tâche hybride ne seront pas utilisées dans la nouvelle tâche hybride.

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

 **Tâches quantiques** : les résultats des tâches quantiques sont stockés dans l'emplacement S3`s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks`.

 **Résultats du job** : tout ce que votre script d'algorithme enregistre dans le répertoire indiqué par la variable d'environnement `"AMZN_BRAKET_JOB_RESULTS_DIR"` est copié vers l'emplacement S3 spécifié dans`output_data_config`. Si la valeur n'est pas spécifiée, elle est définie par défaut sur`s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data`. Nous fournissons la fonction d'assistance du SDK **`save_job_result`**, que vous pouvez utiliser pour stocker facilement les résultats sous forme de dictionnaire lorsque vous les appelez à partir de votre script d'algorithme.

 **Points de contrôle** : Si vous souhaitez utiliser des points de contrôle, vous pouvez les enregistrer dans le répertoire indiqué par la variable d'environnement. `"AMZN_BRAKET_CHECKPOINT_DIR"` Vous pouvez également utiliser la fonction d'assistance du SDK à la place. `save_job_checkpoint`

 **Métriques d'algorithme** : vous pouvez définir des métriques d'algorithme dans le cadre de votre script d'algorithme qui sont envoyées à Amazon CloudWatch et affichées en temps réel dans la console Amazon Braket pendant l'exécution de votre tâche hybride. Pour un exemple d'utilisation des métriques d'algorithmes, consultez [Utiliser les tâches hybrides Amazon Braket pour exécuter un algorithme QAOA](braket-jobs-run-qaoa-algorithm.md).

Pour plus d'informations sur la sauvegarde des résultats de vos tâches, consultez la section [Enregistrer vos résultats](https://docs.aws.amazon.com/braket/latest/developerguide/braket-jobs-first.html#braket-jobs-save-results) dans la documentation relative aux tâches hybrides. 

## Variables d'environnement
<a name="braket-jobs-environmental-variables"></a>

Amazon Braket fournit plusieurs variables d'environnement pour simplifier les interactions avec les entrées et sorties des conteneurs. Le code suivant répertorie les variables environnementales utilisées par Braket.
+ `AMZN_BRAKET_INPUT_DIR`— Le répertoire des données d'entréeopt/braket/input/data.
+ `AMZN_BRAKET_JOB_RESULTS_DIR`— Le répertoire de sortie dans lequel opt/braket/model écrire les résultats de la tâche.
+ `AMZN_BRAKET_JOB_NAME`— Le nom de la tâche.
+ `AMZN_BRAKET_CHECKPOINT_DIR`— Le répertoire des points de contrôle.
+ `AMZN_BRAKET_HP_FILE`— Le fichier contenant les hyperparamètres.
+ `AMZN_BRAKET_DEVICE_ARN`— L'ARN (nom de AWS ressource) de l'appareil.
+ `AMZN_BRAKET_OUT_S3_BUCKET`— Le compartiment Amazon S3 de sortie, tel que spécifié dans la `CreateJob` demande`OutputDataConfig`.
+ `AMZN_BRAKET_SCRIPT_ENTRY_POINT`— Le point d'entrée tel que spécifié dans la `CreateJob` demande`ScriptModeConfig`.
+ `AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE`— Le type de compression tel que spécifié dans la `CreateJob` demande`ScriptModeConfig`.
+ `AMZN_BRAKET_SCRIPT_S3_URI`— L'emplacement du script de l'utilisateur sur Amazon S3, tel que spécifié dans la `CreateJob` demande`ScriptModeConfig`.
+ `AMZN_BRAKET_TASK_RESULTS_S3_URI`— L'emplacement Amazon S3 où le SDK stockerait les résultats de la tâche quantique par défaut pour la tâche.
+ `AMZN_BRAKET_JOB_RESULTS_S3_PATH`— L'emplacement Amazon S3 où les résultats de la tâche seraient stockés, comme indiqué dans les `CreateJob` demandes`OutputDataConfig`.
+ `AMZN_BRAKET_JOB_TOKEN`— Chaîne à transmettre au `jobToken` paramètre pour `CreateQuantumTask` les tâches quantiques créées dans le conteneur de tâches.

## Fonctions d'assistance
<a name="braket-jobs-helper-functions"></a>

Amazon Braket propose plusieurs fonctions d'assistance pour simplifier les interactions avec les entrées et sorties des conteneurs. Ces fonctions d'assistance seraient appelées depuis le script d'algorithme utilisé pour exécuter votre Hybrid Job. L'exemple suivant montre comment les utiliser.

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