Erstelle deinen ersten Hybrid-Job - Amazon Braket

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstelle deinen ersten Hybrid-Job

In diesem Abschnitt erfahren Sie, wie Sie mit einem Python-Skript einen Hybrid-Job erstellen. Informationen zum Erstellen eines Hybrid-Jobs aus lokalem Python-Code, z. B. Ihrer bevorzugten integrierten Entwicklungsumgebung (IDE) oder einem Braket-Notizbuch, finden Sie alternativ unterFühren Sie Ihren lokalen Code als Hybrid-Job aus.

Legen Sie Berechtigungen fest

Bevor Sie Ihren ersten Hybridauftrag ausführen, müssen Sie sicherstellen, dass Sie über ausreichende Berechtigungen verfügen, um mit dieser Aufgabe fortzufahren. Um festzustellen, ob Sie über die richtigen Berechtigungen verfügen, wählen Sie im Menü auf der linken Seite der Braket-Konsole die Option Berechtigungen aus. Auf der Seite „Berechtigungsverwaltung für Amazon Braket“ können Sie überprüfen, ob eine Ihrer vorhandenen Rollen über ausreichende Berechtigungen verfügt, um Ihren Hybrid-Job auszuführen, oder führt Sie durch die Erstellung einer Standardrolle, die zur Ausführung Ihres Hybrid-Jobs verwendet werden kann, falls Sie noch nicht über eine solche Rolle verfügen.

Seite mit Berechtigungen und Einstellungen für den Amazon Braket-Service, auf der eine serviceverknüpfte Rolle und die Option zur Überprüfung vorhandener Rollen für die Ausführungsrolle Hybrid Jobs angezeigt werden.

Um zu überprüfen, ob Sie über Rollen mit ausreichenden Berechtigungen für die Ausführung eines Hybrid-Jobs verfügen, klicken Sie auf die Schaltfläche Bestehende Rolle überprüfen. Wenn Sie dies tun, erhalten Sie eine Meldung, dass die Rollen gefunden wurden. Um die Namen der Rollen und ihrer Rollen zu sehenARNs, klicken Sie auf die Schaltfläche Rollen anzeigen.

Der Bildschirm mit den Berechtigungen und Einstellungen von Amazon Braket zeigt eine gefundene serviceverknüpfte Rolle und bestehende Rollen mit ausreichenden Berechtigungen zur Ausführung hybrider Jobs an.

Wenn Sie nicht über eine Rolle mit ausreichenden Berechtigungen verfügen, um einen Hybrid-Job auszuführen, erhalten Sie eine Meldung, dass keine solche Rolle gefunden wurde. Wählen Sie die Schaltfläche Standardrolle erstellen, um eine Rolle mit ausreichenden Berechtigungen zu erhalten.

Die Seite mit den Berechtigungen und Einstellungen von Amazon Braket zeigt, dass eine serviceverknüpfte Rolle gefunden wurde und keine Rollen zur Ausführung hybrider Jobs gefunden wurden.

Wenn die Rolle erfolgreich erstellt wurde, erhalten Sie eine Bestätigungsnachricht.

Die Seite mit den Berechtigungen und Einstellungen von Amazon Braket zeigt, dass eine serviceverknüpfte Rolle gefunden wurde und eine Hybrid-Job-Ausführungsrolle erfolgreich erstellt wurde.

Wenn Sie nicht berechtigt sind, diese Anfrage zu stellen, wird Ihnen der Zugriff verweigert. Wenden Sie sich in diesem Fall an Ihren internen AWS Administrator.

AccessDenied Fehlermeldung, die besagt, dass der Benutzer nicht berechtigt ist, iam: ListAttachedRolePolicies auf einem AmazonBraketJobsExecutionRole mit einer ausdrücklichen Ablehnung.

Erstellen und ausführen

Sobald Sie über eine Rolle mit den Berechtigungen zur Ausführung eines Hybrid-Jobs verfügen, können Sie fortfahren. Das Herzstück Ihres ersten Braket-Hybrid-Jobs ist das Algorithmus-Skript. Es definiert den Algorithmus, den Sie ausführen möchten, und enthält die klassischen Logik- und Quantenaufgaben, die Teil Ihres Algorithmus sind. Zusätzlich zu Ihrem Algorithmus-Skript können Sie weitere Abhängigkeitsdateien bereitstellen. Das Algorithmusskript zusammen mit seinen Abhängigkeiten wird als Quellmodul bezeichnet. Der Einstiegspunkt definiert die erste Datei oder Funktion, die in Ihrem Quellmodul ausgeführt wird, wenn der Hybrid-Job gestartet wird.

Diagramm, das den Arbeitsablauf bei der Erstellung eines Quantenjobs mithilfe einer Konsole oder eines Notebooks, der Ausführung des Algorithmus-Skripts auf einem Quantengerät und der Analyse der Ergebnisse zeigt.

Betrachten Sie zunächst das folgende grundlegende Beispiel für ein Algorithmus-Skript, das fünf Glockenzustände erzeugt und die entsprechenden Messergebnisse ausgibt.

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

