Udostępnij za pośrednictwem


Dostawca IonQ

Ważne

IonQ wycofał swój komputer kwantowy Harmony-2 od 1 września 2024 r.

Napiwek

Podczas tworzenia obszaru roboczego usługi Azure Quantum automatycznie otrzymujesz bezpłatną kwotę 500 USD środków na korzystanie z usługi Azure Quantum dla każdego dostawcy sprzętu kwantowego. Możesz użyć środków na korzystanie z usługi Azure Quantum, aby przesłać swoje pierwsze programy kwantowe do rzeczywistego sprzętu kwantowego.

Komputery kwantowe IonQ wykonują obliczenia, manipulując stanami energii hiperfinii jonów Ytterbium laserami. Atomy to kubity natury — każdy kubit jest identyczny w obrębie i między programami. Operacje logiczne można również wykonywać na dowolnej parze kubitów, co umożliwia tworzenie złożonych programów kwantowych niezakłóconych przez łączność fizyczną. Chcesz dowiedzieć się więcej? Przeczytaj omówienie technologii komputerowej kwantowej uwięzionej jonowej IonQ.

  • Wydawca: IonQ
  • Identyfikator dostawcy: ionq

Następujące elementy targets są dostępne u tego dostawcy:

Target nazwa Target ID Liczba kubitów opis
Symulator kwantowy ionq.simulator 29 kubitów Wyidealizowany symulator oparty na chmurze firmy IonQ. Wolne od kosztów.
IonQ Aria 1 ionq.qpu.aria-1 25 kubitów Komputer kwantowy Aria uwięzionych jonów IonQ.
IonQ Aria 2 ionq.qpu.aria-2 25 kubitów Komputer kwantowy Aria uwięzionych jonów IonQ.
IonQ Forte ionq.qpu.forte 32 kubity Forte uwięziony komputer kwantowy IonQ. Dostępne tylko w prywatnej wersji zapoznawczej.

IonQ targets odpowiada profilowi QIR Base . Aby uzyskać więcej informacji na temat tego target profilu i jego ograniczeń, zobacz Opis target typów profilów w usłudze Azure Quantum.

Symulator kwantowy

Symulowany symulator przyspieszany przez procesor GPU obsługujący maksymalnie 29 kubitów przy użyciu tego samego zestawu bram IonQ zapewnia sprzęt kwantowy — doskonałe miejsce do wstępnego wykonywania zadań przed uruchomieniem ich na rzeczywistym komputerze kwantowym.

  • Typ zadania: Simulation
  • Format danych: ionq.circuit.v1
  • Target ID: ionq.simulator
  • Target Profil wykonywania: QIR Base

Komputer kwantowy IonQ Aria

IonQ Aria jest flagą uwięzionych komputerów kwantowych IonQ, z 25-kubitowym dynamicznie rekonfigurowalnym systemem. Aby uzyskać więcej informacji, zobacz IonQ Aria (ionq.com).

Ważne

Debiasing jest domyślnie włączony w systemach Aria, a przesłane zadania podlegają odchyleniu cen. Aby uzyskać więcej informacji na temat debiasingu i sposobu wyłączania/włączania usługi, zobacz Ograniczanie błędów.

  • Typ zadania: Quantum Program
  • Format danych: ionq.circuit.v1
  • Target Identyfikator: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Target Profil wykonywania: QIR Base
Nazwa parametru Typ Wymagania opis
shots int Nie. Liczba zdjęć eksperymentalnych.

Chronometraż systemu

Miara Średni czas trwania
T1 10–100 s
T2 1 s
Bramka z pojedynczym kubitem 135 μs
Bramka z dwoma kubitami 600 μs

Wierność systemu

Operacja Średnia wierność
Bramka z pojedynczym kubitem 99,95% (poprawiono spam)
Bramka z dwoma kubitami 99,6% (nie poprawiono spamu)
SPAM* 99.61%

* Przygotowanie stanu i pomiar (SPAM): Ta miara określa, jak dokładnie komputer kwantowy może ustawić kubit do stanu początkowego, a następnie zmierzyć wynik na końcu.

IonQ Aria jest dostępna za pośrednictwem planu środków na korzystanie z usługi Azure Quantum i oddzielnego planu rozliczeniowego. Aby uzyskać więcej informacji, zobacz Cennik usługi Azure Quantum.

Komputer kwantowy IonQ Forte

