Поделиться через


Поставщик IonQ

Квантовые компьютеры IonQ выполняют вычисления путем управления состояниями энергии сверхтонкого взаимодействия в ионах иттербия с помощью лазеров. Атомы — это естественные кубиты, все кубиты идентичны в пределах одной программы и между программами. Логические операции также можно выполнять с любой произвольной парой кубитов, что позволяет создавать сложные квантовые программы, в которых нет проблемы с физическими связями. Хотите узнать больше? Ознакомьтесь с кратким обзором технологии квантового компьютера с захваченным ионом от IonQ.

  • Издатель: IonQ
  • Идентификатор поставщика: ionq

targets Следующие возможности доступны в этом поставщике:

Целевое имя Идентификатор целевого объекта Количество кубит Описание
Квантовый симулятор ionq.simulator 29 кубит Облачный идеализированный симулятор IonQ. Бесплатно.
IonQ Aria 1 ionq.qpu.aria-1 25 кубитов Квантовый компьютер на захваченных ионах IonQ Aria.
IonQ Aria 2 ionq.qpu.aria-2 25 кубитов Квантовый компьютер на захваченных ионах IonQ Aria.
IonQ Forte ionq.qpu.forte 32 кубита Ионно-ловушечный квантовый компьютер IonQ. Доступно только в закрытой предварительной версии.

IonQ targets соответствует профилю QIR Base. Дополнительные сведения об этом target профиле и его ограничениях см. в разделе "Общие target сведения о типах профилей" в Azure Quantum.

Квантовый симулятор

Идеализированный симулятор с ускорением на GPU, поддерживающий до 29 кубитов и использующий тот же набор ворот, который IonQ предоставляет на своем квантовом оборудовании, — отличное место для предварительной проверки задач перед их запуском на настоящем квантовом компьютере.

  • Тип задания: Simulation
  • Формат данных: ionq.circuit.v1
  • Идентификатор целевого объекта: ionq.simulator
  • Профиль целевого выполнения: QIR Base

Квантовый компьютер IonQ Aria

IonQ Aria является флагманом квантовых компьютеров IonQ с ионной ловушкой, имея 25-кубитную динамически перенастройчиваемую систему. Дополнительные сведения см. в статье IonQ Aria (ionq.com).

Внимание

Устранение смещения включено в системах Aria по умолчанию, и отправленные задания оцениваются с учетом устранения смещения. Дополнительные сведения об устранении смещения и включении/отключении службы см. в разделе Устранение ошибок.

  • Тип задания: Quantum Program
  • Формат данных: ionq.circuit.v1
  • Идентификатор целевого объекта: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Профиль целевого выполнения: QIR Base
Имя параметра Тип Обязательно Описание
shots INT Нет Число экспериментальных снимков.

Тайминг системы

Измерение Средняя длительность времени
Т1 10-100 с
T2 1 с
Однокубитные ворота 135 мкс
Двухкубитные ворота 600 мкс

Точность системы

Операция Средняя точность
Однокубитные ворота 99,95% (исправление спама)
Двухкубитные ворота 99,6% (без учёта спама)
СПАМ* 99.61%

* Подготовка и измерение состояния (SPAM). Это измерение определяет, насколько точно квантовый компьютер может задать для кубита исходное состояние, а затем измерить результат.

IonQ Aria доступен через отдельный план выставления счетов. Дополнительные сведения см. в разделе Цены на Azure Quantum.

Квантовый компьютер IonQ Forte

IonQ Forte — это высокопроизводительный, коммерчески доступный квантовый компьютер IonQ. Система IonQ Forte с 32-кубитовой программно-настраиваемой архитектурой доступна в закрытой предварительной версии в Azure Quantum. Дополнительные сведения см. в разделе IonQ Forte (ionq.com).

Внимание

Дебиасинг включен в системе Forte по умолчанию, и отправленные задания оцениваются с учетом дебиасинга. Дополнительные сведения об устранении смещения и включении/отключении службы см. в разделе Устранение ошибок.

  • Тип задания: Quantum Program
  • Формат данных: ionq.circuit.v1
  • Идентификатор целевого объекта: ionq.qpu.forte
  • Профиль целевого выполнения: QIR Base
Имя параметра Тип Обязательно Описание
shots INT Нет Число экспериментальных снимков.

Формат входных данных

