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á.
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.
Este tópico aborda os princípios básicos do uso do API. 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.
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/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 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 de checkpointConfig
não pode começar com nenhum dos seguintes caminhos reservados:/opt/ml
,, /opt/braket
/tmp
, ou. /usr/local/nvidia