Interagisci direttamente con i lavori ibridi utilizzando API - Amazon Braket

Impara le basi dell'informatica quantistica con! AWS Iscriviti all'Amazon Braket Digital Learning Plan e ottieni il tuo badge digitale dopo aver completato una serie di corsi di apprendimento e una valutazione digitale.

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

Nota

Ti consigliamo vivamente di interagire con Amazon Braket Hybrid Jobs utilizzando l'SDK Amazon Braket Python. Offre comode impostazioni predefinite e protezioni che aiutano i processi ibridi a funzionare correttamente.

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

È CreateJob API necessario 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/Aspen-M-3" ] } }, hyperParameters={ "hyperparameter key you wish to pass": "<hyperparameter value you wish to pass>", }, stoppingCondition={ "maxRuntimeInSeconds": 1200, "maximumTaskLimit": 10 }, )

Dopo aver 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 the CancelJob API with the Amazon Resource Name of the job ()'JobArn'.

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

È possibile specificare i checkpoint come parte dell'createJobAPIutilizzo del 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