Entradas, saídas, variáveis ambientais e funções auxiliares - Amazon Braket

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

Entradas, saídas, variáveis ambientais e funções auxiliares

Além do arquivo ou arquivos que compõem seu script de algoritmo completo, sua tarefa híbrida pode ter entradas e saídas adicionais. Quando seu trabalho híbrido começar, Amazon O Braket copia as entradas fornecidas como parte da criação do trabalho híbrido no contêiner que executa o script do algoritmo. Quando o trabalho híbrido é concluído, todas as saídas definidas durante o algoritmo são copiadas para o local especificado no Amazon S3.

nota

As métricas do algoritmo são relatadas em tempo real e não seguem esse procedimento de saída.

O Amazon Braket também fornece várias variáveis de ambiente e funções auxiliares para simplificar as interações com entradas e saídas de contêineres.

Esta seção explica os principais conceitos da AwsQuantumJob.create função fornecida pelo Amazon Braket SDK Python e seu mapeamento para a estrutura do arquivo de contêiner.

Entradas

Dados de entrada: os dados de entrada podem ser fornecidos ao algoritmo híbrido especificando o arquivo de dados de entrada, que é configurado como um dicionário, com o input_data argumento. O usuário define o input_data argumento dentro da AwsQuantumJob.create função noSDK. Isso copia os dados de entrada para o sistema de arquivos do contêiner no local fornecido pela variável de ambiente"AMZN_BRAKET_INPUT_DIR". Para ver alguns exemplos de como os dados de entrada são usados em um algoritmo híbrido, consulte os notebooks Jupyter QAOAcom Amazon Braket Hybrid Jobs PennyLane e Quantum com Amazon Braket Hybrid Jobs.

nota

Quando os dados de entrada forem grandes (>1 GB), haverá um longo tempo de espera até que o trabalho híbrido seja enviado. Isso se deve ao fato de que os dados de entrada locais serão primeiro carregados em um bucket do S3, depois o caminho do S3 será adicionado à solicitação de trabalho híbrida e, por fim, a solicitação de trabalho híbrida será enviada ao serviço Braket.

Hiperparâmetros: se você passarhyperparameters, eles estarão disponíveis na variável "AMZN_BRAKET_HP_FILE" de ambiente.

Pontos de verificação: Para especificar um ponto de verificação job-arn cujo você deseja usar em um novo trabalho híbrido, use o copy_checkpoints_from_job comando. Esse comando copia os dados do ponto checkpoint_configs3Uri de verificação para o novo trabalho híbrido, disponibilizando-os no caminho fornecido pela variável de ambiente AMZN_BRAKET_CHECKPOINT_DIR enquanto o trabalho é executado. O padrão éNone, o que significa que os dados do ponto de verificação de outro trabalho híbrido não serão usados no novo trabalho híbrido.

Outputs

Tarefas quânticas: os resultados das tarefas quânticas são armazenados no local s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks do S3.

Resultados do trabalho: tudo o que seu script de algoritmo salva no diretório fornecido pela variável de ambiente "AMZN_BRAKET_JOB_RESULTS_DIR" é copiado para o local do S3 especificado em. output_data_config Se você não especificar esse valor, o padrão será. s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data Fornecemos a função SDK auxiliar save_job_result, que você pode usar para armazenar resultados convenientemente na forma de um dicionário quando chamada a partir do seu script de algoritmo.

Pontos de verificação: Se você quiser usar pontos de verificação, poderá salvá-los no diretório fornecido pela variável de ambiente. "AMZN_BRAKET_CHECKPOINT_DIR" Em save_job_checkpoint vez disso, você também pode usar a função SDK auxiliar.

Métricas de algoritmo: você pode definir métricas de algoritmo como parte do seu script de algoritmo que são emitidas para a Amazon CloudWatch e exibidas em tempo real no Amazon Bloqueie o console enquanto seu trabalho híbrido está em execução. Para ver um exemplo de como usar métricas de algoritmo, consulte Use Amazon Braket Hybrid Jobs para executar um algoritmo. QAOA

Variáveis de ambiente

O Amazon Braket fornece várias variáveis de ambiente para simplificar as interações com entradas e saídas de contêineres. O código a seguir lista as variáveis ambientais que Braket usa.

# the input data directory opt/braket/input/data os.environ["AMZN_BRAKET_INPUT_DIR"] # the output directory opt/braket/model to write job results to os.environ["AMZN_BRAKET_JOB_RESULTS_DIR"] # the name of the job os.environ["AMZN_BRAKET_JOB_NAME"] # the checkpoint directory os.environ["AMZN_BRAKET_CHECKPOINT_DIR"] # the file containing the hyperparameters os.environ["AMZN_BRAKET_HP_FILE"] # the device ARN (AWS Resource Name) os.environ["AMZN_BRAKET_DEVICE_ARN"] # the output S3 bucket, as specified in the CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_OUT_S3_BUCKET"] # the entry point as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_ENTRY_POINT"] # the compression type as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE"] # the S3 location of the user’s script as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_S3_URI"] # the S3 location where the SDK would store the quantum task results by default for the job os.environ["AMZN_BRAKET_TASK_RESULTS_S3_URI"] # the S3 location where the job results would be stored, as specified in CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_JOB_RESULTS_S3_PATH"] # the string that should be passed to CreateQuantumTask’s jobToken parameter for quantum tasks created in the job container os.environ["AMZN_BRAKET_JOB_TOKEN"]

Funções auxiliares

O Amazon Braket fornece várias funções auxiliares para simplificar as interações com entradas e saídas de contêineres. Essas funções auxiliares seriam chamadas de dentro do script de algoritmo usado para executar seu Hybrid Job. O exemplo a seguir demonstra como usá-los.

get_checkpoint_dir() # get the checkpoint directory get_hyperparameters() # get the hyperparameters as strings get_input_data_dir() # get the input data directory get_job_device_arn() # get the device specified by the hybrid job get_job_name() # get the name of the hybrid job. get_results_dir() # get the path to a results directory save_job_result() # save hybrid job results save_job_checkpoint() # save a checkpoint load_job_checkpoint() # load a previously saved checkpoint