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
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
.