Interaja com trabalhos híbridos diretamente usando o API - Amazon Braket

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Interaja com trabalhos híbridos diretamente usando o API

Você pode acessar e interagir com o Amazon Braket Hybrid Jobs diretamente usando o API. No entanto, os padrões e os métodos de conveniência não estão disponíveis ao usar o API diretamente.

nota

É altamente recomendável que você interaja com o Amazon Braket Hybrid Jobs usando o Amazon Braket Python. SDK Ele oferece padrões e proteções convenientes que ajudam seus trabalhos híbridos a serem executados com êxito.

Este tópico aborda os princípios básicos do uso do API. Se você optar por usar oAPI, lembre-se de que essa abordagem pode ser mais complexa e estar preparada para várias iterações para que sua tarefa híbrida seja executada.

Para usar oAPI, sua conta deve ter uma função na política AmazonBraketFullAccess gerenciada.

nota

Para obter mais informações sobre como obter uma função com a política AmazonBraketFullAccess gerenciada, consulte a página Habilitar o Amazon Braket.

Além disso, você precisa de uma função de execução. Essa função será passada para o serviço. Você pode criar a função usando o console do Amazon Braket. Use a guia Funções de execução na página Permissões e configurações para criar uma função padrão para trabalhos híbridos.

A CreateJob API exige que você especifique todos os parâmetros necessários para a tarefa híbrida. Para usar o Python, compacte seus arquivos de script de algoritmo em um pacote tar, como um arquivo input.tar.gz, e execute o script a seguir. Atualize as partes do código entre colchetes angulares (<>) para corresponder às informações da sua conta e ao ponto de entrada que especificam o caminho, o arquivo e o método em que seu trabalho híbrido começa.

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

Depois de criar seu trabalho híbrido, você pode acessar os detalhes do trabalho híbrido por meio do GetJob API ou o console. Para obter os detalhes do trabalho híbrido da sessão do Python na qual você executou o createJob código, como no exemplo anterior, use o comando Python a seguir.

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

Para cancelar um trabalho híbrido, ligue para CancelJob API com o Amazon Resource Name do trabalho ('JobArn').

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

Você pode especificar pontos de verificação como parte do createJob API usando o checkpointConfig parâmetro.

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

O localPath of checkpointConfig não pode começar com nenhum dos seguintes caminhos reservados:/opt/ml,/opt/braket,/tmp, ou/usr/local/nvidia.