Mitigación de errores con redes tensoriales (TEM): Una Función (Qiskit Function) por Algorithmiq
See the API reference
Las Qiskit Functions (Funciones de Qiskit) son una característica experimental que está disponible solamente para los usuarios del Plan Premium, Plan Flex y Plan On-Prem (vía IBM Quantum Platform API) de IBM Quantum®. Se encuentran en estado de vista previa sujeta a cambios.
Package versions
El código de esta página se desarrolló utilizando los siguientes requisitos. Recomendamos usar estas versiones o más recientes.
qiskit[all]~=2.4.0
Descripción general
El método de mitigación de errores con redes tensoriales (TEM) de Algorithmiq es un algoritmo híbrido cuántico-clásico diseñado para realizar la mitigación de ruido enteramente en la etapa de posprocesamiento clásico. Con TEM, el usuario puede calcular los valores esperados de observables mitigando los inevitables errores inducidos por el ruido que ocurren en el hardware cuántico, con mayor precisión y eficiencia de costos, lo que lo convierte en una opción altamente atractiva para investigadores cuánticos y profesionales de la industria.
El método consiste en construir una red tensorial que representa la inversa del canal de ruido global que afecta el estado del procesador cuántico, y luego aplicar el mapa a los resultados de mediciones informacionalmente completas adquiridos del estado ruidoso para obtener estimadores no sesgados de los observables.
Como ventaja, TEM aprovecha las mediciones informacionalmente completas para dar acceso a un amplio conjunto de valores esperados mitigados de observables y tiene un costo de muestreo óptimo en el hardware cuántico, como se describe en Filippov et al. (2023), arXiv:2307.11740, y Filippov et al. (2024), arXiv:2403.13542. El costo de medición se refiere al número de mediciones adicionales requeridas para realizar una mitigación de errores eficiente, un factor crítico en la viabilidad de las computaciones cuánticas. Por lo tanto, TEM tiene el potencial de habilitar la ventaja cuántica en escenarios complejos, como aplicaciones en los campos del caos cuántico, la física de muchos cuerpos, la dinámica de Hubbard y las simulaciones de química de moléculas pequeñas.
Las principales características y beneficios de TEM se pueden resumir como:
- Costo de muestreo óptimo: TEM es óptimo con respecto a los límites teóricos, lo que significa que ningún método puede lograr un menor costo de muestreo. En otras palabras, TEM requiere el número mínimo de mediciones adicionales para realizar la mitigación de errores. Esto a su vez significa que TEM usa un tiempo de ejecución cuántico mínimo.
- Rentabilidad: Dado que TEM maneja la mitigación de ruido enteramente en la etapa de posprocesamiento, no hay necesidad de agregar circuitos extra al computador cuántico, lo que no solo hace la computación más económica sino que también reduce el riesgo de introducir errores adicionales debido a las imperfecciones de los dispositivos cuánticos.
- Estimación de múltiples observables: Gracias a las mediciones informacionalmente completas, TEM estima eficientemente múltiples observables con los mismos datos de medición del computador cuántico.
- Mitigación de errores de lectura: La función TEM de Qiskit también incluye un método propietario de mitigación de errores de lectura capaz de reducir significativamente los errores de lectura después de una breve ejecución de calibración.
- Precisión: TEM mejora significativamente la precisión y fiabilidad de las simulaciones cuánticas digitales, haciendo los algoritmos cuánticos más precisos y confiables.
Descripción
La función TEM permite obtener valores esperados mitigados para múltiples observables en un circuito cuántico con un costo de muestreo mínimo. El circuito se mide con una medida de operador con valor positivo informacionalmente completa (IC-POVM), y los resultados de medición recolectados se procesan en un computador clásico. Esta medición se usa para realizar los métodos de redes tensoriales y construir un mapa de inversión de ruido. La función aplica un mapa que invierte completamente todo el circuito ruidoso usando redes tensoriales para representar las capas ruidosas.
Una vez que los circuitos se envían a la función, se transpilan y optimizan para minimizar el número de capas con puertas de dos qubits (las puertas más ruidosas en los dispositivos cuánticos). El ruido que afecta las capas se aprende a través de Qiskit Runtime usando un modelo de ruido sparse Pauli-Lindblad como se describe en E. van den Berg, Z. Minev, A. Kandala, K. Temme, Nat. Phys. (2023). arXiv:2201.09866.
El modelo de ruido es una descripción precisa del ruido en el dispositivo, capaz de capturar características sutiles, incluyendo la interferencia entre qubits (cross-talk). Sin embargo, el ruido en los dispositivos puede fluctuar y derivar, y el ruido aprendido podría no ser preciso en el momento en que se realiza la estimación. Esto podría resultar en resultados imprecisos.
Empezar
Autentícate usando tu clave API de IBM Quantum Platform, y selecciona la función TEM de la siguiente manera. (Este fragmento asume que ya has guardado tu cuenta en tu entorno 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)
Ejemplo
El siguiente fragmento muestra un ejemplo donde se usa TEM para calcular los valores esperados de un observable dado un circuito cuántico simple.
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)
Usa las APIs de Qiskit Serverless para verificar el estado de tu carga de trabajo de Qiskit Function:
print(job.status())
QUEUED
Puedes obtener los resultados de la siguiente manera:
result = job.result()
evs = result[0].data.evs
print(evs[0])
0.02165380888171687
El valor esperado para el circuito sin ruido para el operador dado debería ser aproximadamente 0.18409094298943401.
Obtener soporte
Contacta a qiskit_ibm@algorithmiq.fi
Asegúrate de incluir la siguiente información:
- ID del trabajo de Qiskit Function (
qiskit-ibm-catalog),job.job_id - Una descripción detallada del problema
- Cualquier mensaje de error o código relevante
- Pasos para reproducir el problema
Siguientes pasos
- Solicita acceso a Algorithmiq Tensor-network error mitigation.
- Visita la referencia de la API para esta Qiskit Function.