Przejdź do głównej treści

Wprowadzenie do opcji

Możesz przekazywać opcje do prymitywów, aby dostosować je do swoich potrzeb. Ta sekcja koncentruje się na opcjach prymitywów Qiskit Runtime. Chociaż interfejs metody run() prymitywów jest wspólny dla wszystkich implementacji, ich opcje już takie nie są. Zapoznaj się z odpowiednimi dokumentacjami API, aby uzyskać informacje o opcjach qiskit.primitives i qiskit_aer.primitives.

Przegląd

Struktura

Wywołując prymitywy, możesz przekazać opcje, używając klasy opcji lub słownika. Często używane opcje, takie jak resilience_level, znajdują się na pierwszym poziomie. Inne opcje są pogrupowane w różne kategorie, takie jak execution. Pełne szczegóły znajdziesz w sekcji Ustawianie opcji prymitywów.

Wartości domyślne

Jeśli nie podasz wartości dla danej opcji, otrzyma ona specjalną wartość Unset i zostanie użyta domyślna wartość serwera. Oznacza to, że wartość domyślna będzie taka sama niezależnie od wersji kodu.

Tabele w sekcji Podsumowanie klas opcji zawierają listę wartości domyślnych.

Ustawianie opcji

Opcje można zdefiniować przed skonstruowaniem prymitywu i przekazać do niego — prymityw tworzy ich kopię. Można to zrobić jako zagnieżdżony słownik lub korzystając z klas opcji. Ponadto po skonstruowaniu prymitywu jego opcje można zmieniać. Wybierz sposób pracy, który najlepiej odpowiada Twojej aplikacji. Szczegóły znajdziesz w sekcji Określanie opcji.

Podsumowanie klas opcji

  • Dynamical decoupling: Opcje dynamicznego rozsprzęgania.
  • Environment: Opcje środowiska wykonania, takie jak poziom logowania oraz tagi zadania.
  • Execution: Opcje wykonania prymitywu, m.in. czy inicjować Qubity oraz opóźnienie powtórzenia.
  • Resilience: Zaawansowane opcje konfiguracji metod łagodzenia błędów, takich jak łagodzenie błędów pomiarowych, ZNE i PEC.
  • Simulator: Opcje symulatora, takie jak bramy bazowe, ziarno symulatora i mapa sprzężenia. Dotyczy wyłącznie trybu lokalnego testowania.
  • Twirling: Opcje twirlingowe, takie jak czy stosować twirling bram dwu-qubitowych oraz liczba pomiarów dla każdej losowej próbki.

Dostępne opcje

Poniższa tabela dokumentuje opcje z najnowszej wersji qiskit-ibm-runtime. Aby zapoznać się ze starszymi wersjami opcji, odwiedź dokumentację API qiskit-ibm-runtime i wybierz poprzednią wersję.

default_shots

Łączna liczba pomiarów (shots) używanych na obwód na konfigurację.

Dopuszczalne wartości: Liczba całkowita >= 0

Domyślna wartość: None

Dokumentacja API default_shots

default_precision

Domyślna precyzja używana dla każdego PUB lub wywołania run(), które jej nie określa.

Dopuszczalne wartości: Liczba zmiennoprzecinkowa > 0

Domyślna wartość: 0.015625 (1 / sqrt(4096))

Dokumentacja API default_precision

dynamical_decoupling

Steruje ustawieniami łagodzenia błędów przez dynamiczne rozsprzęganie.

Dokumentacja API dynamical_decoupling

dynamical_decoupling.enable

Dopuszczalne wartości: True, False

Domyślna wartość: False

dynamical_decoupling.extra_slack_distribution

Dopuszczalne wartości: middle, edges

Domyślna wartość: middle

dynamical_decoupling.scheduling_method

Dopuszczalne wartości: asap, alap Domyślna wartość: alap

dynamical_decoupling.sequence_type

Dopuszczalne wartości: XX, XpXm, XY4 Domyślna wartość: XX

dynamical_decoupling.skip_reset_qubits

Dopuszczalne wartości: True, False Domyślna wartość: False

environment

Dokumentacja API environment

environment.callback

Funkcja wywoływalna (callable), która otrzymuje Job ID oraz wynik zadania (Job result).

Dopuszczalne wartości: None

Domyślna wartość: None

environment.job_tags

Lista tagów.

Dopuszczalne wartości: None

Domyślna wartość: None

environment.log_level

Dopuszczalne wartości: DEBUG, INFO, WARNING, ERROR, CRITICAL

Domyślna wartość: WARNING

environment.private

Dopuszczalne wartości: True, False

Domyślna wartość: False

execution

Dokumentacja API execution

execution.init_qubits

Czy resetować Qubity do stanu podstawowego przed każdym pomiarem.

Dopuszczalne wartości: True, False

Domyślna wartość: True

execution.rep_delay

Opóźnienie między pomiarem a kolejnym obwodem kwantowym.

Dopuszczalne wartości: Wartość w zakresie podanym przez backend.rep_delay_range

Domyślna wartość: Określona przez backend.default_rep_delay

max_execution_time

Dopuszczalne wartości: Liczba całkowita sekund w zakresie [1, 10800]

Domyślna wartość: 10800 (3 godziny)

Dokumentacja API max_execution_time

resilience

Zaawansowane opcje odporności umożliwiające precyzyjne dostrojenie strategii odporności.

Dokumentacja API resilience

resilience.layer_noise_learning

