Impara le basi dell'informatica quantistica con! AWS Iscriviti all'Amazon Braket Digital Learning
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
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'createJob
APIutilizzo 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