View a markdown version of this page

Verwenden der API mit Hybrid-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.

Verwenden der API mit Hybrid-Jobs

Über die können Sie direkt auf Amazon Braket Hybrid Jobs zugreifen und mit ihnen interagieren. API Standardwerte und praktische Methoden sind jedoch nicht verfügbar, wenn Sie die API direkt verwenden.

Anmerkung

Wir empfehlen dringend, dass Sie mithilfe des Amazon Braket Python SDK mit Amazon Braket Hybrid Jobs interagieren. Es bietet praktische Standardeinstellungen und Schutzfunktionen, die dazu beitragen, dass Ihre Hybrid-Jobs erfolgreich ausgeführt werden.

Dieses Thema behandelt die Grundlagen der Verwendung von. API Wenn Sie sich für die Verwendung der API entscheiden, denken Sie daran, dass dieser Ansatz komplexer sein kann, und bereiten Sie sich auf mehrere Iterationen vor, damit Ihr Hybrid-Job ausgeführt werden kann.

Um die API verwenden zu können, sollte Ihrem Konto eine Rolle in der AmazonBraketFullAccess verwalteten Richtlinie zugewiesen werden.

Anmerkung

Weitere Informationen dazu, wie Sie eine Rolle für die AmazonBraketFullAccess verwaltete Richtlinie erhalten, finden Sie auf der Seite Amazon Braket aktivieren.

Darüber hinaus benötigen Sie eine Ausführungsrolle. Diese Rolle wird an den Dienst übergeben. Sie können die Rolle mithilfe der Amazon Braket-Konsole erstellen. Verwenden Sie die Registerkarte „Ausführungsrollen“ auf der Seite „Berechtigungen und Einstellungen“, um eine Standardrolle für Hybridjobs zu erstellen.

Das CreateJob API erfordert, dass Sie alle erforderlichen Parameter für den Hybridjob angeben. Um Python zu verwenden, komprimieren Sie Ihre Algorithmus-Skriptdateien in ein TAR-Bundle, z. B. eine Datei input.tar.gz, und führen Sie das folgende Skript aus. Aktualisieren Sie die Teile des Codes in spitzen Klammern (<>) so, dass sie mit Ihren Kontoinformationen und Ihrem Einstiegspunkt übereinstimmen, die den Pfad, die Datei und die Methode angeben, mit der Ihr Hybrid-Job beginnt.

from braket.aws import AwsDevice, AwsSession import boto3 from datetime import datetime s3_client = boto3.client("s3") client = boto3.client("braket") project_name = "job-test" job_name = project_name + "-" + datetime.strftime(datetime.now(), "%Y%m%d%H%M%S") bucket = "amazon-braket-<your_bucket>" s3_prefix = job_name job_script = "input.tar.gz" job_object = f"{s3_prefix}/script/{job_script}" s3_client.upload_file(job_script, bucket, job_object) input_data = "inputdata.csv" input_object = f"{s3_prefix}/input/{input_data}" s3_client.upload_file(input_data, bucket, input_object) job = client.create_job( jobName=job_name, roleArn="arn:aws:iam::<your_account>:role/service-role/AmazonBraketJobsExecutionRole", # https://docs.aws.amazon.com/braket/latest/developerguide/braket-manage-access.html#about-amazonbraketjobsexecution algorithmSpecification={ "scriptModeConfig": { "entryPoint": "<your_execution_module>:<your_execution_method>", "containerImage": {"uri": "292282985366.dkr.ecr.us-west-1.amazonaws.com/amazon-braket-base-jobs:1.0-cpu-py37-ubuntu18.04"}, # Change to the specific region you are using "s3Uri": f"s3://{bucket}/{job_object}", "compressionType": "GZIP" } }, inputDataConfig=[ { "channelName": "hellothere", "compressionType": "NONE", "dataSource": { "s3DataSource": { "s3Uri": f"s3://{bucket}/{s3_prefix}/input", "s3DataType": "S3_PREFIX" } } } ], outputDataConfig={ "s3Path": f"s3://{bucket}/{s3_prefix}/output" }, instanceConfig={ "instanceType": "ml.m5.large", "instanceCount": 1, "volumeSizeInGb": 1 }, checkpointConfig={ "s3Uri": f"s3://{bucket}/{s3_prefix}/checkpoints", "localPath": "/opt/omega/checkpoints" }, deviceConfig={ "priorityAccess": { "devices": [ "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3" ] } }, hyperParameters={ "hyperparameter key you wish to pass": "<hyperparameter value you wish to pass>", }, stoppingCondition={ "maxRuntimeInSeconds": 1200, "maximumTaskLimit": 10 }, )

Sobald Sie Ihren Hybrid-Job erstellt haben, können Sie über die GetJob API oder die Konsole auf die Details des Hybrid-Jobs zugreifen. Verwenden Sie den folgenden Python-Befehl, um die Hybridjob-Details aus der Python-Sitzung abzurufen, in der Sie den createJob Code wie im vorherigen Beispiel ausgeführt haben.

getJob = client.get_job(jobArn=job["jobArn"])

Um einen Hybrid-Job abzubrechen, rufen Sie den CancelJob API Amazon Resource Name mit dem Job ('JobArn') auf.

cancelJob = client.cancel_job(jobArn=job["jobArn"])

Sie können Checkpoints im Rahmen der createJob API Verwendung des checkpointConfig Parameters angeben.

checkpointConfig = { "localPath" : "/opt/omega/checkpoints", "s3Uri": f"s3://{bucket}/{s3_prefix}/checkpoints" },
Anmerkung

LocalPath von checkpointConfig darf mit keinem der folgenden reservierten Pfade beginnen:/opt/ml, /opt/braket/tmp, oder. /usr/local/nvidia