Opcje uczenia się szumu warstwy.

Dokumentacja API resilience.layer_noise_learning

resilience.layer_noise_learning.layer_pair_depths

Dopuszczalne wartości: list[int] od 2 do 10 wartości w zakresie [0, 200]

Domyślna wartość: (0, 1, 2, 4, 16, 32)

resilience.layer_noise_learning.max_layers_to_learn

Dopuszczalne wartości: None, Liczba całkowita >= 1

Domyślna wartość: 4

resilience.layer_noise_learning.num_randomizations

Dopuszczalne wartości: Liczba całkowita >= 1

Domyślna wartość: 32

resilience.layer_noise_learning.shots_per_randomization

Dopuszczalne wartości: Liczba całkowita >= 1

Domyślna wartość: 128

resilience.layer_noise_model

Dopuszczalne wartości: NoiseLearnerResult, Sequence[LayerError]

Domyślna wartość: None

resilience.measure_mitigation

Dopuszczalne wartości: True, False

Domyślna wartość: True

resilience.measure_noise_learning

Opcje uczenia się szumu pomiarowego.

Dokumentacja API resilience.measure_noise_learning

resilience.measure_noise_learning.num_randomizations

Dopuszczalne wartości: Liczba całkowita >= 1

Domyślna wartość: 32

resilience.measure_noise_learning.shots_per_randomization

Dopuszczalne wartości: Liczba całkowita, auto

Domyślna wartość: auto

resilience.pec_mitigation

Dopuszczalne wartości: True, False

Domyślna wartość: False

resilience.pec

Opcje łagodzenia błędów metodą probabilistycznego anulowania błędów (PEC).

Dokumentacja API resilience.pec

resilience.pec.max_overhead

Dopuszczalne wartości: None, Liczba całkowita >= 1

Domyślna wartość: 100

resilience.pec.noise_gain

Dopuszczalne wartości: auto, liczba zmiennoprzecinkowa w zakresie [0, 1]

Domyślna wartość: auto

resilience.zne_mitigation

Dopuszczalne wartości: True, False

Domyślna wartość: False

resilience.zne

resilience.zne.amplifier

Dopuszczalne wartości: gate_folding, gate_folding_front, gate_folding_back, pea

Domyślna wartość: gate_folding

resilience.zne.extrapolated_noise_factors

Dopuszczalne wartości: Lista liczb zmiennoprzecinkowych

Domyślna wartość: [0, *noise_factors]

resilience.zne.extrapolator

Dopuszczalne wartości: Jedna lub więcej spośród: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback

Domyślna wartość: (exponential, linear)

resilience.zne.noise_factors

Dopuszczalne wartości: Lista liczb zmiennoprzecinkowych; każda liczba >= 1

Domyślna wartość: (1, 1.5, 2) dla PEA, w pozostałych przypadkach (1, 3, 5)

resilience_level

Poziom odporności na błędy. Wyższe poziomy generują dokładniejsze wyniki kosztem dłuższego czasu przetwarzania.

Dopuszczalne wartości: 0, 1, 2

Domyślna wartość: 1

Dokumentacja API resilience_level

seed_estimator

Dopuszczalne wartości: Liczba całkowita

Domyślna wartość: None

seed_estimator

simulator

Opcje przekazywane podczas symulacji Backend

Dokumentacja API simulator

simulator.basis_gates

Dopuszczalne wartości: Lista nazw bram bazowych, do których należy rozwinąć obwód

Domyślna wartość: Zbiór wszystkich bram bazowych obsługiwanych przez symulator Qiskit Aer

simulator.coupling_map

Dopuszczalne wartości: Lista skierowanych interakcji dwu-qubitowych

Domyślna wartość: None, co oznacza brak ograniczeń łączności (pełna łączność).

simulator.noise_model

Dopuszczalne wartości: Qiskit Aer NoiseModel lub jego reprezentacja

Domyślna wartość: None

simulator.seed_simulator

Dopuszczalne wartości: Liczba całkowita

Domyślna wartość: None

twirling

Opcje twirlingowe

Dokumentacja API twirling

twirling.enable_gates

Dopuszczalne wartości: True, False

Domyślna wartość: False

twirling.enable_measure

Dopuszczalne wartości: True, False

Domyślna wartość: True

twirling.num_randomizations

Dopuszczalne wartości: auto, Liczba całkowita >= 1

Domyślna wartość: auto

twirling.shots_per_randomization

Dopuszczalne wartości: auto, Liczba całkowita >= 1

Domyślna wartość: auto

twirling.strategy

Dopuszczalne wartości: active, active-circuit, active-accum, all

Domyślna wartość: active-accum

experimental

Opcje eksperymentalne, jeśli są dostępne.

Zgodność funkcji

Ze względu na różnice w procesie kompilacji urządzenia, niektóre funkcje środowiska uruchomieniowego nie mogą być używane razem w jednym zadaniu. Kliknij odpowiednią kartę, aby zobaczyć listę funkcji niezgodnych z wybraną funkcją:

Niezgodne z:

  • ZNE z fałdowaniem bram (gate-folding ZNE)
  • PEA
  • PEC
  • Dynamiczne rozsprzęganie

Inne uwagi:

  • Może być używane z twirlingiem bram dla bram niewarunkowych.
  • Zgodne z bramami frakcyjnymi przy użyciu qiskit-ibm-runtime w wersji 0.42.0 lub nowszej.

Kolejne kroki

Zalecenia