Modello di esecuzione diretta (beta)
Tutti i componenti del modello di esecuzione diretta sono attualmente in fase beta e potrebbero non essere stabili. Siete invitati a testarli e a fornire un feedback aprendo un problema nei repository Samplomatic o Qiskit Runtime GitHub o nei repository di Samplomatic.
Le interfacce primitive Sampler e Estimator forniscono un'astrazione di livello superiore che consente agli sviluppatori di algoritmi di concentrarsi maggiormente sull'innovazione e meno sulla conversione dei dati. Tuttavia, sono meno adatti per gli scienziati dell'informazione quantistica, che hanno bisogno di maggiore controllo e flessibilità per i loro esperimenti su scala industriale. Il modello di esecuzione diretta, attualmente in versione beta, risponde a questa esigenza. Questo modello di esecuzione fornisce gli ingredienti per catturare gli intenti progettuali sul lato client e sposta la costosa generazione di varianti di circuito sul lato server, in modo da poter mettere a punto la mitigazione degli errori e altre tecniche senza sacrificare le prestazioni. Questo modello esplicito e componibile facilita la sperimentazione di nuove tecniche, la riproduzione dei risultati e la condivisione dei metodi.
Nella sua versione beta, il modello di esecuzione diretta si concentra sul controllo delle tecniche integrate nel campionatore e nello stimatore esistenti, tra cui il Pauli twirling, l'apprendimento e l'iniezione del modello di rumore e i cambiamenti di base. Il supporto per altre funzionalità sarà aggiunto gradualmente nel tempo.
Flusso di lavoro
Uno degli obiettivi principali del modello di esecuzione diretta è quello di fornire un modo modulare per applicare i metodi di attenuazione degli errori. Ad esempio, è possibile definire quali strati del circuito attenuare o regolare i tassi di rumore iniettati nel circuito.
Per applicare la mitigazione degli errori a un circuito nell'ambito del framework, il flusso di lavoro prevede in genere le seguenti fasi (gli strumenti citati sono descritti più dettagliatamente nella sezione successiva ):
-
Raggruppare le istruzioni in caselle e applicarvi annotazioni. Le annotazioni catturano la trasformazione prevista senza generare effettivamente le varianti del circuito.
Se necessario : scopri i modelli di rumore dei singoli livelli utilizzando il nuovo NoiseLearnerV3.
-
Costruite il circuito modello e il campione del circuito in scatola.
-
Esegui il circuito modello e il samplex con la primitiva Executor, che genererà ed eseguirà le varianti del circuito secondo le istruzioni.
-
Risultati dell'esecuzione del post-elaborazione. Ad esempio, è possibile applicare una post-selezione oppure estrapolare valori attesi mitigati dai risultati dell'esecuzione.
Strumenti per il modello di esecuzione diretta
I seguenti strumenti possono essere utilizzati insieme per implementare una tecnica di mitigazione degli errori nel modello di esecuzione diretta.
Samplomatico
Samplomatic è una nuova libreria open-source che supporta randomizzazioni di campionamento personalizzate. Utilizza il costrutto box per ragionare su collezioni di operazioni circuitali che devono essere trattate come se avessero un contesto di rumore stabile e utilizza le annotazioni sui box per consentire di dichiarare e configurare gli intenti. Ad esempio, è possibile stratificare il circuito in caselle, aggiungere un'annotazione di twirling a ciascuna casella e specificare quale gruppo di twirling utilizzare, come mostrato nella figura seguente:

È quindi possibile utilizzare un circuito con caselle annotate per generare un circuito modello e un samplex. Il circuito modello di output è un circuito parametrizzato che verrà eseguito senza ulteriori modifiche (se non l'assegnazione di valori diversi ai parametri). Il samplex, che costituisce il tipo principale della libreria Samplomatic, rappresenta una distribuzione di probabilità parametrica sui parametri del circuito modello e su altri campi con valori vettoriali. Questi campi possono essere utilizzati per elaborare i dati raccolti durante l'esecuzione del circuito del modello associato. In altre parole, il circuito modello e il samplex indicano insieme alla primitiva Executor quali parametri generare e quali circuiti associati eseguire. Poiché questi due costrutti vengono creati sul lato client, è possibile effettuare un'ispezione locale e un campionamento per verificare i risultati prima di inviarli all'hardware per l'esecuzione.
Per semplificare il processo di generazione delle caselle annotate, la libreria Samplomatic fornisce anche passaggi di transpiler che raggruppano automaticamente le istruzioni del circuito in caselle annotate, in base alle strategie fornite dall'utente.
Per saperne di più su Samplomatic, visitate le guide e la documentazione di riferimento dell'API. Sentitevi liberi di inviare feedback e di segnalare bug nel suo GitHub repository.
Primitiva Executor
Executor è una nuova primitiva di “ IBM Quantum ” che accetta come input la coppia (circuito modello, samplex), genera e associa i valori dei parametri in base al samplex, esegue i circuiti associati sull’hardware e restituisce i risultati dell’esecuzione e i metadati. Segue le indicazioni fornite dalla coppia di input e non prende alcuna decisione implicita al posto dell'utente, in modo che il processo risulti trasparente ma al contempo efficiente.
NoiseLearnerV3
Analogamente all'attuale NoiseLearner, questo programma di supporto qiskit-ibm-runtime restituisce il modello di rumore sparso di Pauli-Lindblad utilizzato in molti metodi di mitigazione degli errori, tra cui PEC, PEA e PNA. Nel codice originale NoiseLearner, si passa in parametro un elenco di circuiti e il programma suddivide i circuiti in livelli, restituendo il modello di rumore per ciascun livello distinto. NoiseLearnerV3, D'altra parte, ti permette di decidere come strutturare i tuoi circuiti, e il programma si limita a utilizzare come input un elenco di istruzioni relative ai circuiti raggruppati (ad esempio, livelli distinti).
NoiseLearnerV3 supporta anche l'apprendimento del rumore di misurazione. Per ogni insieme di istruzioni presente nell'elenco di input, il sistema esegue il protocollo di apprendimento di Pauli-Lindblad se l'insieme contiene porte a uno e a due qubit, e il protocollo TREX se l'insieme contiene misurazioni.
NoiseLearnerV3 è stato rilasciato con qiskit-ibm-runtimev0.47.0. Per ulteriori informazioni, consulta la guida di supporto all'apprendimento di Noise e fai riferimento alla relativa documentazione di riferimento dell'API.
Passi successivi
- Si vedano i due addon di Qiskit, Shaded lightcones e Propagated noise absorption, che si basano su questo modello di esecuzione.