Skip to main content
IBM Quantum Platform

Qiskit Paulice

qiskit-paulice è un pacchetto che consente di integrare controlli di Pauli efficienti dal punto di vista hardware in circuiti di Clifford arbitrari su connettività di qubit arbitrarie, utilizzando codici stabilizzatori spazio-temporali. Questi controlli possono essere utilizzati per individuare errori logici durante l'esecuzione del circuito. La selezione a posteriori dei soli campioni in cui non sono stati rilevati errori può migliorare la fedeltà degli stati campionati con un processore quantistico, a costo di alcuni qubit ausiliari e di un aumento del sovraccarico di campionamento. Questo metodo è particolarmente adatto all'hardware di prossima generazione, poiché comporta un overhead molto più contenuto in termini di qubit e gate rispetto al calcolo quantistico tollerante ai guasti, pur presentando un overhead di campionamento migliore rispetto ai metodi di mitigazione degli errori quali ZNE o PEC [1].

Sebbene i controlli di Pauli nello spazio-tempo possano essere utilizzati per implementare routine autonome di rilevamento degli errori, essi sono rilevanti anche nel contesto della mitigazione e della correzione degli errori. Il rilevamento degli errori può integrare le tecniche di mitigazione degli errori, come la cancellazione probabilistica degli errori (PEC), intercettando parte del rumore che influenza le porte logiche e le misurazioni, riducendo l’impatto dell’inversione del canale di rumore e, di conseguenza, riducendo il sovraccarico di campionamento. Possono inoltre essere considerati un primo passo verso una tolleranza ai guasti applicabile nella pratica, poiché l’implementazione di codici stabilizzatori per proteggere i qubit di dati dagli errori logici è un concetto fondamentale della correzione degli errori tradizionale. Poiché questo metodo consente di accedere allo stato quantistico in un unico passaggio, può essere utilizzato sia nei flussi di lavoro basati sul campionamento che in quelli basati sul valore atteso.


Guida introduttiva

Nella guida rapida è disponibile una semplice guida che ti aiuterà a iniziare subito a utilizzare questo pacchetto.


Esempi di casi di utilizzo

Questa tecnica è stata utilizzata per migliorare la fedeltà dei campioni provenienti da circuiti dominati da Clifford fino a 50 qubit e 2450 porte di entanglement [1].


Discussione tecnica

Individuazione di buone serie di controlli di Pauli nello spazio-tempo

Vignetta su un circuito quantistico

Una serie di controlli di Pauli nello spazio-tempo è “valida” se ogni controllo è valido, di peso ridotto ed efficace.

Un controllo è costituito da una serie di rotazioni di Pauli controllate, PP, applicate ad alcuni cavi del circuito, ww : {(P1,w1),...,(Pk,wk)}\{(P_1,w_1), ..., (P_k,w_k)\}. Per un dato controllo, i comandi agiscono su un singolo qubit ancilla, mentre le rotazioni avvengono sui cavi di un singolo qubit bersaglio. Per i circuiti di Clifford, un controllo è valido se il suo prodotto retropropagato è uno stabilizzatore dello stato preparato dal circuito ideale: iB(Pi,wi)S\prod_{i}B(P_i,w_i) \in S, dove B(P,w)B(P,w) è il retropropagatore di PP da ww all’inizio del circuito, e SS è l’insieme di tutti gli stabilizzatori del circuito.

Un circuito è detto "a basso peso" se per la sua implementazione sono necessari pochi gate intrecciati. L'algoritmo di selezione degli assegni privilegerà quelli di importo modesto e in grado di garantire il rilevamento più efficace degli errori.

Un controllo è efficace se rileva molti più errori di quanti ne introduca. Un controllo di Pauli è costituito da una serie di porte di entanglement e, di conseguenza, introduce nel calcolo un certo rumore aggiuntivo legato alle porte. È importante garantire che ogni controllo aggiuntivo apporti una maggiore capacità di rilevamento degli errori. L'efficacia di una serie di controlli può essere stimata sommando gli errori di Pauli individuati dai controlli in un canale di rumore post-selezionato e calcolandone l'impatto. Ridurre al minimo il sovraccarico di campionamento necessario per implementare il canale di rumore inverso non coperto costituisce una solida euristica per la selezione di controlli efficaci, poiché fornisce un’indicazione della quantità di errore che tali controlli non sono in grado di rilevare. Un approccio più lento ma più realistico consiste nell'effettuare un campionamento Monte Carlo a partire dallo stato rumoroso e nel calcolare empiricamente il tasso di errore logico della distribuzione post-selezionata. Entrambi questi approcci sono disponibili come funzioni di costo integrate nella qiskit_paulice.add_pauli_checks funzione.

