Interactúe directamente con los trabajos híbridos mediante el API - Amazon Braket

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Interactúe directamente con los trabajos híbridos mediante el API

Puede acceder a Amazon Braket Hybrid Jobs e interactuar con ellos directamente mediante el. API Sin embargo, los métodos predeterminados y prácticos no están disponibles cuando se utiliza directamente. API

nota

Le recomendamos encarecidamente que interactúe con Amazon Braket Hybrid Jobs mediante el SDK Amazon Braket Python. Ofrece ajustes y protecciones convenientes que ayudan a que sus trabajos híbridos se ejecuten correctamente.

En este tema se describen los aspectos básicos del uso deAPI. Si decide utilizar la API, tenga en cuenta que este enfoque puede ser más complejo y prepárese para varias iteraciones a fin de ejecutar su trabajo híbrido.

Para usar la API, tu cuenta debe tener una función en la política AmazonBraketFullAccess administrada.

nota

Para obtener más información sobre cómo obtener un rol con la política AmazonBraketFullAccess gestionada, consulta la página Habilitar Amazon Braket.

Además, necesita un rol de ejecución. Esta función se transferirá al servicio. Puede crear el rol mediante la consola Amazon Braket. Utilice la pestaña Funciones de ejecución de la página de permisos y configuración para crear una función predeterminada para los trabajos híbridos.

CreateJobAPIRequiere que especifique todos los parámetros necesarios para el trabajo híbrido. Para usar Python, comprima los archivos de script del algoritmo en un paquete tar, como un archivo input.tar.gz, y ejecute el siguiente script. Actualice las partes del código entre corchetes angulares (<>) para que coincidan con la información de su cuenta y el punto de entrada que especifican la ruta, el archivo y el método en los que comienza su trabajo híbrido.

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

Una vez que haya creado su trabajo híbrido, podrá acceder a los detalles del trabajo híbrido a través de la consola GetJob API o la consola. Para obtener los detalles del trabajo híbrido de la sesión de Python en la que ejecutó el createJob código, como en el ejemplo anterior, utilice el siguiente comando de Python.

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

Para cancelar un trabajo híbrido, llama a CancelJob API with the Amazon Resource Name of the job ('JobArn').

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

Puede especificar puntos de control como parte del createJob API uso del checkpointConfig parámetro.

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

El LocalPath de checkpointConfig no puede comenzar con ninguna de las siguientes rutas reservadas:/opt/ml, /opt/braket/tmp, o. /usr/local/nvidia