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.
Le recomendamos encarecidamente que interactúe con Amazon Braket Hybrid Jobs mediante el SDK de Python de Amazon Braket
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.
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.
CreateJob
APIRequiere 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 consolaGetJob
API 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 alCancelJob
API con elAmazon Resource Name del trabajo ('JobArn').
cancelJob = client.cancel_job(jobArn=job["jobArn"])
Puede especificar puntos de control como parte delcreateJob
API uso delcheckpointConfig
parámetro.
checkpointConfig = { "localPath" : "/opt/omega/checkpoints", "s3Uri": f"s3://{bucket}/{s3_prefix}/checkpoints" },
La ruta local decheckpointConfig
no puede comenzar con ninguna de las siguientes rutas reservadas:/opt/ml
/opt/braket
,/tmp
, o/usr/local/nvidia
.