Selezione a posteriori dei campioni sulla base dei dati relativi alla sindrome

In questo pacchetto viene implementato un controllo mediante porte di entanglement tra un qubit ancilla e un qubit bersaglio. Ogni ancilla parte da uno stato di " 0|0\rangle ", quindi " ZancZ_\text{anc} " stabilizza il suo stato di ingresso. La propagazione in avanti dell’ ZancZ_\text{anc} e dall’inizio dell’ancilla attraverso l’intero circuito controllato produce un operatore di Pauli in uscita, che potrebbe avere un peso maggiore ed estendersi nel circuito di carico utile. Gli indici dei qubit sui quali questo operatore di uscita presenta termini diversi dall’identità sono detti “supporto del controllo”; il controllo è superato se i bit, bb, presenti nel supporto del controllo hanno parità pari: i=1bi=0\bigoplus_{i=1} b_i = 0. Un campione viene mantenuto se ogni controllo produce 00 per il proprio controllo di parità.

Funzioni software

  • Creazione automatica di modelli di rumore a partire dai dati dei benchmark del backend
  • Individuazione dei controlli accelerata da Rust
  • Tre algoritmi integrati per l'individuazione degli assegni
  • Valutare l’efficacia dei controlli sulla base del sovraccarico di campionamento del canale di rumore inverso preselezionato o del tasso di errore logico basato sul campionamento Monte Carlo dello stato rumoroso
  • Funzionalità di supporto per l'individuazione di coppie di qubit ancilla/target per un determinato backend

Problemi noti

  • Il rumore al minimo non viene fornito tramite NoiseModel.get_backend e viene ignorato durante il controllo del prelievo
  • Sebbene molti passaggi stocastici dell’algoritmo siano controllabili tramite un seme casuale, alcune caratteristiche presentano una casualità che non è controllabile tramite un seme. In particolare, i seguenti valori di kwargs per add_pauli_checks determineranno una selezione indeterministica dei controlli: cost="LER", method="genetic", e method="windowed_genetic". add_pauli_checks(..., cost="gamma", method="windowed")Per un comportamento deterministico, utilizzare i valori predefiniti.

Lavori futuri

  • Supporto per la gestione dei sistemi non di Clifford
  • Maggiore supporto per l'analisi del canale di rumore post-selezionato
  • Come gestire il rumore del motore al minimo durante la raccolta degli assegni
  • Casualità controllabile per la funzione di costo del tasso di errore logico e gli algoritmi di ricerca genetica

contribuzione

Il codice sorgente è disponibile su GitHub.

La guida per gli sviluppatori si trova all'indirizzo CONTRIBUTING.md nella directory principale del repository di questo progetto. Partecipando, ci si aspetta che tu rispetti il codice di condotta di Qiskit.


Citando questo pacchetto

Se utilizzi questo pacchetto nella tua ricerca, usa il file “ CITATION.bib ” presente nel repository di questo progetto per citare i riferimenti bibliografici appropriati.


Licenza

Apache Licenza 2.0


Politica di obsolescenza

Seguiamo il sistema di versioning semantico. Occasionalmente potremmo apportare modifiche sostanziali al fine di migliorare l'esperienza dell'utente. Ove possibile, manterremo le vecchie interfacce e le contrassegneremo come obsolete, purché possano coesistere con quelle nuove. Ogni miglioramento sostanziale, modifica che comporta incompatibilità o funzionalità deprecata sarà documentata nelle note di rilascio.


Riferimenti

[1] ( 1, 2 )

Simon Martiel, Ali Javadi-Abhari, “Rilevamento degli errori a basso overhead con codici spazio-temporali”, arXiv:2504.15725 [quant-ph].

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.