Konfiguracja zarządzania szumem w Estimator
Wersje pakietów
Kod na tej stronie został opracowany przy użyciu następujących wymagań. Zalecamy używanie tych lub nowszych wersji.
qiskit-ibm-runtime~=0.46.1
Istnieje kilka sposobów zarządzania szumem, zazwyczaj za pomocą różnych technik łagodzenia błędów i tłumienia błędów, aby zapobiec wystąpieniu błędów. Techniki te zwykle powodują narzut w fazie wstępnego przetwarzania. Dlatego ważne jest, aby znaleźć równowagę między doskonaleniem wyników a zapewnieniem, że zadanie zostanie ukończone w rozsądnym czasie.
Estimator obsługuje następujące techniki zarządzania szumem. Zobacz Techniki łagodzenia i tłumienia błędów, aby zapoznać się z wyjaśnieniem każdej z nich. Zobacz sekcję Niestandardowe ustawienia błędów, aby uzyskać instrukcje włączania tych technik.
Poziom odporności
resilience_level określa, jak duża odporność na błędy ma zostać zbudowana. Wyższe poziomy generują dokładniejsze wyniki kosztem dłuższego czasu przetwarzania. Poziomy odporności można wykorzystać do skonfigurowania kompromisu kosztów/dokładności przy stosowaniu zarządzania szumem do zapytania prymitywu. Zarządzanie szumem redukuje błędy (obciążenie) w wynikach przez przetwarzanie wyjść z kolekcji, czyli zespołu powiązanych obwodów. Stopień redukcji błędów zależy od zastosowanej metody. Poziom odporności abstrahuje szczegółowy wybór metody zarządzania szumem, aby umożliwić użytkownikom rozważanie kompromisu kosztów/dokładności odpowiedniego dla ich aplikacji.
Mając to na uwadze, każdy poziom odpowiada metodzie lub metodom o rosnącym poziomie narzutu pobierania próbek kwantowych, co pozwala ci eksperymentować z różnymi kompromisami czasu i dokładności. Poniższa tabela pokazuje, które poziomy i odpowiadające im metody są dostępne dla każdego z prymitywów.
| Poziom odporności | Opis | Technika |
|---|---|---|
| 0 | Brak łagodzenia | Brak |
| 1 [Domyślny] | Minimalne koszty łagodzenia: łagodzenie błędów odczytu | Twirled Readout Error eXtinction (TREX) z twirlingiem pomiarowym |
| 2 | Średnie koszty łagodzenia. Zazwyczaj redukuje obciążenie estymatorów, ale nie gwarantuje zerowego obciążenia. | Poziom 1 + Zero Noise Extrapolation (ZNE) i twirling bramek |
Poziomy odporności są obecnie w fazie beta, więc narzut pobierania próbek i jakość rozwiązań będą się różnić w zależności od obwodu. Nowe funkcje, zaawansowane opcje i narzędzia zarządzania będą wydawane na bieżąco. Nie ma gwarancji, że określone metody zarządzania szumem będą stosowane na każdym poziomie odporności.
Konfiguracja Estimator z poziomami odporności
Możesz używać poziomów odporności do określania technik zarządzania szumem lub możesz indywidualnie ustawiać niestandardowe techniki, jak opisano w Niestandardowe ustawienia błędów.
Wszelkie opcje, które ustawiasz ręcznie, oprócz poziomu odporności, są stosowane jako uzupełnienie podstawowego zestawu opcji zdefiniowanych przez poziom odporności. Dlatego w zasadzie możesz ustawić poziom odporności na 1, ale następnie wyłączyć łagodzenie błędów pomiarowych, choć nie jest to zalecane.
Na przykład ustawienie poziomu odporności na 0 wyłącza zne_mitigation, ale estimator.options.resilience.zne_mitigation = True nadpisuje tę wartość.
Przykład
Poniższy kod włącza ZNE, TREX i twirling bramek przez
ustawienie 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})
Niestandardowe ustawienia zarządzania szumem
Możesz włączać i wyłączać poszczególne metody zarządzania szumem, korzystając z opcji Estimator.
Nie wszystkie opcje działają razem ze wszystkimi typami obwodów. Zobacz tabelę kompatybilności funkcji, aby uzyskać szczegółowe informacje.
Przykład
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
Wyłączenie wszystkich mechanizmów łagodzenia błędów
Instrukcje dotyczące wyłączenia wszystkich mechanizmów łagodzenia błędów znajdziesz w sekcji Wyłączenie wszystkich mechanizmów tłumienia i łagodzenia błędów w przewodniku po opcjach Estimator.
Następne kroki
- Przejdź przez przykład używający łagodzenia błędów w lekcji funkcji kosztu w IBM Quantum Learning.
- Dowiedz się więcej o technikach łagodzenia i tłumienia błędów.
- Zapoznaj się z opcjami Estimator.
- Zdecyduj, w jakim trybie wykonania uruchomić swoje zadanie.