Interagissez directement avec les emplois hybrides à l'aide du API - Amazon Braket

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.

Interagissez directement avec les emplois hybrides à l'aide du API

Vous pouvez accéder et interagir avec Amazon Braket Hybrid Jobs directement à l'aide du. API Cependant, les valeurs par défaut et les méthodes pratiques ne sont pas disponibles lors de l'utilisation API directe du.

Note

Nous vous recommandons vivement d'interagir avec Amazon Braket Hybrid Jobs à l'aide du SDK Amazon Braket Python. Il propose des paramètres par défaut et des protections pratiques qui contribuent au bon fonctionnement de vos tâches hybrides.

Cette rubrique décrit les principes de base de l'utilisation duAPI. Si vous choisissez d'utiliser l'API, n'oubliez pas que cette approche peut être plus complexe et qu'elle doit être prête à plusieurs itérations pour exécuter votre tâche hybride.

Pour utiliser l'API, votre compte doit avoir un rôle dans la politique AmazonBraketFullAccess gérée.

Note

Pour plus d'informations sur la manière d'obtenir un rôle avec la politique AmazonBraketFullAccess gérée, consultez la page Activer Amazon Braket.

De plus, vous avez besoin d'un rôle d'exécution. Ce rôle sera transmis au service. Vous pouvez créer le rôle à l'aide de la console Amazon Braket. Utilisez l'onglet Rôles d'exécution de la page Autorisations et paramètres pour créer un rôle par défaut pour les tâches hybrides.

Vous devez spécifier tous les paramètres requis pour la tâche hybride. CreateJob API Pour utiliser Python, compressez les fichiers de script de votre algorithme dans un bundle tar, tel qu'un fichier input.tar.gz, et exécutez le script suivant. Mettez à jour les parties du code entre crochets (<>) pour qu'elles correspondent aux informations de votre compte et au point d'entrée qui spécifient le chemin, le fichier et la méthode par lesquels votre tâche hybride commence.

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/Aspen-M-3" ] } }, hyperParameters={ "hyperparameter key you wish to pass": "<hyperparameter value you wish to pass>", }, stoppingCondition={ "maxRuntimeInSeconds": 1200, "maximumTaskLimit": 10 }, )

Une fois que vous avez créé votre tâche hybride, vous pouvez accéder aux détails de la tâche hybride par le biais de la console GetJob API ou de la console. Pour obtenir les détails de la tâche hybride à partir de la session Python dans laquelle vous avez exécuté le createJob code comme dans l'exemple précédent, utilisez la commande Python suivante.

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

Pour annuler une tâche hybride, appelez le CancelJob API with the Amazon Resource Name of the job ('JobArn').

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

Vous pouvez spécifier des points de contrôle dans le cadre de l'createJobAPIutilisation du checkpointConfig paramètre.

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

Le LocalPath de checkpointConfig ne peut démarrer par aucun des chemins réservés suivants :/opt/ml, /opt/braket/tmp, ou/usr/local/nvidia.