Crie seu primeiro Hybrid Job - 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á.

Crie seu primeiro Hybrid Job

Esta seção mostra como criar um Hybrid Job usando um script Python. Como alternativa, para criar uma tarefa híbrida a partir do código Python local, como seu ambiente de desenvolvimento integrado preferido (IDE) ou um notebook Braket, consulte. Executando seu código local como um trabalho híbrido

Definir permissões

Antes de executar seu primeiro trabalho híbrido, você deve garantir que tenha permissões suficientes para continuar com essa tarefa. Para determinar se você tem as permissões corretas, selecione Permissões no menu à esquerda do console Braket. A página Gerenciamento de permissões para Amazon Braket ajuda você a verificar se uma de suas funções existentes tem permissões suficientes para executar seu trabalho híbrido ou orienta você na criação de uma função padrão que pode ser usada para executar seu trabalho híbrido, caso você ainda não tenha essa função.

Página de permissões e configurações do serviço Amazon Braket mostrando uma função vinculada ao serviço e a opção de verificar funções existentes para a função de execução de trabalhos híbridos.

Para verificar se você tem funções com permissões suficientes para executar um trabalho híbrido, selecione o botão Verificar função existente. Se você fizer isso, receberá uma mensagem informando que as funções foram encontradas. Para ver os nomes das funções e suas funçõesARNs, selecione o botão Mostrar funções.

Tela de permissões e configurações do Amazon Braket mostrando uma função vinculada ao serviço encontrada e funções existentes com permissões suficientes para executar trabalhos híbridos.

Se você não tiver uma função com permissões suficientes para executar uma tarefa híbrida, você receberá uma mensagem informando que essa função não foi encontrada. Selecione o botão Criar função padrão para obter uma função com permissões suficientes.

Página de permissões e configurações do Amazon Braket mostrando a função vinculada ao serviço encontrada e nenhuma função de execução de trabalhos híbridos encontrada.

Se a função foi criada com sucesso, você receberá uma mensagem confirmando isso.

Página de permissões e configurações do Amazon Braket mostrando uma função vinculada ao serviço encontrada e uma função de execução de trabalhos híbridos criada com sucesso.

Se você não tiver permissão para fazer essa consulta, seu acesso será negado. Nesse caso, entre em contato com seu interno AWS administrador.

AccessDenied mensagem de erro indicando que o usuário não está autorizado a executar iam: ListAttachedRolePolicies em um AmazonBraketJobsExecutionRole com uma negação explícita.

Crie e execute

Depois de ter uma função com permissões para executar um trabalho híbrido, você estará pronto para continuar. A peça-chave do seu primeiro trabalho híbrido do Braket é o script do algoritmo. Ele define o algoritmo que você deseja executar e contém a lógica clássica e as tarefas quânticas que fazem parte do seu algoritmo. Além do script do algoritmo, você pode fornecer outros arquivos de dependência. O script do algoritmo, junto com suas dependências, é chamado de módulo de origem. O ponto de entrada define o primeiro arquivo ou função a ser executado no módulo de origem quando o trabalho híbrido é iniciado.

Diagrama mostrando o fluxo de trabalho de criar um trabalho quântico usando um console ou notebook, executando o script do algoritmo em um dispositivo quântico e analisando os resultados.

Primeiro, considere o seguinte exemplo básico de um script de algoritmo que cria cinco estados de sino e imprime os resultados de medição correspondentes.

import os from braket.aws import AwsDevice from braket.circuits import Circuit def start_here(): print("Test job started!") # Use the device declared in the job script device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"]) bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) print("Test job completed!")

Salve esse arquivo com o nome algorithm_script.py em seu diretório de trabalho atual no notebook Braket ou no ambiente local. O arquivo algorithm_script.py tem start_here() como ponto de entrada planejado.

Em seguida, crie um arquivo Python ou um notebook Python no mesmo diretório do arquivo algorithm_script.py. Esse script inicia o trabalho híbrido e processa qualquer processamento assíncrono, como imprimir o status ou os principais resultados nos quais estamos interessados. No mínimo, esse script precisa especificar seu script de trabalho híbrido e seu dispositivo principal.

nota

Para obter mais informações sobre como criar um notebook Braket ou fazer upload de um arquivo, como o arquivo algorithm_script.py, no mesmo diretório dos notebooks, consulte Executar seu primeiro circuito usando o Amazon Braket Python SDK

