View a markdown version of this page

Utilisation de l'API avec des tâches hybrides - 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.

Utilisation de l'API avec des tâches hybrides

Vous pouvez accéder à Amazon Braket Hybrid Jobs et interagir avec celui-ci 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 préparez-vous à 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 façon d'obtenir un rôle avec la politique AmazonBraketFullAccess gérée, consultez la page Activer Amazon Braket.

En outre, 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.

CreateJobAPICela nécessite que vous spécifiiez tous les paramètres requis pour la tâche hybride. Pour utiliser Python, compressez les fichiers de script de votre algorithme dans un ensemble tar, tel qu'un fichier input.tar.gz, et exécutez le script suivant. Mettez à jour les parties du code situées entre crochets (<>) pour qu'elles correspondent aux informations de votre compte et au point d'entrée qui spécifie le chemin, le fichier et la méthode de démarrage de votre tâche hybride.

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 }, )

Une fois que vous avez créé votre tâche hybride, vous pouvez accéder aux détails de la tâche hybride via la console GetJob API ou la console. Pour obtenir les détails de la tâche hybride à partir de la session Python au cours de 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 avec le nom Amazon Resource Name de la tâche ('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 pas commencer par l'un des chemins réservés suivants :/opt/ml, /opt/braket/tmp, ou/usr/local/nvidia.