Tensor-Netzwerk-Fehlerminderung (TEM): Eine Qiskit Function von Algorithmiq
Siehe die API-Referenz
Qiskit Functions sind ein experimentelles Feature, das ausschließlich Nutzerinnen und Nutzern des IBM Quantum® Premium Plan, Flex Plan und On-Prem (über die IBM Quantum Platform API) zur Verfügung steht. Sie befinden sich im Preview-Status und können sich noch ändern.
Paketversionen
Der Code auf dieser Seite wurde mit den folgenden Anforderungen entwickelt. Wir empfehlen, diese oder neuere Versionen zu verwenden.
qiskit[all]~=2.4.0
Überblick
Die Tensor-Netzwerk-Fehlerminderungsmethode (TEM) von Algorithmiq ist ein hybrides quanten-klassisches Verfahren, das Rauschminderung vollständig in der klassischen Nachverarbeitungsphase durchführt. Mit TEM kannst du Erwartungswerte von Observablen berechnen und dabei die unvermeidlichen rauschbedingten Fehler auf Quantenhardware mit verbesserter Genauigkeit und Kosteneffizienz mindern – eine attraktive Option für Quantenforscher und Industriepraktiker gleichermaßen.
Die Methode besteht darin, ein Tensor-Netzwerk zu konstruieren, das die Inverse des globalen Rauschkanals darstellt, der den Zustand des Quantenprozessors beeinflusst, und diese Abbildung dann auf informationsvollständige Messergebnisse anzuwenden, die aus dem verrauschten Zustand gewonnen wurden, um unverzerrte Schätzer für die Observablen zu erhalten.
Als Vorteil nutzt TEM informationsvollständige Messungen, um Zugang zu einer großen Menge gemilderter Erwartungswerte von Observablen zu erhalten, und hat optimalen Sampling-Overhead auf der Quantenhardware, wie in Filippov et al. (2023), arXiv:2307.11740, und Filippov et al. (2024), arXiv:2403.13542 beschrieben. Der Mess-Overhead bezieht sich auf die Anzahl zusätzlicher Messungen, die für eine effiziente Fehlerminderung erforderlich sind – ein entscheidender Faktor für die Durchführbarkeit von Quantenberechnungen. Daher hat TEM das Potenzial, einen Quantenvorteil in komplexen Szenarien zu ermöglichen, etwa bei Anwendungen in den Bereichen Quantenchaos, Vielteilchenphysik, Hubbard-Dynamik und Simulationen kleiner Molekülchemie.
Die wichtigsten Merkmale und Vorteile von TEM lassen sich wie folgt zusammenfassen:
- Optimaler Mess-Overhead: TEM ist optimal hinsichtlich der theoretischen Schranken, d. h. keine andere Methode kann einen geringeren Mess-Overhead erzielen. Anders gesagt benötigt TEM die minimale Anzahl zusätzlicher Messungen für die Fehlerminderung. Das bedeutet wiederum, dass TEM die Quantenlaufzeit minimiert.
- Kosteneffizienz: Da TEM die Rauschminderung vollständig in der Nachverarbeitungsphase übernimmt, müssen dem Quantencomputer keine zusätzlichen Circuits hinzugefügt werden. Das macht die Berechnung nicht nur günstiger, sondern verringert auch das Risiko, durch die Unvollkommenheiten von Quantengeräten zusätzliche Fehler einzuführen.
- Schätzung mehrerer Observablen: Dank informationsvollständiger Messungen schätzt TEM effizient mehrere Observablen mit denselben Messdaten vom Quantencomputer.
- Messfehlerminderung: Die TEM Qiskit Function enthält außerdem eine proprietäre Methode zur Messfehlerminderung, die Auslesfehler nach einem kurzen Kalibrierungslauf deutlich reduzieren kann.
- Genauigkeit: TEM verbessert die Genauigkeit und Zuverlässigkeit digitaler Quantensimulationen erheblich und macht Quantenalgorithmen präziser und verlässlicher.
Beschreibung
Die TEM-Funktion ermöglicht es dir, fehlergeminderte Erwartungswerte für mehrere Observablen eines Quantum Circuits mit minimalem Sampling-Overhead zu berechnen. Der Circuit wird mit einer informationsvollständigen positiven operatorwertigen Maßnahme (IC-POVM) gemessen, und die gesammelten Messergebnisse werden auf einem klassischen Computer verarbeitet. Diese Messung wird verwendet, um die Tensor-Netzwerk-Methoden durchzuführen und eine rausch-invertierende Abbildung aufzubauen. Die Funktion wendet eine Abbildung an, die den gesamten verrauschten Circuit vollständig invertiert, indem Tensor-Netzwerke zur Darstellung der verrauschten Schichten verwendet werden.
Sobald die Circuits an die Funktion übermittelt werden, werden sie transpiliert und optimiert, um die Anzahl der Schichten mit Zwei-Qubit-Gates zu minimieren (den rauschintensiveren Gates auf Quantengeräten). Das die Schichten beeinflussende Rauschen wird über Qiskit Runtime mithilfe eines spärlichen Pauli-Lindblad-Rauschmodells erlernt, wie in E. van den Berg, Z. Minev, A. Kandala, K. Temme, Nat. Phys. (2023) beschrieben. arXiv:2201.09866.
Das Rauschmodell ist eine genaue Beschreibung des Rauschens auf dem Gerät und kann subtile Merkmale erfassen, einschließlich Qubit-Übersprechen. Allerdings kann das Rauschen auf den Geräten schwanken und driften, sodass das erlernte Rauschmodell zum Zeitpunkt der Schätzung möglicherweise nicht mehr akkurat ist. Das kann zu ungenauen Ergebnissen führen.
Erste Schritte
Authentifiziere dich mit deinem IBM Quantum Platform API-Schlüssel und wähle die TEM-Funktion wie folgt aus. (Dieser Codeausschnitt setzt voraus, dass du dein Konto bereits in deiner lokalen Umgebung gespeichert hast.)
# 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)
Beispiel
Der folgende Codeausschnitt zeigt ein Beispiel, bei dem TEM verwendet wird, um die Erwartungswerte einer Observablen für einen einfachen Quantum Circuit zu berechnen.
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)
Verwende die Qiskit Serverless APIs, um den Status deines Qiskit Function-Workloads zu überprüfen:
print(job.status())
QUEUED
Du kannst die Ergebnisse wie folgt abrufen:
result = job.result()
evs = result[0].data.evs
print(evs[0])
0.02165380888171687
Der erwartete Wert für den rauschfreien Circuit für den angegebenen Operator sollte etwa 0.18409094298943401 betragen.
Support erhalten
Wende dich an qiskit_ibm@algorithmiq.fi
Füge bitte folgende Informationen bei:
- Qiskit Function Job-ID (
qiskit-ibm-catalog),job.job_id - Eine ausführliche Beschreibung des Problems
- Alle relevanten Fehlermeldungen oder -codes
- Schritte zur Reproduktion des Problems
Nächste Schritte
- Zugang zur Algorithmiq Tensor-Netzwerk-Fehlerminderung beantragen.
- Besuche die API-Referenz für diese Qiskit Function.