Przejdź do głównej treści

Mitygacja błędów za pomocą sieci tensorowych (TEM): Funkcja Qiskit firmy Algorithmiq

Zobacz dokumentację API

Uwaga

Funkcje Qiskit to eksperymentalna funkcjonalność dostępna wyłącznie dla użytkowników planów IBM Quantum® Premium Plan, Flex Plan i On-Prem (przez IBM Quantum Platform API). Są w fazie podglądu przedpremierowego i mogą ulec zmianie.

Package versions

Kod na tej stronie został opracowany przy użyciu poniższych wymagań. Zalecamy korzystanie z tych lub nowszych wersji.

qiskit[all]~=2.4.0

Przegląd

Metoda Mitygacji Błędów za pomocą Sieci Tensorowych (TEM) firmy Algorithmiq to hybrydowy algorytm kwantowo-klasyczny zaprojektowany do przeprowadzania mitygacji szumów całkowicie na etapie klasycznego post-processingu. Dzięki TEM możesz obliczać wartości oczekiwane obserwowalnych, mitygując nieuniknione błędy wywoływane przez szumy, które pojawiają się na sprzęcie kwantowym — z większą dokładnością i efektywnością kosztową, co czyni tę metodę bardzo atrakcyjną zarówno dla badaczy kwantowych, jak i praktyków z przemysłu.

Metoda polega na skonstruowaniu sieci tensorowej reprezentującej odwrotność globalnego kanału szumowego wpływającego na stan procesora kwantowego, a następnie zastosowaniu tego odwzorowania do informacyjnie pełnych wyników pomiarów uzyskanych z zaszumionego stanu w celu uzyskania nieobciążonych estymatorów obserwowalnych.

Zaletą TEM jest to, że wykorzystuje informacyjnie pełne pomiary, dając dostęp do szerokiego zestawu mitygowanych wartości oczekiwanych obserwowalnych i osiągając optymalny narzut próbkowania na sprzęcie kwantowym, zgodnie z opisem w Filippov et al. (2023), arXiv:2307.11740, oraz Filippov et al. (2024), arXiv:2403.13542. Narzut pomiarowy odnosi się do liczby dodatkowych pomiarów wymaganych do przeprowadzenia efektywnej mitygacji błędów — jest to kluczowy czynnik dla wykonalności obliczeń kwantowych. Dlatego TEM ma potencjał, by umożliwić przewagę kwantową w złożonych scenariuszach, takich jak zastosowania w dziedzinie chaosu kwantowego, fizyki wielu ciał, dynamiki Hubbarda oraz symulacji chemii małych cząsteczek.

Główne cechy i korzyści TEM można podsumować następująco:

  1. Optymalny narzut pomiarowy: TEM jest optymalna względem granic teoretycznych, co oznacza, że żadna metoda nie może osiągnąć mniejszego narzutu pomiarowego. Innymi słowy, TEM wymaga minimalnej liczby dodatkowych pomiarów do przeprowadzenia mitygacji błędów. Przekłada się to bezpośrednio na minimalne zużycie czasu kwantowego.
  2. Efektywność kosztowa: Ponieważ TEM obsługuje mitygację szumów całkowicie w etapie post-processingu, nie ma potrzeby dodawania dodatkowych obwodów do komputera kwantowego, co nie tylko obniża koszty obliczeń, ale także zmniejsza ryzyko wprowadzenia dodatkowych błędów wynikających z niedoskonałości urządzeń kwantowych.
  3. Estymacja wielu obserwowalnych: Dzięki informacyjnie pełnym pomiarom TEM efektywnie estymuje wiele obserwowalnych na podstawie tych samych danych pomiarowych z komputera kwantowego.
  4. Mitygacja błędów odczytu: Funkcja Qiskit TEM zawiera również zastrzeżoną metodę mitygacji błędów odczytu, zdolną do znacznego zmniejszenia błędów readout po krótkim przebiegu kalibracyjnym.
  5. Dokładność: TEM znacząco poprawia dokładność i niezawodność cyfrowych symulacji kwantowych, czyniąc algorytmy kwantowe bardziej precyzyjnymi i wiarygodnymi.

