Créez votre premier Job hybride - 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.

Créez votre premier Job hybride

Cette section explique comment créer un Job hybride à l'aide d'un script Python. Vous pouvez également créer une tâche hybride à partir du code Python local, tel que votre environnement de développement intégré (IDE) préféré ou un bloc-notes Braket, voirExécutez votre code local en tant que tâche hybride.

Définir les autorisations

Avant d'exécuter votre première tâche hybride, vous devez vous assurer que vous disposez des autorisations suffisantes pour effectuer cette tâche. Pour déterminer si vous disposez des autorisations appropriées, sélectionnez Autorisations dans le menu situé sur le côté gauche de la console Braket. La page de gestion des autorisations pour Amazon Braket vous permet de vérifier si l'un de vos rôles existants dispose d'autorisations suffisantes pour exécuter votre tâche hybride ou vous guide dans la création d'un rôle par défaut pouvant être utilisé pour exécuter votre tâche hybride si vous ne possédez pas déjà un tel rôle.

Page d'autorisations et de paramètres pour le service Amazon Braket présentant un rôle lié au service et une option permettant de vérifier les rôles existants pour le rôle d'exécution des tâches hybrides.

Pour vérifier que vous disposez de rôles dotés d'autorisations suffisantes pour exécuter une tâche hybride, cliquez sur le bouton Vérifier le rôle existant. Si vous le faites, vous recevez un message indiquant que les rôles ont été trouvés. Pour voir les noms des rôles et leurs ARN, cliquez sur le bouton Afficher les rôles.

Écran des autorisations et des paramètres d'Amazon Braket indiquant qu'un rôle lié à un service a été trouvé et des rôles existants dotés d'autorisations suffisantes pour exécuter des tâches hybrides.

Si vous ne disposez pas d'un rôle doté des autorisations suffisantes pour exécuter une tâche hybride, vous recevez un message indiquant qu'aucun rôle de ce type n'a été trouvé. Cliquez sur le bouton Créer un rôle par défaut pour obtenir un rôle avec des autorisations suffisantes.

La page des autorisations et des paramètres Amazon Braket indique qu'un rôle lié à un service a été trouvé et qu'aucun rôle d'exécution de tâches hybrides n'a été trouvé.

Si le rôle a été créé avec succès, vous recevez un message le confirmant.

Page d'autorisations et de paramètres Amazon Braket indiquant qu'un rôle lié à un service a été trouvé et qu'un rôle d'exécution de tâches hybrides a été créé avec succès.

Si vous n'êtes pas autorisé à effectuer cette demande, l'accès vous sera refusé. Dans ce cas, contactez votre AWS administrateur interne.

AccessDenied message d'erreur indiquant que l'utilisateur n'est pas autorisé à exécuter iam : ListAttachedRolePolicies AmazonBraketJobsExecutionRole avec un refus explicite.

Créez et exécutez

Une fois que vous avez un rôle autorisé à exécuter une tâche hybride, vous êtes prêt à continuer. L'élément clé de votre première tâche hybride Braket est le script d'algorithme. Il définit l'algorithme que vous souhaitez exécuter et contient les tâches logiques et quantiques classiques qui font partie de votre algorithme. Outre votre script d'algorithme, vous pouvez fournir d'autres fichiers de dépendance. Le script d'algorithme ainsi que ses dépendances sont appelés module source. Le point d'entrée définit le premier fichier ou la première fonction à exécuter dans votre module source au démarrage de la tâche hybride.

Schéma illustrant le flux de travail consistant à créer une tâche quantique à l'aide d'une console ou d'un bloc-notes, à exécuter le script de l'algorithme sur un appareil quantique et à analyser les résultats.

Tout d'abord, considérez l'exemple de base suivant d'un script d'algorithme qui crée cinq états de cloche et imprime les résultats de mesure correspondants.

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

Enregistrez ce fichier sous le nom algorithm_script.py dans votre répertoire de travail actuel sur votre bloc-notes Braket ou dans votre environnement local. Le fichier algorithm_script.py a start_here() pour point d'entrée prévu.

