Wprowadzenie do Qiskit
Nazwa „Qiskit" to ogólny termin oznaczający zbiór oprogramowania do wykonywania programów na komputerach kwantowych. Wśród tych narzędzi wyróżnia się przede wszystkim open-source'owy Qiskit SDK oraz środowisko uruchomieniowe (dostępne przez Qiskit Runtime), za pośrednictwem którego można wykonywać zadania na jednostkach przetwarzania kwantowego (QPU) IBM®. W miarę jak technologia kwantowa się rozwija, ewoluuje również Qiskit – co roku pojawiają się nowe możliwości rozszerzające tę podstawową kolekcję oprogramowania kwantowego.
Ponadto wiele projektów open-source jest częścią szerszego ekosystemu Qiskit. Narzędzia te nie są częścią samego Qiskit, lecz interfejsują z nim i mogą zapewniać wartościową dodatkową funkcjonalność.
IBM angażuje się w odpowiedzialne rozwijanie obliczeń kwantowych. Dowiedz się więcej i zapoznaj się z naszymi zasadami odpowiedzialnych obliczeń kwantowych w temacie Odpowiedzialne obliczenia kwantowe.
Qiskit SDK
Qiskit SDK (nazwa pakietu qiskit) to open-source'owy SDK do pracy z komputerami kwantowymi na poziomie rozszerzonych (statycznych, dynamicznych i harmonogramowanych) Circuit kwantowych, operatorów i prymitywów. Ta biblioteka jest głównym komponentem Qiskit – jest największym pakietem noszącym tę nazwę, oferującym najszerszy zestaw narzędzi do obliczeń kwantowych, z którym interfejsuje wiele innych komponentów.
Oto niektóre z najbardziej przydatnych funkcji Qiskit SDK:
-
Narzędzia do budowania Circuit (
qiskit.circuit) – do inicjalizowania i manipulowania rejestrami, Circuit, instrukcjami, Gate, parametrami i obiektami przepływu sterowania. -
Biblioteka Circuit (
qiskit.circuit.library) – ogromna gama Circuit, instrukcji i Gate – kluczowe elementy składowe obliczeń kwantowych opartych na Circuit. -
Biblioteka informacji kwantowej (
qiskit.quantum_info) – zestaw narzędzi do pracy ze stanami kwantowymi, operatorami i kanałami przy użyciu dokładnych obliczeń (bez szumu próbkowania). Użyj tego modułu, aby określić wejściowe obserwable i analizować wierność wyników z zapytań prymitywów. -
Transpiler (
qiskit.transpiler) – do przekształcania i dostosowywania Circuit kwantowych do topologii konkretnych urządzeń oraz optymalizacji pod kątem wykonania na rzeczywistych jednostkach przetwarzania kwantowego (QPU). -
Prymitywy (
qiskit.primitives) – moduł zawierający podstawowe definicje i implementacje referencyjne prymitywów Sampler i Estimator, na podstawie których różni dostawcy sprzętu kwantowego mogą tworzyć własne implementacje. Więcej informacji o prymitywach Qiskit Runtime znajdziesz w dokumentacji.
Instalacja
Bardziej szczegółowe wprowadzenie do instalacji Qiskit SDK znajdziesz na stronie instalacji. Jeśli jesteś gotowy zainstalować go teraz, po prostu uruchom:
pip install qiskit
Benchmarking i pakiet Benchpress
Benchmarking jest ważny do porównywania względnej wydajności oprogramowania kwantowego na różnych etapach przepływu pracy deweloperskiej. Testy benchmarkingowe dla oprogramowania kwantowego mogą na przykład sprawdzać szybkość i jakość budowania, manipulowania i transpilowania Circuit. IBM Quantum jest zaangażowany w dostarczanie możliwie najbardziej wydajnego SDK, a w tym celu Qiskit SDK jest testowany za pomocą ponad 1000 testów opracowanych przez wiodące uczelnie, laboratoria krajowe i badaczy IBM. Zestaw benchmarkingowy używany do tych testów, o nazwie Benchpress, jest teraz dostępny jako pakiet open-source. Możesz teraz używać pakietu Benchpress do własnej analizy wydajności SDK kwantowego.
Qiskit Runtime
Qiskit Runtime to oparta na chmurze usługa do wykonywania obliczeń kwantowych na sprzęcie IBM Quantum®. Pakiet qiskit-ibm-runtime jest klientem tej usługi i jest następcą Qiskit IBM Provider. Usługa Qiskit Runtime usprawnia obliczenia kwantowe i zapewnia optymalne implementacje prymitywów Qiskit dla sprzętu IBM Quantum. Aby rozpocząć pracę z prymitywami Qiskit Runtime, odwiedź dokumentację.
Qiskit Runtime jest zaprojektowany do korzystania z dodatkowych klasycznych i kwantowych zasobów obliczeniowych, w tym technik takich jak tłumienie błędów i łagodzenie błędów, aby zwracać wyniki wyższej jakości z wykonywania Circuit kwantowych na procesorach kwantowych. Przykłady obejmują dynamiczne rozsprzęganie do tłumienia błędów oraz łagodzenie odczytu i ekstrapolację zerowego szumu (ZNE) do łagodzenia błędów. Dowiedz się, jak skonfigurować te opcje na stronie Konfiguracja łagodzenia błędów.
Qiskit Runtime zawiera również trzy typy trybów wykonywania dla uruchamiania programu kwantowego na sprzęcie IBM: Job, Session i Batch, z których każdy ma inne przypadki użycia i implikacje dla kolejki zadań kwantowych. Job to pojedyncze zapytanie do prymitywu, które można uruchomić dla określonej liczby strzałów. Session umożliwiają wydajne uruchamianie wielu zadań w iteracyjnych obciążeniach na komputerach kwantowych. Tryb Batch pozwala przesłać wszystkie zadania jednocześnie do równoległego przetwarzania. Należy pamiętać, że użytkownicy planu Open Plan nie mogą przesyłać zadań Session.
Aby szybko zainstalować Qiskit Runtime, uruchom następujące polecenie:
pip install qiskit-ibm-runtime
Więcej szczegółów na temat konfigurowania środowiska deweloperskiego do budowania programów kwantowych znajdziesz na stronie instalacji.
Czy Qiskit Runtime jest open-source?
Krótka odpowiedź brzmi: nie w całości. Oprogramowanie usługi Qiskit Runtime, które obsługuje technikalia uruchamiania programu kwantowego na urządzeniu IBM Quantum (w tym wszelkie łagodzenie i tłumienie błędów), nie jest open-source. Jednak klient Qiskit Runtime (interfejs dla użytkowników do dostępu do usługi Qiskit Runtime), Qiskit SDK działający po stronie serwera i część oprogramowania używanego do łagodzenia błędów są open-source. Aby zaangażować się w działania open-source Qiskit, odwiedź naszą organizację na GitHubie pod adresem github.com/Qiskit i github.com/Qiskit-Extensions.
Qiskit Serverless
Tworzenie aplikacji kwantowych w skali użytkowej wymaga zazwyczaj różnorodnych wymagań dotyczących zasobów obliczeniowych. Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) zapewnia prosty interfejs do uruchamiania obciążeń na zasobach kwantowo-klasycznych. Obejmuje to wdrażanie programów na IBM Quantum Platform i zdalne uruchamianie obciążeń, a także łatwe zarządzanie zasobami dla przypadków użycia multi-cloud i superkomputerów skoncentrowanych na kwantach. Więcej informacji znajdziesz w dokumentacji Qiskit Serverless na temat korzystania z tej kolekcji narzędzi do:
- Równoległości zadań klasycznych, takich jak przetwarzanie wstępne i końcowe
- Utrzymywania długo działających obciążeń w chmurze, nawet jeśli laptop jest wyłączony
- Wdrażania programów wielokrotnego użytku w chmurze
Aby od razu zacząć używać Qiskit Serverless, zainstaluj go przez pip:
pip install qiskit_serverless
Qiskit Functions
Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) to abstrakcyjne usługi zaprojektowane w celu przyspieszenia odkrywania algorytmów i prototypowania aplikacji. Przeglądaj katalog Qiskit Functions, w tym:
- Funkcje Circuit: Usługi obejmujące transpilację, tłumienie błędów, łagodzenie błędów i techniki post-processingu, które przyjmują abstrakcyjne Circuit i żądane obserwable pomiarowe jako dane wejściowe. Dzięki funkcjom Circuit użytkownicy mogą odkrywać nowe algorytmy i aplikacje bez konieczności zarządzania transpilacją lub wydajnością sprzętu kwantowego.
- Funkcje aplikacyjne: Usługi obejmujące całe przepływy pracy kwantowej, od mapowania klasycznego na kwantowe, optymalizacji dla sprzętu, wykonania na sprzęcie i post-processingu. Użytkownicy mogą prototypować aplikacje branżowe z wejściami i wyjściami znanych im dziedzin.
Członkowie planów Premium Plan, Flex Plan i On-Prem (przez API IBM Quantum Platform) mogą od razu uzyskać dostęp do funkcji dostarczanych przez IBM lub kupić licencje na funkcje dostarczane przez partnerów bezpośrednio od tych partnerów.
Katalog można zainstalować przez pip:
pip install qiskit-ibm-catalog
Qiskit Transpiler Service
Qiskit Transpiler Service (nazwa pakietu qiskit-ibm-transpiler) to nowa eksperymentalna usługa zapewniająca zdalne możliwości transpilacji w chmurze dla użytkowników planów IBM Quantum Premium Plan, Flex Plan i On-Prem (przez API IBM Quantum Platform). Oprócz lokalnych możliwości Transpilatora Qiskit SDK, twoje zadania transpilacji mogą korzystać z zasobów chmurowych IBM Quantum i przejść Transpilatora opartych na AI dzięki tej usłudze. Aby dowiedzieć się więcej o integracji transpilacji w chmurze z przepływem pracy Qiskit, zapoznaj się z dokumentacją.
Usługę Transpilatora można zainstalować przez pip:
pip install qiskit-ibm-transpiler
Dodatki Qiskit
Dodatki Qiskit (Qiskit addons) to zbiór możliwości badawczych do odkrywania algorytmów w skali użytkowej. Możliwości te bazują na wydajnym fundamencie narzędzi Qiskit do tworzenia i uruchamiania algorytmów kwantowych. Dodatki to modułowe komponenty oprogramowania, które można podłączyć do przepływu pracy, aby skalować lub projektować nowe algorytmy kwantowe. Aby dowiedzieć się więcej o dostępnych dodatkach Qiskit i jak zacząć z nich korzystać, odwiedź dokumentację.
Dostępnych jest wiele dodatków, w zależności od interesujących cię możliwości badawczych. Każdy z nich można zainstalować przez pip.
Diagonalizacja kwantowa oparta na próbkowaniu (SQD):
pip install qiskit-addon-sqd
Przybliżona kompilacja kwantowa (AQC):
pip install qiskit-addon-aqc-tensor[quimb-jax]
Wsteczna propagacja operatorów (OBP):
pip install qiskit-addon-obp
Formuły wieloproduktowe (MPF):
pip install qiskit-addon-mpf
Ekosystem Qiskit
Poza Qiskit istnieje wiele projektów open-source, które używają nazwy „Qiskit", ale nie są częścią samego Qiskit – raczej interfejsują z nim i mogą zapewniać wartościową dodatkową funkcjonalność uzupełniającą główny przepływ pracy Qiskit. Niektóre z tych projektów są utrzymywane przez zespoły IBM Quantum, podczas gdy inne są wspierane przez szerszą społeczność open-source. Qiskit SDK jest zaprojektowany w modularny, rozszerzalny sposób, co ułatwia deweloperom tworzenie takich projektów rozszerzających jego możliwości.
Niektóre popularne projekty w ekosystemie Qiskit to:
- Qiskit Aer (
qiskit-aer) – pakiet do symulatorów komputerów kwantowych z realistycznymi modelami szumu. Zapewnia interfejsy do uruchamiania Circuit kwantowych z szumem lub bez niego przy użyciu wielu różnych metod symulacji. Utrzymywany przez IBM Quantum. - qBraid SDK (
qbraid) – agnostyczny platformowo framework uruchomieniowy kwantowego dla dostawców oprogramowania i sprzętu kwantowego, zaprojektowany do usprawnienia pełnego zarządzania cyklem życia zadań kwantowych – od definiowania specyfikacji programu, przez przesyłanie zadań, aż po post-processing i wizualizację wyników. Utrzymywany przez qBraid. - mthree (
mthree) – pakiet do implementacji M3 (Matrix-free Measurement Mitigation), techniki łagodzenia pomiarów, która rozwiązuje problem skorygowanych prawdopodobieństw pomiaru przy użyciu kroku redukcji wymiarowości, a następnie bezpośredniej faktoryzacji LU lub warunkowej metody iteracyjnej o nominalnej zbieżności w O(1) krokach, którą można obliczać równolegle. Utrzymywany przez IBM Quantum.
Katalog projektów znajdziesz na stronie ekosystemu Qiskit, a także informacje o tym, jak zgłosić swój własny projekt.
Następne kroki
- Dowiedz się o bibliotece Circuit i instrukcji dostępnych w bibliotece Circuit Qiskit.
- Przeczytaj o Transpilerze Qiskit i wielu opcjach transpilacji w sekcji Transpiler.
- Dowiedz się, jak używać prymitywów Qiskit do usprawnienia programowania kwantowego.