Pular para o conteúdo principal
Este projeto está em fase beta. Encontrou um bug? Abra uma issue no GitHub. Tem uma pergunta ou ideia? Pergunte no Discussions — adoraríamos receber seu feedback!
Como está a qualidade da tradução nesta página?

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

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 circuito quântico com sobrecarga de amostragem mínima. O circuito é medido com uma medida informacionalmente completa com valores em operadores positivos (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 circuito 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 levar a 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 — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit": "qiskit", "qiskit_ibm_catalog": "qiskit-ibm-catalog"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_catalog import QiskitFunctionsCatalog

tem_function_name = "algorithmiq/tem"
catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")
# verify that you have access to the function
catalog.list()
[QiskitFunction(qunova/hivqe-chemistry),
QiskitFunction(global-data-quantum/quantum-portfolio-optimizer),
QiskitFunction(algorithmiq/tem),
QiskitFunction(qedma/qesem),
QiskitFunction(multiverse/singularity),
QiskitFunction(ibm/circuit-function),
QiskitFunction(q-ctrl/optimization-solver),
QiskitFunction(colibritd/quick-pde),
QiskitFunction(q-ctrl/performance-management),
QiskitFunction(kipu-quantum/iskay-quantum-optimizer)]
# 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 circuito 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 da Qiskit Function:

# Print the ID so you can use it later, if necessary
print(job.job_id)
print(job.status())
ea1d7802-b067-4cc9-af39-3c2402d22413
QUEUED

Você pode retornar os resultados da seguinte forma:

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

O valor esperado para o circuito 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​