Créez ensuite un fichier Python ou un bloc-notes Python dans le même répertoire que le fichier algorithm_script.py. Ce script lance la tâche hybride et gère tout traitement asynchrone, tel que l'impression du statut ou des principaux résultats qui nous intéressent. Ce script doit au minimum spécifier votre script de tâche hybride et votre appareil principal.

Note

Pour plus d'informations sur la façon de créer un bloc-notes Braket ou de télécharger un fichier, tel que le fichier algorithm_script.py, dans le même répertoire que les blocs-notes, consultez Exécuter votre premier circuit à l'aide du SDK Amazon Braket Python

Dans ce premier cas de base, vous ciblez un simulateur. Quel que soit le type d'appareil quantique que vous ciblez, qu'il s'agisse d'un simulateur ou d'une véritable unité de traitement quantique (QPU), le périphérique que vous spécifiez device dans le script suivant est utilisé pour planifier la tâche hybride et est disponible pour les scripts d'algorithme en tant que variable AMZN_BRAKET_DEVICE_ARN d'environnement.

Note

Vous ne pouvez utiliser que les appareils disponibles dans le cadre Région AWS de votre tâche hybride. Le SDK Amazon Braket le sélectionne automatiquement. Région AWS Par exemple, une tâche hybride dans us-east-1 peut IonQ utiliserSV1,, TN1 et des appareilsDM1, mais pas des appareils. Rigetti

Si vous choisissez un ordinateur quantique plutôt qu'un simulateur, Braket planifie vos tâches hybrides pour exécuter toutes leurs tâches quantiques avec un accès prioritaire.

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 )

Le paramètre wait_until_complete=True définit un mode détaillé afin que votre tâche imprime le résultat de la tâche réelle pendant son exécution. Vous devriez voir une sortie similaire à l'exemple suivant.

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
Note

Vous pouvez également utiliser votre module personnalisé avec la méthode AwsQuantumJob.create en transmettant son emplacement (soit le chemin d'accès à un répertoire ou à un fichier local, soit l'URI S3 d'un fichier tar.gz). Pour un exemple pratique, consultez le fichier Parallelize_Training_for_qml.ipynb dans le dossier des tâches hybrides du référentiel Github des exemples Amazon Braket.

Surveiller les résultats

Vous pouvez également accéder à la sortie du journal depuis Amazon CloudWatch. Pour ce faire, accédez à l'onglet Groupes de journaux dans le menu de gauche de la page détaillée de la tâche, sélectionnez le groupe de journauxaws/braket/jobs, puis choisissez le flux de journaux contenant le nom de la tâche. Dans l'exemple ci-dessus, il s'agit de braket-job-default-1631915042705/algo-1-1631915190.

CloudWatch groupe de journaux affichant la liste des événements du journal avec les chemins de fichiers et les horodatages pour les tests Python du SDK Amazon Braket.

Vous pouvez également consulter l'état de la tâche hybride dans la console en sélectionnant la page Tâches hybrides, puis en choisissant Paramètres.

Détails de la tâche hybride Amazon Braket indiquant le résumé, les heures des événements, le code source et la configuration de l'instance, ainsi que les conditions d'arrêt.

Votre tâche hybride produit des artefacts dans Amazon S3 pendant son exécution. Le nom du compartiment S3 par défaut est amazon-braket-<region>-<accountid> et le contenu se trouve dans le jobs/<jobname>/<timestamp> répertoire. Vous pouvez configurer les emplacements S3 où ces artefacts sont stockés en spécifiant une autre code_location date de création de la tâche hybride avec le SDK Braket Python.

Note

Ce compartiment S3 doit se trouver au même endroit Région AWS que votre script de tâche.

Le jobs/<jobname>/<timestamp> répertoire contient un sous-dossier contenant le résultat du script du point d'entrée dans un model.tar.gz fichier. Il existe également un répertoire appelé script qui contient les artefacts de votre script d'algorithme dans un source.tar.gz fichier. Les résultats de vos tâches quantiques réelles se trouvent dans le répertoire nomméjobs/<jobname>/tasks.