Konfigurace správy šumu s Estimatorem
Verze balíčků
Kód na této stránce byl vyvinut s použitím následujících požadavků. Doporučujeme používat tyto verze nebo novější.
qiskit-ibm-runtime~=0.47.0
Existuje několik způsobů správy šumu, typicky pomocí různých technik zmírnění chyb a potlačení chyb, aby se chybám předešlo ještě před jejich vznikem. Tyto techniky obvykle způsobují předzpracovací režii. Proto je důležité dosáhnout rovnováhy mezi zdokonalením výsledků a zajištěním, že tvá úloha skončí v přiměřeném čase.
Estimator podporuje následující techniky správy šumu. Vysvětlení každé z nich najdeš v části Techniky zmírnění a potlačení chyb. Příklad povolení těchto technik najdeš v části Vlastní nastavení správy šumu.
Dynamické oddělení
Jak zapnout: options.dynamical_decoupling.enable = True
Reference API: DynamicalDecouplingOptions
Pozoruhodné volby: sequence_type
Pauliho twirling
Jak zapnout: options.twirling.enable_gates = True
Reference API: TwirlingOptions
Pozoruhodné volby: num_randomizations, shots_per_randomization
TREX
Jak zapnout: options.resilience.measure_mitigation = True
Reference API: MeasureNoiseLearningOptions
Pozoruhodné volby:
ZNE
Jak zapnout: options.resilience.zne_mitigation = True
Reference API: ZneOptions
Pozoruhodné volby: noise_factors, extrapolator
PEA
Jak zapnout: (Musí být zapnuto také ZNE) options.resilience.zne_mitigation = True a options.resilience.zne.amplifier = "pea"
Reference API: ZneOptions
Pozoruhodné volby: noise_factors, extrapolator
PEC
Jak zapnout: options.resilience.pec_mitigation = True
Reference API: PecOptions
Pozoruhodné volby: max_overhead
Úroveň odolnosti
resilience_level určuje, jakou míru odolnosti budovat vůči chybám. Vyšší úrovně generují přesnější výsledky za cenu delší doby zpracování. Úrovně odolnosti lze použít ke konfiguraci kompromisu mezi náklady a přesností při aplikaci správy šumu na tvůj dotaz na primitivum. Správa šumu snižuje chyby (zkreslení) ve výsledcích zpracováním výstupů ze sady nebo souboru souvisejících obvodů. Míra snížení chyb závisí na použité metodě. Úroveň odolnosti abstrahuje podrobnou volbu metody správy šumu a umožňuje uživatelům uvažovat o kompromisu nákladů a přesnosti, který je vhodný pro jejich aplikaci.
Každá úroveň proto odpovídá metodě nebo metodám s rostoucí úrovní kvantové vzorkovací režie, abys mohl experimentovat s různými kompromisy mezi časem a přesností. Následující tabulka ukazuje, které úrovně a odpovídající metody jsou dostupné pro každé z primitiv.
| Úroveň odolnosti | Popis | Technika |
|---|---|---|
| 0 | Bez zmírnění | Žádná |
| 1 [Výchozí] | Minimální náklady na zmírnění: Zmírnění chyb spojených s chybami čtení | Twirling pro měření Twirled Readout Error eXtinction (TREX) |
| 2 | Střední náklady na zmírnění. Typicky snižuje zkreslení v odhadech, ale není zaručeno nulové zkreslení. | Úroveň 1 + Extrapolace nulového šumu (ZNE) a gate twirling |
Úrovně odolnosti jsou momentálně ve fázi beta, takže vzorkovací režie a kvalita řešení se budou lišit obvod od obvodu. Nové funkce, pokročilé možnosti a nástroje pro správu budou vydávány průběžně. Není zaručeno, že konkrétní metody správy šumu budou aplikovány na každé úrovni odolnosti.
Konfigurace Estimatoru s úrovněmi odolnosti
Úrovně odolnosti můžeš použít k určení technik správy šumu, nebo můžeš nastavit vlastní techniky jednotlivě, jak je popsáno v části Vlastní nastavení správy šumu.
Jakékoli možnosti, které ručně zadáš navíc k úrovni odolnosti, se aplikují navíc ke základní sadě možností definované úrovní odolnosti. Proto bys v principu mohl nastavit úroveň odolnosti na 1, ale poté vypnout zmírnění chyb měření, i když se to nedoporučuje.
Například nastavení úrovně odolnosti na 0 vypne zne_mitigation, ale estimator.options.resilience.zne_mitigation = True tuto hodnotu přepíše.
Příklad
Následující kód povoluje ZNE, TREX a gate twirling nastavením 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})
Vlastní nastavení správy šumu
Jednotlivé metody správy šumu můžeš zapínat a vypínat pomocí možností Estimatoru.
- Ne všechny volby fungují společně u všech typů obvodů. Podrobnosti najdeš v tabulce kompatibility funkcí.
- Pokud používáš nový Estimator na straně klienta, zavedený v
qiskit-ibm-runtimev0.50.0, je k použití PEA a PEC potřeba samostatná úloha učení šumu. Více informací najdeš v části Migrace ze Sampler a Estimator na straně serveru na ty na straně klienta.
Úplný příklad s více možnostmi
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
Vypnout veškeré zmírnění chyb
Pokyny k vypnutí veškerého zmírnění chyb najdeš v části Vypnout veškeré potlačení a zmírnění chyb v průvodci možnostmi Estimatoru.
Další kroky
- Projdi si příklad, který používá zmírnění chyb v lekci o nákladové funkci v IBM Quantum Learning.
- Zjisti více o technikách zmírnění a potlačení chyb.
- Prozkoumej možnosti Estimatoru.
- Rozhodni se, v jakém prováděcím režimu spustíš svou úlohu.