Skip to main content
IBM Quantum Platform

Qiskit Paulice

qiskit-paulice ist ein Paket zur Einbettung hardwareeffizienter Pauli-Prüfungen in beliebige Clifford-Schaltkreise mit beliebigen Qubit-Verbindungen unter Verwendung von Raum-Zeit-Stabilisatorcodes. Mit diesen Prüfungen lassen sich logische Fehler während der Ausführung des Schaltkreises erkennen. Die nachträgliche Auswahl nur jener Stichproben, bei denen keine Fehler festgestellt wurden, kann die Genauigkeit der mit einem Quantenprozessor abgetasteten Zustände verbessern, allerdings auf Kosten einiger Hilfsqubits und eines erhöhten Abtastaufwands. Diese Methode eignet sich besonders für Hardware der nahen Zukunft, da sie im Vergleich zur fehlertoleranten Quanteninformatik einen deutlich geringeren Overhead an Qubits und Gatter aufweist und gleichzeitig einen besseren Sampling-Overhead bietet als Fehlerminderungsmethoden wie ZNE oder PEC [1].

Zwar lassen sich Pauli-Prüfungen in der Raumzeit zur Implementierung eigenständiger Fehlererkennungsroutinen nutzen, doch spielen sie auch im Zusammenhang mit der Fehlerminderung und Fehlerkorrektur eine Rolle. Die Fehlererkennung kann Techniken zur Fehlerminderung wie die probabilistische Fehlerauslöschung (PEC) ergänzen, indem sie einen Teil des Rauschens erfasst, das auf Loggatter und Messungen einwirkt, wodurch die Auswirkungen des invertierten Rauschkanals verringert und somit der Abtast-Overhead reduziert werden. Sie können auch als erster Schritt in Richtung einer praktischen Fehlertoleranz betrachtet werden, da die Implementierung von Stabilisatorcodes zum Schutz von Datenqubits vor logischen Fehlern ein Kernkonzept der herkömmlichen Fehlerkorrektur darstellt. Da diese Methode einen einmaligen Zugriff auf den Quantenzustand ermöglicht, kann sie sowohl in abtastbasierten als auch in erwartungswertbasierten Arbeitsabläufen eingesetzt werden.


Einführung

Eine kurze Anleitung, die Ihnen den schnellen Einstieg in dieses Paket erleichtert, finden Sie im Schnellstart leitfaden.


Anwendungsfallbeispiele

Diese Technik wurde eingesetzt, um die Genauigkeit von Proben aus Clifford-dominierten Schaltkreisen mit bis zu 50 Qubits und 2.450 Verschränkungsgattern zu verbessern [1].


Fachliche Diskussion

Suche nach guten Sätzen von Raumzeit-Pauli-Prüfungen

Karikatur einer Quantenschaltung

Ein Satz von Raumzeit-Pauli-Prüfungen ist „gut“, wenn jede Prüfung gültig, von geringem Gewicht und wirksam ist.

Ein Check besteht aus einer Reihe kontrollierter Pauli-Rotationen ( PP ), die auf bestimmten Leitungen im Schaltkreis ( ww ) angeordnet sind: {(P1,w1),...,(Pk,wk)}\{(P_1,w_1), ..., (P_k,w_k)\}. Bei einem bestimmten Check liegen die Steuerungen auf einem einzigen Ancilla-Qubit, und die Rotationen finden auf den Leitungen eines einzigen Ziel-Qubits statt. Bei Clifford-Schaltungen ist eine Prüfung gültig, wenn ihr rückpropagiertes Produkt ein Stabilisator des durch die ideale Schaltung vorbereiteten Zustands ist: ∏iB(Pi,wi)∈S\prod_{i}B(P_i,w_i) \in S, wobei B(P,w)B(P,w) der Rückpropagator von PP von ww bis zum Anfang der Schaltung ist und SS die Menge aller Stabilisatoren der Schaltung ist.

Ein Check gilt als „Low Weight“, wenn zu seiner Umsetzung nur wenige Verflechtungsgatter erforderlich sind. Der Algorithmus zur Auswahl der Schecks bevorzugt Schecks mit geringem Gewicht, die die effektivste Fehlererkennung ermöglichen.

Eine Prüfung ist wirksam, wenn sie weitaus mehr Fehler aufdeckt, als sie selbst verursacht. Ein Pauli-Check besteht aus einer Reihe von Verschränkungsgattern und führt daher zu zusätzlichem Gatterrauschen in der Berechnung. Es ist wichtig sicherzustellen, dass jede zusätzliche Überprüfung eine gewisse zusätzliche Fehlererkennungsfähigkeit mit sich bringt. Die Wirksamkeit einer Reihe von Prüfungen lässt sich näherungsweise ermitteln, indem man die durch die Prüfungen aufgedeckten Pauli-Fehler zu einem nachselektierten Rauschkanal zusammenfasst und dessen Auswirkungen berechnet. Die Minimierung des Abtast-Overheads bei der Implementierung des ungedeckten inversen Rauschkanals ist eine bewährte Heuristik für die Auswahl guter Prüfverfahren, da sie einen Hinweis darauf gibt, wie groß der Fehler ist, den die Prüfverfahren nicht erkennen können. Ein langsamerer, aber realistischerer Ansatz besteht darin, eine Monte-Carlo-Stichprobe aus dem verrauschten Zustand zu ziehen und die logische Fehlerrate der nachselektierten Verteilung empirisch zu berechnen. Beide Ansätze stehen als integrierte Kostenfunktionen in der qiskit_paulice.add_pauli_checks Funktion zur Verfügung.