В Q#выходные данные квантового измерения — это значение типа Result, которое может принимать только значения Zero и One. При определении операции Q# она может быть отправлена только в оборудование IonQ, если тип возвращаемого значения является коллекцией Results, то есть, если выходные данные операции являются результатом квантового измерения. Причина этого заключается в том, что IonQ создает гистограмму из возвращаемых значений, поэтому она ограничивает возвращаемый тип до Result, чтобы упростить создание этой гистограммы.

IonQ targets соответствует QIR Base profile. Этот профиль не может выполнять квантовые операции, требующие использования результатов из измерений кубитов для управления потоком программы.

Формат вывода

При отправке квантовой программы в симулятор IonQ он возвращает гистограмму, созданную измерениями. Симулятор IonQ не производит выборку распределения вероятностей, созданного квантовой программой, а возвращает распределение, масштабированное до количества измерений. Это наиболее очевидно при отправке одного канала выстрела. Вы увидите несколько результатов измерения в гистограмме для одного выстрела. Это поведение присуще симулятору IonQ, а IonQ QPU фактически запускает программу и агрегирует результаты.

Дополнительные возможности

Дополнительные возможности, поддерживаемые оборудованием IonQ, перечислены здесь.

Возможность Описание
Устранение ошибок Использование дебайсинга для минимизации шума и максимизации алгоритмической производительности на оборудовании IonQ.
Поддержка собственных шлюзов Определяйте и выполняйте схемы прямо на аппаратных гейтах IonQ.
Моделирование модели шума Имитируйте профиль шума, который будет возникать при их запуске на различном оборудовании IonQ.

Пользователи могут воспользоваться этими дополнительными возможностями через проброс параметров в поставщиках Azure Quantum Q# и Qiskit.

Устранение ошибок

IonQ предоставляет возможность включить устранение квантовых ошибок при отправке заданий на оборудование IonQ. Устранение ошибок — это процесс на уровне компилятора, который выполняет несколько симметричных вариаций схемы, а затем агрегирует результаты, одновременно смягчая влияние аппаратных ошибок и декогеренции кубитов. В отличие от техник коррекции квантовых ошибок, снижение ошибок не требует значительных ресурсов в использовании вентилей и кубитов.

Снятие смещения — это процесс создания небольших вариаций заданной схемы, которая должна быть идентичной на идеальной бесшумной машине, с использованием таких методов, как различные назначения кубитов, разложение логических элементов и управление импульсами, а затем выполнение этих вариаций.

Повышение резкости и усреднение — это варианты агрегирования результатов вариантов. Усреднение основано одинаково на всех результатах вариации, в то время как Sharpening фильтрует ошибочные результаты и может быть более надежным для определенных типов алгоритмов.

Дополнительные сведения см. в разделе Debiasing и Sharpening. Сведения о ценах на устранение ошибок см. в разделе о ценах на IonQ.

Активация снижения воздействия ошибок

Примечание.

Debiasing включен по умолчанию в системах Aria и Forte.

В Azure Quantum устранение ошибок можно включить или отключить для заданий, отправленных с помощью Q# или Qiskit.

Чтобы включить устранение ошибок, добавьте необязательный параметр для target компьютера:


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

Чтобы отключить устранение ошибок, задайте для параметра Falseзначение :


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

Примечание.

Если вы также используете имитацию шумовой модели IonQ, эти параметры можно включить здесь, например:

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

Дополнительные сведения см. в разделе "Моделирование модели шумов".

Выполнение задания в Azure Quantum с устранением ошибок

В этом примере используется простой генератор случайных чисел.

Сначала импортируйте необходимые пакеты и инициируйте базовый профиль:

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

Затем определите функцию.

%%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()")

Подключитесь к Azure Quantum, выберите target компьютер и настройте параметры шума для эмулятора:

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

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

Укажите конфигурацию error-mitigation


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

Передайте конфигурацию устранения ошибок при отправке задания:

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

В Qiskit, перед отправкой задания, необязательные параметры передаются в конфигурацию машины:

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

Примечание.

Если вы не передаете параметр error-mitigation, target машина будет использовать свои настройки по умолчанию, которые включены для систем Aria и Forte.

Поддержка и использование встроенных гейтов

По умолчанию IonQ позволяет указать квантовую цепь с помощью абстрактного набора квантовых вентилей, называемых qis, что обеспечивает гибкость и переносимость при написании алгоритма без необходимости оптимизации оборудования.

Однако в некоторых расширенных случаях использования может потребоваться определить цепь непосредственно на собственных вентилях, чтобы максимально эффективно использовать оборудование и исключить оптимизацию. Набор собственных вентилей — это набор квантовых вентилей, которые физически выполняются в квантовом процессоре и обеспечивают соответствие цепи этим вентилям во время выполнения.

