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.
Puede acceder e interactuar con Amazon Braket Hybrid Jobs directamente mediante el API. Sin embargo, los métodos predeterminados y prácticos no están disponibles cuando se utiliza el API directamente.
nota
Le recomendamos encarecidamente que interactúe con Amazon Braket Hybrid Jobs mediante el SDK Amazon Braket Python
En este tema se describen los aspectos básicos del uso de API. Si opta por 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.
la CreateJob
, API requiere 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/Ankaa-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 del 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, llame al CancelJob
API con el Amazon Resource Name del trabajo ('JobArn').
cancelJob = client.cancel_job(jobArn=job["jobArn"])
Puede especificar puntos de control como parte del createJob
API utilizando el 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
.