Pular para o conteúdo principal

Mitigação de erros por redes tensoriais (TEM): Uma Qiskit Function da Algorithmiq

Veja a referência da API

Nota

As Qiskit Functions são um recurso experimental disponível somente para usuários dos planos IBM Quantum® Premium, Flex e On-Prem (via IBM Quantum Platform API). Elas estão em versão de pré-visualização e sujeitas a alterações.

Versões dos pacotes

O código desta página foi desenvolvido usando os seguintes requisitos. Recomendamos usar estas versões ou mais recentes.

qiskit[all]~=2.4.0

Visão geral

O método de Mitigação de Erros por Redes Tensoriais (TEM) da Algorithmiq é um algoritmo híbrido quântico-clássico projetado para realizar a mitigação de ruído inteiramente na etapa de pós-processamento clássico. Com o TEM, você pode calcular os valores esperados de observáveis mitigando os inevitáveis erros induzidos por ruído que ocorrem no hardware quântico, com maior precisão e eficiência de custo, tornando-o uma opção altamente atrativa tanto para pesquisadores quânticos quanto para profissionais da indústria.

O método consiste em construir uma rede tensorial que representa o inverso do canal de ruído global que afeta o estado do processador quântico, e então aplicar o mapa aos resultados de medição informacionalmente completos obtidos do estado ruidoso para obter estimadores não viesados para os observáveis.

Como vantagem, o TEM aproveita medições informacionalmente completas para dar acesso a um vasto conjunto de valores esperados mitigados de observáveis, e possui sobrecarga de amostragem ótima no hardware quântico, conforme descrito em Filippov et al. (2023), arXiv:2307.11740, e Filippov et al. (2024), arXiv:2403.13542. A sobrecarga de medição refere-se ao número de medições adicionais necessárias para realizar a mitigação de erros eficiente, um fator crítico na viabilidade de computações quânticas. Portanto, o TEM tem o potencial de possibilitar a vantagem quântica em cenários complexos, como aplicações nos campos de caos quântico, física de muitos corpos, dinâmica de Hubbard e simulações de química de moléculas pequenas.

As principais funcionalidades e benefícios do TEM podem ser resumidos como:

  1. Sobrecarga de medição ótima: O TEM é ótimo em relação aos limites teóricos, o que significa que nenhum método pode alcançar uma sobrecarga de medição menor. Em outras palavras, o TEM requer o número mínimo de medições adicionais para realizar a mitigação de erros. Isso, por sua vez, significa que o TEM usa o tempo de execução quântico mínimo.
  2. Custo-benefício: Como o TEM lida com a mitigação de ruído inteiramente na etapa de pós-processamento, não há necessidade de adicionar circuitos extras ao computador quântico, o que não só torna a computação mais barata, mas também reduz o risco de introduzir erros adicionais devido às imperfeições dos dispositivos quânticos.
  3. Estimativa de múltiplos observáveis: Graças às medições informacionalmente completas, o TEM estima eficientemente múltiplos observáveis com os mesmos dados de medição do computador quântico.
  4. Mitigação de erros de medição: A Qiskit Function TEM também inclui um método proprietário de mitigação de erros de medição capaz de reduzir significativamente os erros de leitura após uma curta execução de calibração.
  5. Precisão: O TEM melhora significativamente a precisão e a confiabilidade de simulações quânticas digitais, tornando os algoritmos quânticos mais exatos e confiáveis.

Descrição

A função TEM permite que você obtenha valores esperados com mitigação de erros para múltiplos observáveis em um Circuit quântico com sobrecarga de amostragem mínima. O Circuit é medido com uma medida de operador com valor positivo informacionalmente completa (IC-POVM), e os resultados de medição coletados são processados em um computador clássico. Essa medição é usada para realizar os métodos de rede tensorial e construir um mapa de inversão de ruído. A função aplica um mapa que inverte completamente todo o Circuit ruidoso usando redes tensoriais para representar as camadas ruidosas.

Esquema do TEM

Uma vez que os circuitos são enviados à função, eles são transpilados e otimizados para minimizar o número de camadas com gates de dois Qubits (os gates mais ruidosos em dispositivos quânticos). O ruído que afeta as camadas é aprendido por meio do Qiskit Runtime usando um modelo de ruído esparso de Pauli-Lindblad, conforme descrito em E. van den Berg, Z. Minev, A. Kandala, K. Temme, Nat. Phys. (2023). arXiv:2201.09866.

O modelo de ruído é uma descrição precisa do ruído no dispositivo, capaz de capturar características sutis, incluindo a diafonia entre Qubits. No entanto, o ruído nos dispositivos pode flutuar e derivar, e o ruído aprendido pode não ser preciso no momento em que a estimativa é feita. Isso pode resultar em resultados imprecisos.

Primeiros passos

Autentique-se usando sua chave de API do IBM Quantum Platform, e selecione a função TEM como a seguir. (Este trecho assume que você já salvou sua conta em seu ambiente local.)

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-ibm-catalog
from qiskit_ibm_catalog import QiskitFunctionsCatalog

tem_function_name = "algorithmiq/tem"
catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")

# Load your function
tem = catalog.load(tem_function_name)

Exemplo

O trecho a seguir mostra um exemplo em que o TEM é usado para calcular os valores esperados de um observável dado um Circuit quântico simples.

from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp

# Create a quantum circuit
qc = QuantumCircuit(3)
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)
for _ in range(2):
qc.barrier()
qc.cx(0, 1)
qc.cx(2, 1)
qc.barrier()
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)

# Define the observables
observable = SparsePauliOp("IYX", 1.0)

# Define the execution options
pub = (qc, [observable])
options = {"default_precision": 0.02}

# Define backend to use. TEM will choose the least-busy device reported by IBM if not specified
backend_name = "ibm_marrakesh"

# Run the TEM function (uses around three minutes of QPU time)
job = tem.run(pubs=[pub], backend_name=backend_name, options=options)

Use as APIs do Qiskit Serverless para verificar o status da sua carga de trabalho do Qiskit Function:

print(job.status())
QUEUED

Você pode retornar os resultados da seguinte forma:

result = job.result()
evs = result[0].data.evs
print(evs[0])
0.02165380888171687
informação

O valor esperado para o Circuit sem ruído para o operador dado deve ser em torno de 0.18409094298943401.

Obter suporte

Entre em contato com qiskit_ibm@algorithmiq.fi

Certifique-se de incluir as seguintes informações:

  • ID do Job da Qiskit Function (qiskit-ibm-catalog), job.job_id
  • Uma descrição detalhada do problema
  • Quaisquer mensagens de erro ou códigos relevantes
  • Passos para reproduzir o problema

Próximos passos