Opis

Funkcja TEM pozwala uzyskać wartości oczekiwane z mitygacją błędów dla wielu obserwowalnych w obwodzie kwantowym przy minimalnym narzucie próbkowania. Obwód jest mierzony za pomocą informacyjnie pełnej miary z operatorem o wartości dodatniej (IC-POVM), a zebrane wyniki pomiarów są przetwarzane na komputerze klasycznym. Ten pomiar służy do wykonywania metod sieci tensorowych i zbudowania mapy odwrotności szumu. Funkcja stosuje odwzorowanie, które w pełni odwraca cały zaszumiony obwód za pomocą sieci tensorowych reprezentujących zaszumione warstwy.

Schemat TEM

Po przesłaniu obwodów do funkcji są one transpilowane i optymalizowane w celu zminimalizowania liczby warstw z bramkami dwu-qubitowymi (głośniejszymi bramkami na urządzeniach kwantowych). Szum wpływający na warstwy jest uczony przy użyciu Qiskit Runtime z zastosowaniem rzadkiego modelu szumu Pauli-Lindblad, zgodnie z opisem w E. van den Berg, Z. Minev, A. Kandala, K. Temme, Nat. Phys. (2023). arXiv:2201.09866.

Model szumu jest dokładnym opisem szumu na urządzeniu, zdolnym do uchwycenia subtelnych cech, w tym przesłuchów między qubitami. Jednak szum na urządzeniach może fluktuować i dryfować, a nauczony szum może nie być dokładny w momencie przeprowadzania estymacji. Może to prowadzić do niedokładnych wyników.

Pierwsze kroki

Uwierzytelnij się za pomocą klucza API IBM Quantum Platform i wybierz funkcję TEM w następujący sposób. (Ten fragment kodu zakłada, że masz już zapisane konto w środowisku lokalnym.)

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-ibm-catalog
from qiskit_ibm_catalog import QiskitFunctionsCatalog

tem_function_name = "algorithmiq/tem"
catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")

# Load your function
tem = catalog.load(tem_function_name)

Przykład

Poniższy fragment kodu pokazuje przykład, w którym TEM jest używana do obliczenia wartości oczekiwanych obserwowalnej dla prostego obwodu kwantowego.

from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp

# Create a quantum circuit
qc = QuantumCircuit(3)
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)
for _ in range(2):
qc.barrier()
qc.cx(0, 1)
qc.cx(2, 1)
qc.barrier()
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)

# Define the observables
observable = SparsePauliOp("IYX", 1.0)

# Define the execution options
pub = (qc, [observable])
options = {"default_precision": 0.02}

# Define backend to use. TEM will choose the least-busy device
# reported by IBM if not specified
backend_name = "ibm_marrakesh"

# Run the TEM function (uses around three minutes of QPU time)
job = tem.run(pubs=[pub], backend_name=backend_name, options=options)

Użyj interfejsów API Qiskit Serverless, aby sprawdzić status zadania funkcji Qiskit:

print(job.status())
QUEUED

Możesz pobrać wyniki w następujący sposób:

result = job.result()
evs = result[0].data.evs
print(evs[0])
0.02165380888171687
info

Oczekiwana wartość dla obwodu bez szumu dla podanego operatora powinna wynosić około 0.18409094298943401.

Uzyskaj wsparcie

Skontaktuj się pod adresem qiskit_ibm@algorithmiq.fi

Pamiętaj, aby dołączyć następujące informacje:

  • ID zadania funkcji Qiskit (qiskit-ibm-catalog), job.job_id
  • Szczegółowy opis problemu
  • Wszelkie odpowiednie komunikaty o błędach lub kody
  • Kroki pozwalające odtworzyć problem

Następne kroki