Mitigação de erros por redes tensoriais (TEM): Uma Qiskit Function da Algorithmiq
Veja a referência da API
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:
- 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.
- 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.
- 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.
- 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.
- 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.
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
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
- Solicite acesso à mitigação de erros por redes tensoriais da Algorithmiq.
- Visite a referência da API desta Qiskit Function.