Para esse primeiro caso básico, você escolhe um simulador. Qualquer que seja o tipo de dispositivo quântico que você almeje, um simulador ou uma unidade real de processamento quântico (QPU), o dispositivo especificado device no script a seguir é usado para agendar a tarefa híbrida e está disponível para os scripts do algoritmo como a variável de ambiente. AMZN_BRAKET_DEVICE_ARN

nota

Você só pode usar dispositivos que estejam disponíveis no Região da AWS do seu trabalho híbrido. O Amazon SDK Braket seleciona automaticamente isso Região da AWS. Por exemplo, um trabalho híbrido em us-east-1 pode usar IonQ, SV1, DM1 e TN1 dispositivos, mas não Rigetti dispositivos.

Se você escolher um computador quântico em vez de um simulador, o Braket agenda seus trabalhos híbridos para executar todas as tarefas quânticas com acesso prioritário.

from braket.aws import AwsQuantumJob from braket.devices import Devices job = AwsQuantumJob.create( Devices.Amazon.SV1, source_module="algorithm_script.py", entry_point="algorithm_script:start_here", wait_until_complete=True )

O parâmetro wait_until_complete=True define um modo detalhado para que seu trabalho imprima a saída do trabalho real enquanto ele está sendo executado. Você deve ver uma saída semelhante ao exemplo a seguir.

job = AwsQuantumJob.create( Devices.Amazon.SV1, source_module="algorithm_script.py", entry_point="algorithm_script:start_here", wait_until_complete=True, ) Initializing Braket Job: arn:aws:braket:us-west-2:<accountid>:job/<UUID> ......................................... . . . Completed 36.1 KiB/36.1 KiB (692.1 KiB/s) with 1 file(s) remaining#015download: s3://braket-external-assets-preview-us-west-2/HybridJobsAccess/models/braket-2019-09-01.normal.json to ../../braket/additional_lib/original/braket-2019-09-01.normal.json Running Code As Process Test job started!!!!! Counter({'00': 55, '11': 45}) Counter({'11': 59, '00': 41}) Counter({'00': 55, '11': 45}) Counter({'00': 58, '11': 42}) Counter({'00': 55, '11': 45}) Test job completed!!!!! Code Run Finished 2021-09-17 21:48:05,544 sagemaker-training-toolkit INFO Reporting training SUCCESS
nota

Você também pode usar seu módulo personalizado com o AwsQuantumJobmétodo.create passando sua localização (o caminho para um diretório ou arquivo local ou um S3 URI de um arquivo tar.gz). Para ver um exemplo funcional, consulte o arquivo Parallelize_training_for_ QML .ipynb na pasta de trabalhos híbridos no repositório Github de exemplos do Amazon Braket.

Resultados do monitoramento

Como alternativa, você pode acessar a saída do log da Amazon CloudWatch. Para fazer isso, acesse a guia Grupos de registros no menu esquerdo da página de detalhes do trabalho, selecione o grupo aws/braket/jobs de registros e escolha o fluxo de registros que contém o nome do trabalho. No exemplo acima, ele é braket-job-default-1631915042705/algo-1-1631915190.

CloudWatch grupo de registros mostrando uma lista de eventos de log com caminhos de arquivo e registros de data e hora para testes do Amazon Braket Python. SDK

Você também pode visualizar o status do trabalho híbrido no console selecionando a página Trabalhos híbridos e, em seguida, escolhendo Configurações.

Detalhes do trabalho híbrido do Amazon Braket mostrando resumo, horários dos eventos, código-fonte e configuração da instância e condições de parada.

Seu trabalho híbrido produz alguns artefatos no Amazon S3 enquanto é executado. O nome padrão do bucket do S3 é amazon-braket-<region>-<accountid> e o conteúdo está no jobs/<jobname>/<timestamp> diretório. Você pode configurar os locais do S3 em que esses artefatos são armazenados especificando um diferente code_location quando a tarefa híbrida é criada com o Braket Python. SDK

nota

Esse bucket S3 deve estar localizado no mesmo Região da AWS como seu roteiro de trabalho.

O jobs/<jobname>/<timestamp> diretório contém uma subpasta com a saída do script do ponto de entrada em um model.tar.gz arquivo. Também há um diretório chamado script que contém os artefatos do script do algoritmo em um source.tar.gz arquivo. Os resultados de suas tarefas quânticas reais estão no diretório nomeadojobs/<jobname>/tasks.