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é préféré (IDE) ou un bloc-notes Braket, voirExécution de votre code local en tant que tâche hybride.
Dans cette section :
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.
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 leur rôleARNs, cliquez sur le bouton Afficher les rôles.
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.
Si le rôle a été créé avec succès, vous recevez un message le confirmant.
Si vous n'êtes pas autorisé à effectuer cette demande, l'accès vous sera refusé. Dans ce cas, contactez votre AWS administrateur interne.
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.
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 d'Amazon Braket Python SDK
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 d'environnementAMZN_BRAKET_DEVICE_ARN
.
Note
Vous ne pouvez utiliser que les appareils disponibles dans le cadre Région AWS de votre tâche hybride. L'Amazon Braket SDK auto le sélectionne automatiquement. Région AWS Par exemple, une tâche hybride dans us-east-1 peut utiliser IonQ, SV1, DM1, et TN1 appareils, mais pas Rigetti appareils.
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
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
.
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.
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 Braket PythonSDK.
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
.