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 SDK Amazon Braket Python. Ele oferece padrões e proteções convenientes que ajudam seus trabalhos híbridos a serem executados com êxito.

Este tópico aborda os conceitos básicos do uso doAPI. Se você optar por usar a API, lembre-se de que essa abordagem pode ser mais complexa e estar preparada para várias iterações para que seu trabalho híbrido seja executado.

Para usar a API, sua conta deve ter um papel 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 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.

Isso 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/Ankaa-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 console GetJob API ou do 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, chame 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 uso do checkpointConfig parâmetro.

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

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