Kierowany model wykonania (beta)
Wszystkie komponenty kierowanego modelu wykonania są obecnie w fazie beta i mogą być niestabilne. Zapraszamy do ich testowania i przesyłania opinii poprzez zgłaszanie problemów w repozytoriach GitHub Samplomatic lub Qiskit Runtime.
Interfejsy prymitywów Sampler i Estimator zapewniają abstrakcję wyższego poziomu, dzięki której twórcy algorytmów mogą skupić się bardziej na innowacjach, a mniej na konwersji danych. Są one jednak mniej odpowiednie dla naukowców zajmujących się informacją kwantową, którzy wymagają większej kontroli i elastyczności w swoich eksperymentach w skali użytkowej. Kierowany model wykonania, obecnie dostępny w wydaniu beta, odpowiada na tę potrzebę. Ten model wykonania dostarcza składników pozwalających na uchwycenie intencji projektowych po stronie klienta i przenosi kosztowne generowanie wariantów Circuit na stronę serwera — dzięki temu możesz precyzyjnie dostosować łagodzenie błędów i inne techniki bez utraty wydajności. Ten jawny i kompozycyjny model ułatwia eksperymentowanie z nowymi technikami, odtwarzanie wyników i udostępnianie metod.
W wydaniu beta kierowany model wykonania skupia się na przyznaniu ci kontroli nad technikami wbudowanymi w istniejące prymitywy Sampler i Estimator, w tym nad twirlingiem Pauliego, uczeniem i wstrzykiwaniem modeli szumu oraz zmianami bazy. Wsparcie dla innych możliwości będzie stopniowo dodawane.
Przepływ pracy
Jednym z głównych celów kierowanego modelu wykonania jest zapewnienie modułowego sposobu stosowania metod łagodzenia błędów. Na przykład możesz określić, które warstwy w Circuit mają być łagodzone, lub dostosować szybkości szumu wstrzykiwanego do Circuit.
Aby zastosować łagodzenie błędów do Circuit w ramach tego modelu, twój przepływ pracy będzie zazwyczaj obejmował następujące kroki (narzędzia wymienione tutaj są dokładniej opisane w następnej sekcji):
-
Grupuj instrukcje w bloki i stosuj do nich adnotacje. Adnotacje rejestrują zamierzoną transformację bez faktycznego generowania wariantów Circuit.
-
Naucz modele szumu unikalnych warstw, jeśli jest to potrzebne, używając nowego NoiseLearnerV3.
-
Zbuduj Circuit szablonowy i samplex z zablokowanego Circuit.
-
Uruchom Circuit szablonowy i samplex z prymitywem Executor, który wygeneruje i wykona warianty Circuit zgodnie z instrukcjami.
-
Przetwarzaj wyniki wykonania. Na przykład możesz zastosować post-selekcję lub ekstrapolować złagodzone wartości oczekiwane z wyników wykonania.
Narzędzia dla kierowanego modelu wykonania
Następujące narzędzia można łączyć w celu implementacji techniki łagodzenia błędów w kierowanym modelu wykonania.
Samplomatic
Samplomatic to nowa biblioteka open-source wspierająca dostosowane randomizacje próbkowania. Używa konstrukcji box do rozumowania o kolekcjach operacji Circuit, które powinny być traktowane jako mające stabilny kontekst szumu, i wykorzystuje adnotacje na blokach, aby umożliwić ci deklarowanie i konfigurowanie intencji. Na przykład możesz podzielić swój Circuit na bloki, dodać adnotację twirlingową do każdego bloku i określić, której grupy twirlingowej użyć, jak pokazano na poniższym rysunku:

Circuit z adnotowanymi blokami może być następnie użyty do wygenerowania Circuit szablonowego i samplexa. Wyjściowy Circuit szablonowy to sparametryzowany Circuit, który zostanie wykonany bez dalszych modyfikacji (poza przypisaniem różnych wartości parametrów). Samplex, który jest podstawowym typem biblioteki Samplomatic, reprezentuje parametryczny rozkład prawdopodobieństwa na parametrach Circuit szablonowego i innych polach tablicowych. Pola te mogą być używane do przetwarzania danych zebranych podczas wykonywania powiązanego Circuit szablonowego. Innymi słowy, para Circuit szablonowy i samplex dokładnie informuje prymityw Executor (opisany poniżej), jakie parametry ma wygenerować i jakie powiązane Circuit uruchomić. Ponieważ te dwie konstrukcje są tworzone po stronie klienta, możesz przeprowadzić lokalną inspekcję i próbkowanie, aby zweryfikować wyniki przed wysłaniem ich do wykonania na sprzęcie.
Aby uprościć proces generowania adnotowanych bloków, biblioteka Samplomatic dostarcza również przebiegi Transpilera, które automatycznie grupują instrukcje Circuit w adnotowane bloki, na podstawie strategii, które dostarczasz.
Aby dowiedzieć się więcej o Samplomatic, odwiedź dokumentację przewodników i dokumentację API. Zachęcamy do przesyłania opinii i zgłaszania błędów w repozytorium GitHub.
Prymityw Executor
Executor to nowy prymityw Qiskit Runtime, który przyjmuje parę Circuit szablonowy i samplex jako dane wejściowe, generuje i wiąże wartości parametrów zgodnie z samplexem, wykonuje powiązane Circuit na sprzęcie i zwraca wyniki wykonania oraz metadane. Podąża za dyrektywami pary wejściowej i nie podejmuje za ciebie żadnych niejawnych decyzji, dzięki czemu proces jest przejrzysty, a jednocześnie wydajny.
Aby uzyskać dostęp do Executor, zainstaluj gałąź executor_preview z qiskit-ibm-runtime:
pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview
Dane wejściowe i wyjściowe prymitywu Executor znacznie różnią się od danych Sampler i Estimator. Więcej informacji znajdziesz w dokumentacji API Executor. Ponadto przewodnik szybkiego startu Executor zawiera przegląd i przykłady kodu.
NoiseLearnerV3
Podobnie jak obecny NoiseLearner, ten pomocniczy program Qiskit Runtime zwraca rzadki model szumu Pauliego-Lindbladta używany w wielu metodach łagodzenia błędów, w tym w PEC, PEA i PNA. W oryginalnym NoiseLearner przekazujesz listę Circuit, a program stratyfikuje Circuit na warstwy i zwraca model szumu dla każdej unikalnej warstwy. NoiseLearnerV3 natomiast daje ci kontrolę nad sposobem stratyfikacji twoich Circuit, a program po prostu przyjmuje listę zablokowanych instrukcji Circuit (na przykład unikalnych warstw) jako dane wejściowe.
NoiseLearnerV3 obsługuje również uczenie szumu pomiarowego. Dla każdego zestawu instrukcji na liście wejściowej uruchamia protokół uczenia Pauliego-Lindbladta, jeśli zestaw zawiera Gate jednoi dwuqubitowe, oraz protokół TREX, jeśli zestaw zawiera pomiary.
Aby uzyskać dostęp do NoiseLearnerV3, zainstaluj gałąź executor_preview z qiskit-ibm-runtime:
pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview
Aby dowiedzieć się więcej o NoiseLearnerV3, zapoznaj się z jego dokumentacją API.
Następne kroki
- Sprawdź dwa dodatki Qiskit, Shaded lightcones i Propagated noise absorption, które są zbudowane na bazie tego modelu wykonania.