Eingaben, Ausgaben, Umgebungsvariablen und Hilfsfunktionen - 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.

Eingaben, Ausgaben, Umgebungsvariablen und Hilfsfunktionen

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

In diesem Abschnitt werden die wichtigsten Konzepte der von Amazon Braket Python bereitgestellten AwsQuantumJob.create Funktion SDK und ihre Zuordnung zur Container-Dateistruktur erklärt.

Eingaben

Eingabedaten: Eingabedaten können dem Hybrid-Algorithmus zur Verfügung gestellt 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 in derSDK. 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 hybriden Algorithmus verwendet werden, finden Sie in den QAOAJupyter-Notebooks with Amazon Braket Hybrid Jobs PennyLane and and and Quantum machine learning in Amazon Braket Hybrid Jobs.

Anmerkung

Wenn die Eingabedaten groß sind (> 1 GB), dauert es lange, bis der Hybrid-Job eingereicht wird. Dies liegt an der Tatsache, 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 übermittelt wird.

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

Checkpoints: Um einen Checkpoint anzugebenjob-arn, dessen Checkpoint Sie in einem neuen Hybrid-Job verwenden möchten, verwenden Sie den Befehl. copy_checkpoints_from_job Mit diesem Befehl werden die Checkpoint-Daten in den checkpoint_configs3Uri des neuen Hybrid-Jobs kopiert, sodass sie AMZN_BRAKET_CHECKPOINT_DIR während der Ausführung des Jobs unter dem in der Umgebungsvariablen angegebenen Pfad verfügbar sind. Die Standardeinstellung istNone, was bedeutet, dass Checkpoint-Daten aus einem anderen Hybrid-Job im neuen Hybrid-Job nicht verwendet werden.

Outputs

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

Arbeitsergebnisse: Alles, was Ihr Algorithmus-Skript in dem von der Umgebungsvariablen angegebenen Verzeichnis speichert, "AMZN_BRAKET_JOB_RESULTS_DIR" wird an den unter angegebenen S3-Speicherort kopiertoutput_data_config. Wenn Sie diesen Wert nicht angeben, wird standardmäßig der Wert verwendet. s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data Wir bieten die SDK Hilfsfunktion save_job_result, mit der Sie Ergebnisse bequem in Form eines Wörterbuchs speichern können, wenn Sie sie von Ihrem Algorithmus-Skript aus aufrufen.

Checkpoints: Wenn Sie Checkpoints verwenden möchten, können Sie diese in dem durch die Umgebungsvariable angegebenen Verzeichnis speichern. "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 gesendet CloudWatch und in Echtzeit in der Amazon Braket-Konsole, während Ihr Hybrid-Job ausgeführt wird. Ein Beispiel für die Verwendung von Algorithmus-Metriken finden Sie unter Verwenden von Amazon Braket-Hybrid-Jobs zur Ausführung eines QAOA Algorithmus.

Umgebungsvariablen

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

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

Hilfsfunktionen

Amazon Braket bietet mehrere Hilfsfunktionen, um die Interaktionen mit Container-Eingaben 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.

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