IonQ Forte to najbardziej wydajny, komercyjnie dostępny komputer kwantowy IonQ. W przypadku 32-kubitowego systemu konfigurowalnego programowo IonQ Forte jest dostępny w prywatnej wersji zapoznawczej w usłudze Azure Quantum. Aby uzyskać więcej informacji, zobacz IonQ Forte (ionq.com).

Ważne

Odchylenie jest domyślnie włączone w systemie Forte, a przesłane zadania podlegają odchyleniom cenowym. Aby uzyskać więcej informacji na temat debiasingu i sposobu wyłączania/włączania usługi, zobacz Ograniczanie błędów.

  • Typ zadania: Quantum Program
  • Format danych: ionq.circuit.v1
  • Target ID: ionq.qpu.forte
  • Target Profil wykonywania: QIR Base
Nazwa parametru Typ Wymagania opis
shots int Nie. Liczba zdjęć eksperymentalnych.

Format danych wejściowych

W języku Q#dane wyjściowe miary kwantowej są wartością typu Result, która może przyjmować tylko wartości Zero i One. Podczas definiowania operacji języka Q# można ją przesłać tylko do sprzętu IonQ, jeśli zwracany typ to kolekcja Results, czyli jeśli dane wyjściowe operacji są wynikiem pomiaru kwantowego. Przyczyną jest to, że IonQ tworzy histogram z zwracanych wartości, więc ogranicza typ zwracany w celu Result uproszczenia tworzenia tego histogramu.

IonQ targets odpowiada elementowi QIR Base profile. Ten profil nie może uruchamiać operacji kwantowych, które wymagają użycia wyników z pomiarów kubitów w celu kontrolowania przepływu programu.

Format wyjściowy

Po przesłaniu programu kwantowego do symulatora IonQ zwraca histogram utworzony przez miary. Symulator IonQ nie próbkuje rozkładu prawdopodobieństwa utworzonego przez program kwantowy, ale zwraca rozkład skalowany do liczby zdjęć. Jest to najbardziej widoczne podczas przesyłania pojedynczego obwodu strzału. Zobaczysz wiele wyników pomiaru w histogramie dla jednego strzału. To zachowanie jest związane z symulatorem IonQ, podczas gdy funkcja QPU IonQ faktycznie uruchamia program i agreguje wyniki.

Dodatkowe możliwości

Dodatkowe możliwości obsługiwane przez sprzęt IonQ są wymienione tutaj.

Możliwość opis
Środki zaradcze dotyczące błędów Używanie stronniczość w celu zminimalizowania szumu i zmaksymalizowania wydajności algorytmicznej na sprzęcie IonQ
Obsługa bram natywnych Definiowanie i wykonywanie obwodów bezpośrednio na bramach natywnych sprzętowo IonQ
Symulacja modelu szumu Symuluj profil szumu, który wystąpi podczas uruchamiania ich na innym sprzęcie IonQ.

Użytkownicy mogą korzystać z tych dodatkowych możliwości za pośrednictwem parametrów przekazywania w usługach Azure Quantum Q# i Qiskit.

Środki zaradcze dotyczące błędów

Usługa IonQ umożliwia włączenie ograniczania błędów kwantowych podczas przesyłania zadań do sprzętu IonQ. Ograniczenie ryzyka błędów to proces na poziomie kompilatora, który jest uruchamiany i wykonuje wiele symetrycznych odmian obwodu, a następnie agreguje wyniki przy jednoczesnym łagodzeniu wpływu błędów sprzętowych i dekoherencji kubitów. W przeciwieństwie do technik korygowania błędów kwantowych ograniczenie ryzyka błędów nie wymaga dużego nakładu pracy bramy i kubitu.

Debiasing to proces tworzenia niewielkich odmian danego obwodu, który powinien być identyczny na idealnej maszynie bez szumu, przy użyciu technik takich jak różne przypisania kubitów, dekompozycje bramy i rozwiązania impulsów, a następnie wykonywanie tych odmian.

Wyostrzanie i średnie to opcje agregowania wyników odmian. Średnie jest jednakowo oparte na wszystkich wynikach odmian, podczas gdy wyostrzanie filtruje błędne wyniki i może być bardziej niezawodne dla niektórych typów algorytmów.

Aby uzyskać więcej informacji, zobacz Debiasing and Sharpening (Odchylenie i ostrzenie). Aby uzyskać informacje o cenach ograniczania błędów, zobacz Cennik IonQ.

Włączanie ograniczania błędów

Uwaga

Odchylenie jest domyślnie włączone w systemach Aria i Forte.

