View a markdown version of this page

Wichtige Konzepte für hybride Jobs - 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.

Wichtige Konzepte für hybride Jobs

In diesem Abschnitt werden die wichtigsten Konzepte der AwsQuantumJob.create Funktion, die vom Amazon Braket Python SDK bereitgestellt wird, und die Zuordnung zur Container-Dateistruktur erläutert.

Zusätzlich zu der Datei oder den Dateien, aus denen Ihr vollständiges Algorithmus-Skript besteht, kann Ihr Hybrid-Job zusätzliche Ein- und Ausgaben enthalten. Wenn Ihr Hybrid-Job gestartet wird, kopiert Amazon Braket Eingaben, die im Rahmen der Hybrid-Job-Erstellung bereitgestellt wurden, in den Container, der das Algorithmus-Skript ausführt. Wenn der Hybrid-Job abgeschlossen ist, werden alle während des Algorithmus definierten Ausgaben an den angegebenen Amazon S3-Speicherort kopiert.

Anmerkung

Algorithmus-Metriken werden in Echtzeit gemeldet und folgen nicht diesem Ausgabeverfahren.

Amazon Braket bietet auch mehrere Umgebungsvariablen und Hilfsfunktionen, um die Interaktionen mit Containereingaben und -ausgaben zu vereinfachen. Weitere Informationen finden Sie im Paket braket.jobs im Amazon Braket SDK.

Eingaben

Eingabedaten: Eingabedaten können für den Hybrid-Algorithmus bereitgestellt werden, indem die Eingabedatendatei, die als Wörterbuch eingerichtet ist, mit dem input_data Argument angegeben wird. Der Benutzer definiert das input_data Argument innerhalb der AwsQuantumJob.create Funktion im SDK. Dadurch werden die Eingabedaten in das Container-Dateisystem an dem in der Umgebungsvariablen angegebenen Speicherort kopiert"AMZN_BRAKET_INPUT_DIR". Einige Beispiele dafür, wie Eingabedaten in einem Hybrid-Algorithmus verwendet werden, finden Sie im QAOA mit Amazon Braket Hybrid Jobs PennyLane und Quantum Machine Learning in Amazon Braket Hybrid Jobs Jupyter-Notebooks.

Anmerkung

Wenn die Eingabedaten groß sind (> 1 GB), wird es eine lange Wartezeit geben, bis der Hybrid-Job eingereicht wird. Dies liegt daran, dass die lokalen Eingabedaten zuerst in einen S3-Bucket hochgeladen werden, dann der S3-Pfad zur Hybrid-Job-Anfrage hinzugefügt wird und schließlich die Hybrid-Job-Anfrage an den Braket-Service gesendet wird.

Hyperparameter: Wenn Sie sie eingebenhyperparameters, sind sie unter der Umgebungsvariablen verfügbar. "AMZN_BRAKET_HP_FILE"

Anmerkung

Weitere Informationen zum Erstellen von Hyperparametern und Eingabedaten und zum anschließenden Übergeben dieser Informationen an das Hybrid-Job-Skript finden Sie im Abschnitt Hyperparameter verwenden und auf dieser Github-Seite. 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

Checkpoints: Um einen zu spezifizierenjob-arn, dessen Checkpoint Sie in einem neuen Hybrid-Job verwenden möchten, verwenden Sie den Befehl. copy_checkpoints_from_job Dieser Befehl kopiert die Checkpoint-Daten in den checkpoint_configs3Uri des neuen Hybrid-Jobs und stellt sie AMZN_BRAKET_CHECKPOINT_DIR während der Ausführung des Jobs unter dem in der Umgebungsvariablen angegebenen Pfad zur Verfügung. Die Standardeinstellung istNone, was bedeutet, dass Checkpoint-Daten aus einem anderen Hybrid-Job nicht in dem neuen Hybrid-Job verwendet werden.

Outputs

Quantenaufgaben: Die Ergebnisse der Quantenaufgaben werden am S3-Speicherort s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks gespeichert.

