Entrées, sorties, variables environnementales et fonctions d'assistance - Amazon Braket

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.

Entrées, sorties, variables environnementales et fonctions d'assistance

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 job hybride commence, Amazon Braket copie les entrées fournies dans le cadre de la création de tâches hybrides dans le conteneur qui exécute le script de l'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.

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

Inputs

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_dataargument. L'utilisateur définit l'input_dataargument au sein de la AwsQuantumJob.create fonction dans leSDK. 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 manière dont les données d'entrée sont utilisées dans un algorithme hybride, consultez les blocs-notes Jupyter QAOAavec Amazon Braket Hybrid Jobs PennyLane et Quantum Machine Learning dans Amazon Braket 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 transmettezhyperparameters, ils sont disponibles sous la variable "AMZN_BRAKET_HP_FILE" d'environnement.

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 estNone, 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.

Outputs

Tâches quantiques : les résultats des tâches quantiques sont stockés dans l'emplacement S3s3://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é dansoutput_data_config. Si vous ne spécifiez pas cette valeur, la valeur par défaut est. s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data Nous fournissons la fonction d'SDKassistance save_job_result, que vous pouvez utiliser pour stocker facilement les résultats sous forme de dictionnaire lorsque vous l'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'SDKassistance à la save_job_checkpoint place.

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 Amazon Supprimez la console pendant que votre tâche hybride est en cours d'exécution. Pour un exemple d'utilisation des métriques d'algorithme, consultez Utiliser les tâches hybrides Amazon Braket pour exécuter un QAOA algorithme.

Variables d'environnement

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.

# 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"]

Fonctions d'assistance

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.

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() # save hybrid job results save_job_checkpoint() # save a checkpoint load_job_checkpoint() # load a previously saved checkpoint