Sari la conținutul principal

Configurarea gestionării zgomotului cu Estimator

Versiuni de pachete

Codul de pe această pagină a fost dezvoltat folosind următoarele cerințe. Recomandăm utilizarea acestor versiuni sau a unor versiuni mai noi.

qiskit-ibm-runtime~=0.46.1

Există mai multe modalități de a gestiona zgomotul, de obicei prin utilizarea diferitelor tehnici de atenuare și suprimare a erorilor pentru a evita erorile înainte ca acestea să apară. Aceste tehnici cauzează de obicei un overhead de pre-procesare. Prin urmare, este important să se realizeze un echilibru între perfecționarea rezultatelor și asigurarea că jobul se finalizează într-un timp rezonabil.

Estimator suportă următoarele tehnici de gestionare a zgomotului. Consultă Tehnici de atenuare și suprimare a erorilor pentru o explicație a fiecăreia. Consultă secțiunea Setări personalizate de erori pentru instrucțiuni privind activarea acestor tehnici.

Nivel de reziliență

resilience_level specifică cât de multă reziliență să construiești împotriva erorilor. Nivelurile mai ridicate generează rezultate mai precise, cu prețul unor timpi de procesare mai lungi. Nivelurile de reziliență pot fi folosite pentru a configura compromisul cost/acuratețe atunci când aplici gestionarea zgomotului la interogarea primitivă. Gestionarea zgomotului reduce erorile (biasul) din rezultate prin procesarea ieșirilor dintr-o colecție sau ansamblu de circuite înrudite. Gradul de reducere a erorilor depinde de metoda aplicată. Nivelul de reziliență abstractizează alegerea detaliată a metodei de gestionare a zgomotului pentru a permite utilizatorilor să raționeze despre compromisul cost/acuratețe adecvat aplicației lor.

Astfel, fiecare nivel corespunde unei metode sau unor metode cu un nivel crescând de overhead de eșantionare cuantică pentru a-ți permite să experimentezi cu diferite compromisuri timp-acuratețe. Tabelul următor îți arată ce niveluri și metode corespunzătoare sunt disponibile pentru fiecare dintre primitive.

Nivel de reziliențăDescriereTehnică
0Fără atenuareNiciuna
1 [Implicit]Costuri minime de atenuare: Atenuarea erorilor asociate cu erorile de citireTwirling-ul măsurătorilor Twirled Readout Error eXtinction (TREX)
2Costuri medii de atenuare. De obicei reduce biasul în estimatori, dar nu este garantat să fie zero-bias.Nivelul 1 + Extrapolare Zero Zgomot (ZNE) și twirling de gate
Atenție

Nivelurile de reziliență sunt în prezent în versiune beta, astfel că overhead-ul de eșantionare și calitatea soluției vor varia de la circuit la circuit. Caracteristici noi, opțiuni avansate și instrumente de management vor fi lansate continuu. Metodele specifice de gestionare a zgomotului nu sunt garantate să fie aplicate la fiecare nivel de reziliență.

Configurarea Estimator cu niveluri de reziliență

Poți folosi nivelurile de reziliență pentru a specifica tehnicile de gestionare a zgomotului sau poți seta tehnici personalizate individual, după cum este descris în Setări personalizate de erori.

Important

Orice opțiuni pe care le specifici manual în plus față de nivelul de reziliență sunt aplicate în plus față de setul de bază de opțiuni definite de nivelul de reziliență. Prin urmare, în principiu, ai putea seta nivelul de reziliență la 1, dar apoi dezactiva atenuarea măsurătorilor, deși acest lucru nu este recomandat.

De exemplu, setarea nivelului de reziliență la 0 dezactivează zne_mitigation, dar estimator.options.resilience.zne_mitigation = True suprascrie acea valoare.

Exemplu

Codul următor activează ZNE, TREX și twirling de gate prin setarea resilience_level 2.

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during primitive initialization
estimator = Estimator(backend, options={"resilience_level": 2})

Setări personalizate de gestionare a zgomotului

Poți activa și dezactiva metodele individuale de gestionare a zgomotului folosind opțiunile Estimator.

notă

Nu toate opțiunile funcționează împreună cu toate tipurile de circuite. Consultă tabelul de compatibilitate a caracteristicilor pentru detalii.

Exemplu

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(backend)
options = estimator.options
# Turn on gate twirling.
options.twirling.enable_gates = True
# Turn on measurement error mitigation.
options.resilience.measure_mitigation = True

print(
f">>> gate twirling is turned on: {estimator.options.twirling.enable_gates}"
)
print(
f">>> measurement error mitigation is turned on: "
f"{estimator.options.twirling.enable_gates}"
)
>>> gate twirling is turned on: True
>>> measurement error mitigation is turned on: True

Dezactivarea tuturor atenuărilor de erori

Pentru instrucțiuni privind dezactivarea tuturor atenuărilor de erori, consultă secțiunea Dezactivarea tuturor suprimărilor și atenuărilor de erori din ghidul de opțiuni Estimator.

Pașii următori

Recomandări