Przepływ pracy deweloperskiej
Termin wzorzec Qiskit opisuje przepływ pracy deweloperskiej służący do rozkładania problemów dziedzinowych i kontekstualizowania wymaganych możliwości na poszczególnych etapach. Pozwala to na płynną kompozycję nowych możliwości opracowywanych przez badaczy IBM Quantum® (i innych) oraz umożliwia przyszłość, w której zadania obliczeniowe kwantowe będą wykonywane przez wydajną heterogeniczną infrastrukturę obliczeniową (CPU/GPU/QPU). Bloki lub grupy bloków wykonują poszczególne kroki wzorca, przy czym SDK Qiskit stanowi ważną warstwę podstawową, wspieraną przez inne narzędzia lub usługi opracowane przez IBM Quantum lub kwantową społeczność open-source. Wzorce Qiskit pozwalają ekspertom dziedzinowym na określenie problemu i złożenie narzędzi (bloków), które realizują dany wzorzec Qiskit. Taki wzorzec może być następnie wykonywany lokalnie, za pośrednictwem usług chmurowych lub wdrożony z użyciem Qiskit Serverless.
Cztery kroki wzorca Qiskit są następujące:
- Mapuj problem na Circuit kwantowe i operatory
- Optymalizuj pod kątem docelowego sprzętu
- Wykonaj na docelowym sprzęcie
- Przetwarzaj wyniki końcowe
Każdy krok jest szczegółowo opisany w sekcjach poniżej.
Mapowanie problemu na Circuit kwantowe i operatory
Ten krok opisuje, jak użytkownik zaczyna od problemu klasycznego i zastanawia się, jak go odwzorować na komputerze kwantowym. Na przykład w zastosowaniach takich jak chemia i symulacja kwantowa ten krok polega zazwyczaj na skonstruowaniu Circuit kwantowego reprezentującego hamiltonian, który próbujesz rozwiązać. Na tym etapie, w przypadku pewnych problemów, może być również pożądane określenie z góry odwzorowania problemu na Qubit w sieci heavy-hex (lub gross) sprzętu IBM®, jeśli struktura problemu sprzyja wcześniejszej optymalizacji. Warto też już teraz zastanowić się, jaki będzie wynik danego algorytmu — w przygotowaniu do późniejszego kroku wykonania. Na przykład, jeśli pożądany wynik polega na wnioskowaniu funkcji korelacji przy użyciu testów Hadamarda, możesz planować użycie Sampler, natomiast określenie obserwowalnych wymaga użycia Estimator i może udostępniać wiele opcji łagodzenia błędów.
Wynikiem tego kroku jest zazwyczaj kolekcja Circuit kwantowych lub operatorów kwantowych, które można zoptymalizować pod kątem sprzętu w następnym kroku.
Optymalizacja pod kątem docelowego sprzętu
W tym kroku bierzesz abstrakcyjne Circuit (lub operatory) wyprodukowane w kroku mapowania i przeprowadzasz na nich szereg optymalizacji. Może to obejmować mapowanie trasy i układu Circuit na fizyczny sprzęt Qubit, konwersję do bramek bazowych sprzętu oraz redukcję liczby operacji — wszystko po to, aby zoptymalizować prawdopodobieństwo sukcesu w późniejszym kroku wykonania. Na tym etapie możesz także przetestować swoje Circuit za pomocą symulatora, zanim uruchomisz je na prawdziwym sprzęcie w następnym kroku.
Na tym etapie abstrakcyjne Circuit muszą zostać poddane transpilacji do obwodów ISA (Instruction Set Architecture). Circuit ISA to takie, które składa się wyłącznie z Gate rozumianych przez docelowy sprzęt (bramki bazowe) oraz wszelkich bramek wielokubitowych wymaganych do przestrzegania ograniczeń łączności (mapa sprzężeń). Tylko Circuit ISA mogą być uruchamiane na sprzęcie IBM przy użyciu IBM Qiskit Runtime.
Wykonanie na docelowym sprzęcie
Ten krok polega na uruchamianiu Twoich Circuit na sprzęcie i generuje wyniki obliczeń kwantowych. Circuit ISA wyprodukowane w poprzednim kroku można wykonać za pomocą prymitywu Sampler lub Estimator z Qiskit Runtime, zainicjowanego lokalnie na Twoim komputerze lub z klastra bądź innego heterogenicznego środowiska obliczeniowego. Można je wykonywać w trybie Batch, który umożliwia równoległą transpilację dla wydajności klasycznych obliczeń — lub w Session, który pozwala na efektywne realizowanie zadań iteracyjnych bez opóźnień związanych z kolejkowaniem. Na tym etapie istnieje też możliwość skonfigurowania określonych technik tłumienia i łagodzenia błędów udostępnianych przez Qiskit Runtime.
W zależności od tego, czy używasz prymitywu Sampler czy Estimator, wynik tego kroku będzie inny. W przypadku użycia Sampler wynikiem będą pomiary dla każdego strzału w postaci łańcuchów bitów. W przypadku użycia Estimator wynikiem będą wartości oczekiwane obserwowalnych odpowiadające wielkościom fizycznym lub funkcjom kosztu.
Przetwarzanie wyników końcowych
Ten ostatni krok polega na zestawieniu wyników z poprzedniego kroku w celu uzyskania pożądanego rezultatu. Może to obejmować szereg klasycznych kroków przetwarzania danych, takich jak wizualizacja wyników, techniki łagodzenia błędów odczytu, marginalizowanie quasi-rozkładów prawdopodobieństwa w celu ustalenia wyników dla mniejszych zbiorów Qubit lub selekcja po inherentnych właściwościach problemu, takich jak całkowity spin, parzystość lub zachowanie cząstek poprzez usunięcie niefizycznych obserwowalnych.
W miarę jak dziedzina przechodzi od budowy Circuit na zamówienie do przepływów pracy w skali użytkowej, elastyczność i łatwość, z jaką wzorce Qiskit pozwalają użytkownikom komponować poszczególne kroki wzorca, otwiera obliczenia kwantowe na szeroką gamę zastosowań i technik, umożliwiając ich łatwe wykorzystanie przez kwantowych naukowców obliczeniowych.