Sari la conținutul principal
Acest proiect este în versiune beta. Ai găsit o eroare? Deschide un issue pe GitHub. Ai o întrebare sau o idee? Întreabă în Discussions — ne-ar plăcea să aflăm părerea ta!
Cum este calitatea traducerii pe această pagină?

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.47.0

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 gestionare a zgomotului pentru un exemplu de activare a acestor tehnici.

Decuplare dinamică

Cum se activează: options.dynamical_decoupling.enable = True

Referință API: DynamicalDecouplingOptions

Opțiuni notabile: sequence_type

Twirling Pauli

Cum se activează: options.twirling.enable_gates = True

Referință API: TwirlingOptions

Opțiuni notabile: num_randomizations, shots_per_randomization

TREX

Cum se activează: options.resilience.measure_mitigation = True

Referință API: MeasureNoiseLearningOptions

Opțiuni notabile:

ZNE

Cum se activează: options.resilience.zne_mitigation = True

Referință API: ZneOptions

Opțiuni notabile: noise_factors, extrapolator

PEA

Cum se activează: (trebuie activat și ZNE) options.resilience.zne_mitigation = True și options.resilience.zne.amplifier = "pea"

Referință API: ZneOptions

Opțiuni notabile: noise_factors, extrapolator

PEC

Cum se activează: options.resilience.pec_mitigation = True

Referință API: PecOptions

Opțiuni notabile: max_overhead

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 gestionare a zgomotului.

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 — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import 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.

Note

Exemplu complet cu mai multe opțiuni​

from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import 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