Дополнительные сведения см. в разделе Начало работы с родными вентилями (ionq.com).

Чтобы использовать родной набор вентилей при отправке заданий Qiskit в Azure Quantum, необходимо указать параметр gateset при инициализации бэкэнда, как показано в примере ниже.

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu.aria-1", gateset="native")
Имя параметра Тип Обязательно Описание
gateset строка Нет Задает набор вентилей, который будет использоваться для определения цепи. Значение qis соответствует абстрактным вентилям (поведение по умолчанию) и nativeаппаратным собственным вентилям IonQ.

Дополнительные сведения о заданиях Qiskit см. в разделе "Отправка схемы с помощью Qiskit".

Моделирование модели шума

Даже лучшее из сегодняшнего квантового оборудования имеет присущий шум, и знание характеристик шума вашей системы target может помочь вам уточнить алгоритмы и получить более реалистичный прогноз результатов при запуске цепи на оборудовании. IonQ предоставляет симуляцию модели шума, которая вводит шум в схему с помощью "шумового отпечатка пальца", относящегося к target оборудованию. Дополнительные сведения см. в статье "Начало работы с моделированием аппаратной модели шума".

Параметры модели шума

Имя параметра Значения Описание
noise model, seed Включает моделирование модели шума
model ideal, aria-1 Задает модель шума для target оборудования.
  • ideal - Шум не вводится в канал. Это то же самое, что и не включение имитации шума.
  • aria-1 — использует модель шума для квантового компьютера IonQ Aria.
seed Целое число от 1 до $2^{31}$ (2,147 483 648) Позволяет указать начальное значение для псевдо-случайного шума и выборки выстрелов, создавая воспроизводимые шумные результаты. Если параметр не указан, создается случайное seed значение.

Осведомленность о снимках

Имитация шумовой модели с учётом шотов, т. е. она выполняет выборку измерений из выходного состояния на основе количества предоставленных шотов. В Azure Quantum параметр shots отправляется вместе с заданием и необходим для моделей шума aria-1. Если значение не shot указано, используется значение 1000 по умолчанию. ideal Если используется модель шума, shots параметр игнорируется.

Емкость Кубита

ideal Хотя модель шума позволяет имитировать до 29 кубитов с квантовым симулятором IonQ, модели шума, специфичные для аппаратного обеспечения, ограничены фактической емкостью оборудования target, составляющей 25 кубитов для модели шума aria-1.

Включение моделирования модели шума

В Azure Quantum моделирование модели шума можно включить или отключить для заданий, отправленных с помощью Q# или qiskit.

Чтобы включить имитацию шумовой модели, добавьте необязательный параметр для target компьютера, например:


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

Примечание.

Если вы также используете устранение ошибок IonQ, эти параметры можно включить здесь, например:

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

Дополнительные сведения см. в разделе об устранении ошибок.

Выполнение задания с имитацией модели шума

Вы можете использовать ту же примерную программу, показанную ранее в устранении ошибок, и добавить или заменить конфигурацию модели шума в option_params;

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

Затем передайте необязательные параметры при отправке задания:

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

В Qiskit, перед отправкой задания, необязательные параметры передаются в конфигурацию машины:

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

Цены

Чтобы просмотреть план выставления счетов для IonQ, перейдите на страницу цен для Azure Quantum.

Ограничения и квоты

Квоты IonQ отслеживаются на основе единицы использования QPU — qubit-gate-shot (QGS). Плата за использование ресурсов взимается путем вычета кредитов из вашей учетной записи.

Каждая квантовая программа состоит из $N$ квантовых логических вентилей с одним или несколькими кубитами и выполняется для определенного числа запусков. Количество gate-shots вычисляется по следующей формуле:

$$ QGS = N · C $$

где:

  • $N$ — это количество задействованных одиночных и двухкубитных вентилей.
  • $C$ — это количество запрошенных запусков выполнения

Квоты зависят от выбора плана. Их можно увеличить, отправив запрос в службу поддержки. Чтобы просмотреть текущие ограничения и квоты, перейдите в раздел "Операции " и выберите колонку "Квоты " рабочей области на портале Azure. Дополнительные сведения см. в статье Квоты Azure Quantum.

Состояние IonQ

Для получения информации о задержках обработки заданий QPU компании IonQ см. страницу состояния IonQ.

Лучшие методики и граф подключения IonQ

Чтобы ознакомиться с рекомендованными лучшими практиками для IonQ QPU, смотрите IonQ Best Practices (ionq.com).