Skip to main content
IBM Quantum Platform

Modelo de execução direcionada (beta)

Liberação beta

Todos os componentes do modelo de execução direcionada estão atualmente na versão beta e podem não ser estáveis. Você está convidado a testá-los e fornecer feedback abrindo um problema nos repositórios Samplomatic ou Qiskit Runtime GitHub repositórios.

As interfaces primitivas Sampler e Estimator oferecem uma abstração de nível superior para que os desenvolvedores de algoritmos se concentrem mais na inovação e menos na conversão de dados. No entanto, eles são menos adequados para cientistas de informações quânticas, que precisam de mais controle e flexibilidade para seus experimentos em escala de utilidade. O modelo de execução direcionada, atualmente em versão beta, atende a essa necessidade. Esse modelo de execução fornece os ingredientes para capturar as intenções do projeto no lado do cliente e transfere a geração dispendiosa de variantes de circuito para o lado do servidor, de modo que você possa ajustar a atenuação de erros e outras técnicas sem sacrificar o desempenho. Esse modelo explícito e compostável facilita a experimentação de novas técnicas, a reprodução de resultados e o compartilhamento de métodos.

Em sua versão beta, o modelo de execução direcionada se concentra em fornecer controle sobre as técnicas incorporadas ao Sampler e ao Estimator existentes, incluindo o giro de Pauli, aprendizado e injeção de modelo de ruído e alterações de base. O suporte a outros recursos será adicionado gradualmente ao longo do tempo.


Fluxo de trabalho

Um dos principais objetivos do modelo de execução direcionada é oferecer uma maneira modular de aplicar métodos de atenuação de erros. Por exemplo, você pode definir quais camadas do circuito devem ser atenuadas ou ajustar as taxas de ruído que estão sendo injetadas no circuito.

Para aplicar a atenuação de erros a um circuito sob a estrutura, seu fluxo de trabalho normalmente envolverá as seguintes etapas (as ferramentas mencionadas aqui são descritas mais detalhadamente na próxima seção ):

  1. Agrupe as instruções em caixas e aplique anotações a elas. As anotações capturam a transformação pretendida sem gerar de fato as variantes do circuito.

    Se necessário : Conheça os modelos de ruído de cada camada usando o novo NoiseLearnerV3.

  2. Construa o circuito modelo e o samplex do circuito da caixa.

  3. Execute o circuito de modelo e o samplex com a primitiva Executor, que irá gerar e executar as variantes do circuito conforme as instruções.

  4. Resultados da execução do pós-processamento. Por exemplo, é possível aplicar uma pós-seleção ou extrapolar valores esperados mitigados a partir dos resultados da execução.

Imagem que ilustra as etapas que ocorrem no lado do cliente e no lado do servidor do modelo de execução direcionada

Ferramentas para o modelo de execução direcionada

As ferramentas a seguir podem ser usadas em conjunto para implementar uma técnica de atenuação de erros no modelo de execução direcionada.

Samplomatic

O Samplomatic é uma nova biblioteca de código aberto que oferece suporte a randomizações de amostragem personalizadas. Ele usa a construção de caixa para raciocinar sobre coleções de operações de circuito que devem ser tratadas como tendo um contexto de ruído estável e usa anotações em caixas para permitir que você declare e configure intenções. Por exemplo, você pode estratificar seu circuito em caixas, adicionar uma anotação de giro a cada caixa e especificar o grupo de giro a ser usado, conforme mostrado na figura a seguir:

Exemplo de uso de caixas e anotações giratórias

Um circuito com caixas anotadas pode então ser usado para gerar um circuito modelo e um samplex. O circuito de modelo de saída é um circuito parametrizado que será executado sem alterações adicionais (exceto pela atribuição de valores diferentes aos parâmetros). O samplex, que é o tipo principal da biblioteca Samplomatic, representa uma distribuição de probabilidade paramétrica sobre os parâmetros do circuito modelo e outros campos com valores em matriz. Esses campos podem ser usados para processar posteriormente os dados coletados durante a execução do circuito do modelo vinculado. Em outras palavras, o circuito modelo e o samplex, em conjunto, indicam à primitiva Executor quais parâmetros gerar e quais circuitos de limite executar. Como essas duas estruturas são criadas no lado do cliente, é possível realizar inspeções e amostragens locais para verificar os resultados antes de enviá-los para execução no hardware.

Para simplificar o processo de geração de caixas anotadas, a biblioteca Samplomatic também fornece passagens de transpilador que agrupam automaticamente as instruções do circuito em caixas anotadas, com base nas estratégias que você fornece.

Para saber mais sobre o Samplomatic, visite os guias e a documentação de referência da API. Sinta-se à vontade para enviar comentários e relatar bugs em seu GitHub repositório.

Primitiva Executor

Executor é uma nova primitiva do Qiskit Runtime que recebe como entrada o par (circuito-modelo, samplex), gera e vincula valores de parâmetros de acordo com o samplex, executa os circuitos vinculados no hardware e retorna os resultados da execução e os metadados. Ele segue as instruções do par de entradas e não toma nenhuma decisão implícita por você, de modo que o processo é transparente e, ao mesmo tempo, eficiente.

NoiseLearnerV3

Semelhante ao atual NoiseLearner, este programa auxiliar Qiskit Runtime retorna o modelo de ruído esparso de Pauli-Lindblad, usado em muitos métodos de mitigação de erros, incluindo PEC, PEA e PNA. No original NoiseLearner, você passa uma lista de circuitos, e o programa estratifica os circuitos em camadas e retorna o modelo de ruído para cada camada única. NoiseLearnerV3 Por outro lado, permite controlar como estratificar seus circuitos, e o programa simplesmente utiliza uma lista de instruções de circuitos em caixas (por exemplo, camadas exclusivas) como entradas.

NoiseLearnerV3 também oferece suporte ao aprendizado de ruído de medição. Para cada conjunto de instruções da lista de entrada, ele executa o protocolo de aprendizado de Pauli-Lindblad se o conjunto contiver portas de um e dois qubits, e o protocolo TREX se o conjunto contiver medições.

NoiseLearnerV3 foi lançado com qiskit-ibm-runtimev0.47.0. Para saber mais, consulte o guia de ajuda do Noise e a documentação de referência da API.


Próximas etapas

Recomendações
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.