Auftragsergebnisse: Alles, was Ihr Algorithmusskript in dem in der Umgebungsvariablen angegebenen Verzeichnis speichert, "AMZN_BRAKET_JOB_RESULTS_DIR" wird an den in angegebenen S3-Speicherort kopiertoutput_data_config. Wenn der Wert nicht angegeben ist, ist er standardmäßig auf s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data eingestellt. Wir stellen die SDK-Hilfsfunktion zur Verfügung save_job_result, mit der Sie Ergebnisse bequem in Form eines Wörterbuchs speichern können, wenn sie von Ihrem Algorithmus-Skript aus aufgerufen werden.

Checkpoints: Wenn Sie Checkpoints verwenden möchten, können Sie sie in dem Verzeichnis speichern, das in der Umgebungsvariablen angegeben ist. "AMZN_BRAKET_CHECKPOINT_DIR" Sie können stattdessen auch die SDK-Hilfsfunktion save_job_checkpoint verwenden.

Algorithmus-Metriken: Sie können Algorithmus-Metriken als Teil Ihres Algorithmus-Skripts definieren, die an Amazon ausgegeben CloudWatch und in Echtzeit in der Amazon Braket-Konsole angezeigt werden, während Ihr Hybrid-Job ausgeführt wird. Ein Beispiel für die Verwendung von Algorithmusmetriken finden Sie unter Verwenden Sie Amazon Braket Hybrid Jobs, um einen QAOA-Algorithmus auszuführen.

Weitere Informationen zum Speichern Ihrer Jobausgaben finden Sie in der Hybrid-Jobs-Dokumentation unter Speichern Ihrer Ergebnisse.

Umgebungsvariablen

Amazon Braket bietet mehrere Umgebungsvariablen, um die Interaktionen mit Containereingaben und -ausgaben zu vereinfachen. Der folgende Code listet die Umgebungsvariablen auf, die Braket verwendet.

  • AMZN_BRAKET_INPUT_DIR— Das Eingabedatenverzeichnis opt/braket/. input/data

  • AMZN_BRAKET_JOB_RESULTS_DIR— Das Ausgabeverzeichnis opt/braket /model, in das die Job-Ergebnisse geschrieben werden sollen.

  • AMZN_BRAKET_JOB_NAME— Der Name des Jobs.

  • AMZN_BRAKET_CHECKPOINT_DIR— Das Checkpoint-Verzeichnis.

  • AMZN_BRAKET_HP_FILE— Die Datei, die die Hyperparameter enthält.

  • AMZN_BRAKET_DEVICE_ARN— Der Geräte-ARN (AWS Ressourcenname).

  • AMZN_BRAKET_OUT_S3_BUCKET— Der Amazon S3-Ausgabe-Bucket, wie in der CreateJob Anfrage angegebenOutputDataConfig.

  • AMZN_BRAKET_SCRIPT_ENTRY_POINT— Der in der CreateJob Anfrage angegebene EinstiegspunktScriptModeConfig.

  • AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE— Der in der CreateJob Anfrage angegebene KomprimierungstypScriptModeConfig.

  • AMZN_BRAKET_SCRIPT_S3_URI— Der Amazon S3-Speicherort des Benutzerskripts, wie in der CreateJob Anfrage angegebenScriptModeConfig.

  • AMZN_BRAKET_TASK_RESULTS_S3_URI— Der Amazon S3-Speicherort, an dem das SDK die Ergebnisse der Quantenaufgabe standardmäßig für den Job speichern würde.

  • AMZN_BRAKET_JOB_RESULTS_S3_PATH— Der Amazon S3-Standort, an dem die Auftragsergebnisse gespeichert würden, wie in den CreateJob Anforderungen angegebenOutputDataConfig.

  • AMZN_BRAKET_JOB_TOKEN— Die Zeichenfolge, die an CreateQuantumTask den jobToken Parameter für Quantenaufgaben übergeben werden soll, die im Jobcontainer erstellt wurden.

Hilfsfunktionen

Amazon Braket bietet mehrere Hilfsfunktionen, um die Interaktionen mit Containereingaben und -ausgaben zu vereinfachen. Diese Hilfsfunktionen würden innerhalb des Algorithmus-Skripts aufgerufen, das zur Ausführung Ihres Hybrid-Jobs verwendet wird. Das folgende Beispiel zeigt, wie sie verwendet werden.

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