Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Interagisci direttamente con i lavori ibridi utilizzando API
Puoi accedere e interagire con Amazon Braket Hybrid Jobs direttamente utilizzando API. Tuttavia, le impostazioni predefinite e i metodi pratici non sono disponibili quando si utilizza API direttamente.
Nota
Ti consigliamo vivamente di interagire con Amazon Braket Hybrid Jobs utilizzando l'SDK Amazon Braket Python
In questo argomento vengono illustrate le nozioni di base sull'utilizzo di API. Se scegli di utilizzare l'API, tieni presente che questo approccio può essere più complesso ed essere pronto a diverse iterazioni per far funzionare il tuo lavoro ibrido.
Per utilizzare l'API, il tuo account deve avere un ruolo nella policy AmazonBraketFullAccess
gestita.
Nota
Per ulteriori informazioni su come ottenere un ruolo con la policy AmazonBraketFullAccess
gestita, consulta la pagina Abilita Amazon Braket.
Inoltre, è necessario un ruolo di esecuzione. Questo ruolo verrà passato al servizio. Puoi creare il ruolo utilizzando la console Amazon Braket. Utilizza la scheda Ruoli di esecuzione nella pagina Autorizzazioni e impostazioni per creare un ruolo predefinito per i lavori ibridi.
Il CreateJob
API richiede di specificare tutti i parametri richiesti per il lavoro ibrido. Per usare Python, comprimi i file di script dell'algoritmo in un pacchetto tar, ad esempio un file input.tar.gz, ed esegui lo script seguente. Aggiorna le parti del codice tra parentesi angolate (<>
) in modo che corrispondano alle informazioni dell'account e al punto di ingresso che specificano il percorso, il file e il metodo con cui inizia il processo ibrido.
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 volta creato il lavoro ibrido, puoi accedere ai dettagli del lavoro ibrido tramite GetJob
API o la console. Per ottenere i dettagli del lavoro ibrido dalla sessione Python in cui hai eseguito il createJob
codice come nell'esempio precedente, usa il seguente comando Python.
getJob = client.get_job(jobArn=job["jobArn"])
Per annullare un lavoro ibrido, chiamate il CancelJob
API con Amazon Resource Name del lavoro ('JobArn').
cancelJob = client.cancel_job(jobArn=job["jobArn"])
È possibile specificare i checkpoint come parte di createJob
API utilizzando il checkpointConfig
parametro.
checkpointConfig = { "localPath" : "/opt/omega/checkpoints", "s3Uri": f"s3://{bucket}/{s3_prefix}/checkpoints" },
Nota
Il LocalPath di checkpointConfig
non può iniziare con nessuno dei seguenti percorsi riservati:/opt/ml
,, /opt/braket
/tmp
, o/usr/local/nvidia
.