Przejdź do głównej treści

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ściOpisTechnika
0Brak łagodzeniaBrak
1 [Domyślny]Minimalne koszty łagodzenia: łagodzenie błędów odczytuTwirled 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
Uwaga

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.

Ważne

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.

uwaga

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

Zalecenia