Speichern Sie diese Datei mit dem Namen algorithm_script.py in Ihrem aktuellen Arbeitsverzeichnis auf Ihrem Braket-Notebook oder in der lokalen Umgebung. Die Datei algorithm_script.py hat start_here() den geplanten Einstiegspunkt.

Erstellen Sie als Nächstes eine Python-Datei oder ein Python-Notebook im selben Verzeichnis wie die Datei algorithm_script.py. Dieses Skript startet den Hybrid-Job und kümmert sich um jede asynchrone Verarbeitung, z. B. das Drucken des Status oder der wichtigsten Ergebnisse, an denen wir interessiert sind. Dieses Skript muss mindestens Ihr Hybrid-Job-Skript und Ihr primäres Gerät angeben.

Anmerkung

Weitere Informationen darüber, wie Sie ein Braket-Notizbuch erstellen oder eine Datei, z. B. die Datei algorithm_script.py, in dasselbe Verzeichnis wie die Notizbücher hochladen, finden Sie unter Run your first circuit using the Amazon Braket Python SDK

In diesem grundlegenden ersten Fall zielen Sie auf einen Simulator ab. Unabhängig davon, auf welchen Typ von Quantengerät Sie abzielen, ob es sich um einen Simulator oder eine tatsächliche Quantenverarbeitungseinheit (QPU) handelt, wird das Gerät, mit dem Sie device im folgenden Skript angeben, zur Planung des Hybrid-Jobs verwendet und steht den Algorithmus-Skripten als Umgebungsvariable AMZN_BRAKET_DEVICE_ARN zur Verfügung.

Anmerkung

Sie können nur Geräte verwenden, die AWS-Region in Ihrem Hybrid-Job verfügbar sind. Amazon Braket wählt dies SDK AWS-Region auto aus. Ein Hybrid-Job in us-east-1 kann beispielsweise verwenden IonQ, SV1, DM1, und TN1 Geräte, aber nicht Rigetti Geräte.

Wenn Sie sich für einen Quantencomputer anstelle eines Simulators entscheiden, plant Braket Ihre Hybrid-Jobs so, dass alle ihre Quantenaufgaben mit bevorzugtem Zugriff ausgeführt werden.

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 )

Der Parameter wait_until_complete=True legt einen ausführlichen Modus fest, sodass Ihr Job die Ausgabe des aktuellen Jobs ausgibt, während dieser ausgeführt wird. Sie sollten eine Ausgabe sehen, die dem folgenden Beispiel ähnelt.

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
Anmerkung

Sie können Ihr maßgeschneidertes Modul auch mit der Methode AwsQuantumJob.create verwenden, indem Sie dessen Speicherort angeben (entweder den Pfad zu einem lokalen Verzeichnis oder einer lokalen Datei oder ein S3 URI einer Datei tar.gz). Ein funktionierendes Beispiel finden Sie in der Datei Parallelize_Training_for_ QML .ipynb im Ordner für hybride Jobs im Github-Repository für Amazon Braket-Beispiele.

Überwachen Sie die Ergebnisse

Alternativ können Sie auf die Protokollausgabe von Amazon zugreifen CloudWatch. Gehen Sie dazu im linken Menü der Jobdetailseite zur Registerkarte Protokollgruppen, wählen Sie die Protokollgruppe und dann den Protokollstream ausaws/braket/jobs, der den Jobnamen enthält. Im obigen Beispiel ist dies braket-job-default-1631915042705/algo-1-1631915190.

CloudWatch Protokollgruppe mit einer Liste von Protokollereignissen mit Dateipfaden und Zeitstempeln für Amazon SDK Braket-Python-Tests.

Sie können den Status des Hybrid-Jobs auch in der Konsole einsehen, indem Sie die Seite Hybrid-Jobs und dann Einstellungen auswählen.

Details zum Amazon Braket-Hybrid-Job mit Zusammenfassung, Ereigniszeiten, Quellcode- und Instance-Konfiguration sowie Stoppbedingungen.

Ihr Hybrid-Job erzeugt einige Artefakte in Amazon S3, während er ausgeführt wird. Der Standardname für den S3-Bucket lautet amazon-braket-<region>-<accountid> und der Inhalt befindet sich im jobs/<jobname>/<timestamp> Verzeichnis. Sie können die S3-Speicherorte konfigurieren, an denen diese Artefakte gespeichert werden, indem Sie einen anderen angebencode_location, wenn der Hybrid-Job mit dem Braket-Python SDK erstellt wird.

Anmerkung

Dieser S3-Bucket muss sich im selben Verzeichnis befinden AWS-Region wie Ihr Job-Skript.

Das jobs/<jobname>/<timestamp> Verzeichnis enthält einen Unterordner mit der Ausgabe des Einstiegspunktskripts in einer model.tar.gz Datei. Es gibt auch ein Verzeichnis namensscript, das Ihre Algorithmus-Skriptartefakte in einer source.tar.gz Datei enthält. Die Ergebnisse Ihrer eigentlichen Quantenaufgaben befinden sich in dem Verzeichnis mit dem Namenjobs/<jobname>/tasks.