Interactúe con los trabajos directamente mediante elAPI - 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 con los trabajos directamente mediante elAPI

Puede acceder a Amazon Braket Hybrid Jobs e interactuar con él directamente medianteAPI. Sin embargo, los métodos predeterminados y de conveniencia no están disponibles cuando se usaAPI directamente.

nota

Le recomendamos encarecidamente que interactúe con Amazon Braket Hybrid Jobs mediante el SDK de Python de Amazon Braket. Ofrece ajustes predeterminados y protecciones convenientes que ayudan a que sus trabajos 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.

Para usar la API, tu cuenta debe tener un rol en la políticaAmazonBraketFullAccess gestionada.

nota

Para obtener más información sobre cómo obtener un rol con la políticaAmazonBraketFullAccess gestionada, consulte 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 de Amazon Braket. Utilice la pestaña Funciones de ejecución de la página Permisos y ajustes para crear una función predeterminada para los trabajos.

CreateJobAPIRequiere que especifique todos los parámetros necesarios para el trabajo. 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 el que comienza su trabajo.

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, podrá acceder a los detalles del trabajo a través de la consolaGetJobAPI o de la consola. Para obtener los detalles del trabajo de la sesión de Python en la que ejecutó elcreateJob código, como en el ejemplo anterior, utilice el siguiente comando de Python.

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

Para cancelar un trabajo, llame alCancelJobAPI con elAmazon Resource Name del trabajo ('JobArn').

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

Puede especificar puntos de control como parte delcreateJobAPI uso delcheckpointConfig parámetro.

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

La ruta local decheckpointConfig no puede comenzar con ninguna de las siguientes rutas reservadas:/opt/ml/opt/braket,/tmp, o/usr/local/nvidia.