W usłudze Azure Quantum można włączyć lub wyłączyć ograniczanie błędów dla zadań przesłanych za pomocą języka Q# lub zestawu Qiskit.

Aby włączyć ograniczenie ryzyka błędów, dodaj opcjonalny parametr dla maszyny target :


option_params = {
    "error-mitigation": {
        "debias": True
    }
}

Aby wyłączyć ograniczenie ryzyka błędów, ustaw parametr na False:


option_params = {
    "error-mitigation": {
        "debias": False
    }
}

Uwaga

Jeśli używasz również symulacji modelu szumu IonQ, te parametry można uwzględnić w tym miejscu, na przykład:

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "aria-1",
    "seed": 100
    }
}

Aby uzyskać więcej informacji, zobacz Symulacja modelu szumu.

Uruchamianie zadania w usłudze Azure Quantum z ograniczeniem błędów

W tym przykładzie użyto prostego generatora liczb losowych.

Najpierw zaimportuj wymagane pakiety i zainicjuj profil podstawowy:

import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)

Następnie zdefiniuj funkcję.

%%qsharp
import Std.Measurement.*;
import Std.Arrays.*;
import Std.Convert.*;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

and compile the operation:

```python
MyProgram = qsharp.compile("GenerateRandomBit()")

Połącz się z usługą Azure Quantum, wybierz maszynę target i skonfiguruj parametry szumu emulatora:

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("ionq.qpu.aria-1")

error-mitigation Określanie konfiguracji


option_params = {
    "error-mitigation": {
        "debias": True
    }
}

Przekaż konfigurację ograniczania ryzyka błędów podczas przesyłania zadania:

job = MyTarget.submit(MyProgram, "Experiment with error mitigation", shots = 10, input_params = option_params)
job.get_results()

W zestawie Qiskit należy przekazać opcjonalne parametry do target konfiguracji maszyny przed przesłaniem zadania:

circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)

Uwaga

Jeśli parametr nie zostanie przekazany error-mitigation , target maszyna będzie używać jego domyślnego ustawienia, które jest włączone dla systemów Aria i Forte.

Obsługa i użycie bram natywnych

Domyślnie IonQ umożliwia określenie obwodu kwantowego przy użyciu abstrakcyjnego zestawu bram kwantowych o nazwie qis, który umożliwia elastyczność i przenośność podczas pisania algorytmu bez martwienia się o optymalizację sprzętu.

Jednak w niektórych zaawansowanych przypadkach użycia można zdefiniować obwód bezpośrednio na bramach natywnych, aby zbliżyć się do sprzętu i obejścia optymalizacji. Natywny zestaw bram jest zestawem bram kwantowych, które są fizycznie wykonywane w procesorze kwantowym i mapują obwód na te w ramach wykonywania.

Aby uzyskać więcej informacji, zobacz Wprowadzenie do bram natywnych (ionq.com).

Aby użyć natywnego zestawu bram podczas przesyłania zadań Qiskit do usługi Azure Quantum, należy określić gateset parametr podczas inicjowania zaplecza, jak w poniższym przykładzie:

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu.aria-1", gateset="native")
Nazwa parametru Typ Wymagania opis
gateset string Nie Określa zestaw bram, które będą używane do definiowania obwodu. Wartość odpowiada abstrakcyjnym qis bramom (zachowanie domyślne) i native bramom natywnym sprzętu IonQ.

Aby uzyskać więcej informacji na temat zadań Qiskit, zobacz Submit a circuit with Qiskit (Przesyłanie obwodu za pomocą zestawu Qiskit).

Symulacja modelu szumu

Nawet najlepszy z dzisiejszego sprzętu kwantowego ma nieodłączny szum i znajomość cech szumu target systemu może pomóc w uściśleniu algorytmów i uzyskać bardziej realistyczne przewidywanie wyników podczas uruchamiania obwodu na sprzęcie. Technologia IonQ udostępnia symulację modelu szumu, która wprowadza hałas do obwodu przy użyciu "odcisku palca szumu" specyficznego dla sprzętutarget. Aby uzyskać więcej informacji, zobacz Wprowadzenie do symulacji modelu szumu sprzętowego.

Parametry modelu szumu

Nazwa parametru Wartości opis
noise model, seed Umożliwia symulację modelu szumu
model ideal, aria-1 Określa model szumu dla sprzętu target .
  • ideal - Nie wprowadza się szumu do obwodu. Jest to takie samo, jak brak włączania symulacji szumu.
  • aria-1 — Używa modelu szumu dla komputera kwantowego IonQ Aria.
seed Liczba całkowita z zakresu od 1 do $2^{31}$ (2,147,483,648) Umożliwia określenie wartości nasion dla pseudo-losowego szumu i próbkowania strzałów, tworząc powtarzalne wyniki hałaśliwe. Jeśli parametr nie zostanie określony, zostanie utworzona losowa seed wartość.

Rozpoznawanie strzałów

Symulacja modelu szumu jest świadoma strzałów. Oznacza to, że próbkuje pomiary ze stanu wyjściowego na podstawie liczby dostarczonych zdjęć. W usłudze Azure Quantum shots parametr jest przesyłany z zadaniem i jest wymagany dla aria-1 modeli szumu. Jeśli żadna wartość nie shot zostanie określona, zostanie użyta wartość domyślna 1000 . Jeśli jest używany model szumu ideal , shots parametr jest ignorowany.

Pojemność kubitu

ideal Chociaż model szumu umożliwia symulowanie do 29 kubitów za pomocą symulatora kwantowego IonQ, modele szumu specyficzne dla sprzętu są ograniczone do rzeczywistej pojemności kubitów target sprzętu, czyli 25 kubitów dla modelu szumuaria-1.

Włączanie symulacji modelu szumu

W usłudze Azure Quantum symulacja modelu szumu może być włączona lub wyłączona dla zadań przesłanych za pomocą języka Q# lub z zestawem Qiskit.

Aby włączyć symulację modelu szumu, dodaj opcjonalny parametr dla target maszyny, na przykład:


option_params = {
    "noise": {
        "model": "aria-1",   # targets the Aria quantum computer
        "seed" : 1000         # If seed isn't specified, a random value is used  
    }
}

Uwaga

Jeśli używasz również ograniczania błędów IonQ, te parametry można uwzględnić w tym miejscu, na przykład:

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "aria-1",
    "seed": 1000
    }
}

Aby uzyskać więcej informacji, zobacz Ograniczanie błędów.

Uruchamianie zadania z symulacją modelu szumu

Możesz użyć tego samego przykładowego programu pokazanego wcześniej w ramach ograniczania ryzyka błędów i dodać lub zastąpić konfigurację modelu szumu w programie option_params;

option_params = {
    "error-mitigation": {
        "debias": True
    },
    "noise": {
    "model": "aria",
    "seed": 1000
    }
}

Następnie przekaż opcjonalne parametry podczas przesyłania zadania:

job = MyTarget.submit(MyProgram, "Experiment with noise model simulation", shots = 10, input_params = option_params)
job.get_results()

W zestawie Qiskit należy przekazać opcjonalne parametry do target konfiguracji maszyny przed przesłaniem zadania:

circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)

Cennik

Aby wyświetlić plan rozliczeniowy IonQ, odwiedź stronę Cennik usługi Azure Quantum.

Limity przydziału i ograniczenia

Limity przydziału IonQ są śledzone na podstawie jednostki użycia QPU, która jest kubit-gate-shot (QGS). Użycie zasobów jest uwzględniane na koncie.

Każdy program kwantowy składa się z $N$ kwantowych bram logicznych co najmniej jednego kubitu i jest wykonywany dla określonej liczby zdjęć. Liczba strzałów bramek jest obliczana przez następującą formułę:

$$ QGS = N · C $$

gdzie:

  • $N$ jest liczbą przesłanych bramek jedno-lub dwóch kubitów
  • $C$ to liczba żądanych ujęć wykonania

Limity przydziału są oparte na wyborze planu i można je zwiększyć za pomocą biletu pomocy technicznej. Aby wyświetlić bieżące limity i limity przydziału, przejdź do bloku Środki i przydziały , a następnie wybierz kartę Przydziały obszaru roboczego w witrynie Azure Portal. Aby uzyskać więcej informacji, zobacz Limity przydziału usługi Azure Quantum.

Uwaga

Jeśli używasz planu środków na korzystanie z usługi Azure Quantum, a nie planu rozliczeniowego, informacje o limitach przydziału są mapowane na przydzielone środki. W takim przypadku limit przydziału zawiera łączną liczbę otrzymanych środków.

Stan IonQ

Aby uzyskać informacje o opóźnieniach przetwarzania zadań QPU IonQ, zobacz stronę stanu IonQ.

Najlepsze rozwiązania i wykres łączności IonQ

Aby zapoznać się z zalecanymi najlepszymi rozwiązaniami dotyczącymi QPU IonQ, zobacz Najlepsze rozwiązania IonQ (ionq.com).