Nachselektion von Proben auf der Grundlage von Syndromdaten

In diesem Paket wird eine Überprüfung mithilfe von Verschränkungsgattern zwischen einem Ancilla-Qubit und einem Ziel-Qubit implementiert. Jede Ancilla beginnt im Zustand „ ∣0⟩|0\rangle “, daher stabilisiert „ ZancZ_\text{anc} “ ihren Eingangsstatus. Die vorwärtsgerichtete Ausbreitung von „ ZancZ_\text{anc} “ vom Anfang der Ancilla durch den gesamten geprüften Schaltkreis führt zu einem Pauli-Operator am Ausgang, der möglicherweise ein höheres Gewicht aufweist und sich bis in den Nutzlastschaltkreis erstreckt. Die Qubit-Indizes, an denen dieser Ausgabebetreiber Nicht-Identitätsterme aufweist, werden als „Prüfungsbereich“ bezeichnet, und die Prüfung ist bestanden, wenn die Bits bb im Prüfungsbereich eine gerade Parität aufweisen: ⨁i=1bi=0\bigoplus_{i=1} b_i = 0. Eine Stichprobe wird beibehalten, wenn jede Prüfung bei ihrer Paritätsprüfung das Ergebnis 00 liefert.

Softwarefunktionen

  • Automatische Erstellung von Rauschmodellen aus Backend-Benchmark-Daten
  • Rust-beschleunigte Erkennung von Schecks
  • Drei integrierte Algorithmen zur Scheckerkennung
  • Bewertung der Wirksamkeit von Prüfungen auf der Grundlage des Stichprobenaufwands eines nachträglich ausgewählten inversen Rauschkanals oder der logischen Fehlerrate auf der Grundlage einer Monte-Carlo-Stichprobe des verrauschten Zustands
  • Hilfsfunktion zum Auffinden von Ancilla-/Ziel-Qubit-Paaren für ein bestimmtes Backend

Bekannte Probleme

  • Das Leerlaufgeräusch wird nicht über NoiseModel.get_backend bereitgestellt und bei der Stichprobenprüfung ignoriert
  • Zwar lassen sich viele stochastische Schritte des Algorithmus mithilfe eines Zufallsstartwerts steuern, doch weisen einige Merkmale eine Zufälligkeit auf, die sich nicht mit einem Startwert steuern lässt. Insbesondere führen die folgenden „kwargs“-Werte für add_pauli_checks zu einer unbestimmten Auswahl der Prüfungen: cost="LER", method="genetic", und method="windowed_genetic". Für ein deterministisches Verhalten verwenden add_pauli_checks(..., cost="gamma", method="windowed")Sie die Standardwerte.

Zukünftige Arbeiten

  • Unterstützung für die Behandlung von Nicht-Clifford-Systemen
  • Mehr Unterstützung bei der Analyse des nachgewählten Rauschkanals
  • Umgang mit Leerlaufgeräuschen beim Einsammeln von Schecks
  • Steuerbare Zufälligkeit für Kostenfunktionen der logischen Fehlerrate und genetische Suchalgorithmen

Beitrag

Der Quellcode ist unter GitHub verfügbar.

Das Entwicklerhandbuch befindet sich unter CONTRIBUTING.md im Stammverzeichnis des Repositorys dieses Projekts. Mit Ihrer Teilnahme verpflichten Sie sich, den Verhaltenskodex von Qiskit einzuhalten.


Verweis auf dieses Paket

Wenn Sie dieses Paket in Ihrer Forschungsarbeit verwenden, nutzen Sie bitte die Datei „ CITATION.bib “ im Repository dieses Projekts, um die entsprechenden Quellen anzugeben.


Lizenz

Apache Lizenz 2.0


Richtlinie zur Veralterung von Funktionen

Wir halten uns an die semantische Versionsverwaltung. Gelegentlich nehmen wir möglicherweise Änderungen vor, die Kompatibilitätsprobleme verursachen, um die Benutzererfahrung zu verbessern. Soweit möglich, werden wir alte Schnittstellen beibehalten und sie als veraltet kennzeichnen, solange sie neben den neuen Schnittstellen bestehen bleiben können. Jede wesentliche Verbesserung, jede Änderung mit Kompatibilitätsproblemen und jede veraltete Funktion wird in den Versionshinweisen dokumentiert.


Referenzen

[1] ( 1, 2 )

Simon Martiel, Ali Javadi-Abhari, Fehlererkennung mit geringem Overhead mittels Raumzeitcodes, arXiv:2504.15725 [quant-ph].

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.