Compartir a través de


Proveedor IonQ

Importante

IonQ ha retirado su equipo cuántico Harmony-2 a partir del 1 de septiembre de 2024.

Sugerencia

Al crear un área de trabajo de Azure Quantum, obtendrá automáticamente créditos gratuitos de Azure Quantum de USD500 para cada proveedor de hardware cuántico. Puede usar los créditos de Azure Quantum para enviar los primeros programas cuánticos al hardware cuántico real.

Los equipos cuánticos de IonQ realizan cálculos mediante la manipulación de los estados de energía hiperfinos de iones de iterbio con láseres. Los átomos son los cúbits de la naturaleza: cada cúbit es idéntico dentro de un programa y en los distintos programas. Las operaciones lógicas también se pueden realizar en cualquier par arbitrario de cúbits, lo que permite utilizar programas cuánticos complejos sin las restricciones de la conectividad física. ¿Quiere saber más? Lea la introducción a la tecnología de los equipos cuánticos de iones atrapados de IonQ.

  • Publicador: IonQ
  • Identificador de proveedor: ionq

Los siguientes targets están disponibles en este proveedor:

Nombre Target Id. de Target Número de cúbits Descripción
Simulador cuántico Simulador de IonQ 29 cúbits Simulador idealizado basado en la nube de IonQ. Sin costo.
IonQ Aria 1 ionq.qpu.aria-1 25 cúbits Equipo cuántico de iones atrapados de IonQ Aria.
IonQ Aria 2 ionq.qpu.aria-2 25 cúbits Equipo cuántico de iones atrapados de IonQ Aria.
IonQ Forte ionq.qpu.forte 32 cúbits Equipo cuántico de iones atrapados de IonQ. Disponible solo en versión preliminar privada.

IonQ targets corresponde a un QIR Base perfil. Para más información sobre este target perfil y sus limitaciones, consulte Descripción target de los tipos de perfil en Azure Quantum.

Simulador cuántico

Simulador idealizado acelerado por GPU que admite hasta 29 cúbits, con el mismo conjunto de puertas que IonQ proporciona en su hardware cuántico. Esto hace que sea excelente lugar para realizar trabajos previos antes de ejecutarlos en un equipo cuántico real.

  • Tipo de trabajo: Simulation
  • Formato de datos: ionq.circuit.v1
  • Target IDENTIFICACIÓN: ionq.simulator
  • Target Perfil de ejecución: QIR Base

Equipo cuántico de IonQ Aria

IonQ Aria es el buque insignia de los equipos cuánticos de iones atrapados de IonQ, con un sistema reconfigurable dinámicamente de 25 cúbits. Para obtener más información, consulte IonQ Aria (ionq.com) .

Importante

Debiasing está habilitado en sistemas Aria de forma predeterminada y los trabajos enviados están sujetos a precios basados en desbiasing. Para obtener más información sobre la desbiasing y cómo deshabilitar o habilitar el servicio, consulte Mitigación de errores.

  • Tipo de trabajo: Quantum Program
  • Formato de datos: ionq.circuit.v1
  • Target Identificador: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Target Perfil de ejecución: QIR Base
Nombre de parámetro Type Obligatorio Descripción
shots int No Número de disparos experimentales.

Tiempos del sistema

Medida Duración media del tiempo
T1 10-100 s
T2 1 s
Puerta de un solo cúbit 135 μs
Puerta de dos cúbits 600 μs

Fidelidad del sistema

Operación Fidelidad promedio
Puerta de un solo cúbit 99,95 % (correo no deseado corregido)
Puerta de dos cúbits 99,6 % (no se corrigió spam)
SPAM* 99.61%

* Preparación y medición del estado (SPAM): esta medida determina la precisión con la que un equipo cuántico puede establecer un cúbit en su estado inicial y, a continuación, medir el resultado al final.

IonQ Aria está disponible a través del plan de créditos de Azure Quantum y un plan de facturación independiente. Para obtener más información, consulte los precios de Azure Quantum.

Equipo cuántico de IonQ Forte

IonQ Forte es el equipo cuántico de iones atrapados de rendimiento más alto de IonQ, disponible comercialmente. Con un sistema configurable por software de 32 cúbits, IonQ Forte está disponible en versión preliminar privada en Azure Quantum. Para obtener más información, consulte IonQ Forte (ionq.com).

Importante

Debiasing está habilitado en el sistema Forte de forma predeterminada y los trabajos enviados están sujetos a precios basados en desbiasing. Para obtener más información sobre la desbiasing y cómo deshabilitar o habilitar el servicio, consulte Mitigación de errores.

  • Tipo de trabajo: Quantum Program
  • Formato de datos: ionq.circuit.v1
  • Target IDENTIFICACIÓN: ionq.qpu.forte
  • Target Perfil de ejecución: QIR Base
Nombre de parámetro Type Obligatorio Descripción
shots int No Número de disparos experimentales.

Formato de entrada

En Q#, la salida de una medida cuántica es un valor de tipo Result, que solo puede tomar los valores Zero y One. Cuando se define una operación de Q#, solo se puede enviar al hardware ionQ si el tipo de valor devuelto es una colección de Results, es decir, si la salida de la operación es el resultado de una medida cuántica. La razón de esto es que IonQ crea un histograma a partir de los valores devueltos, por lo que restringe el tipo de valor devuelto para Result simplificar la creación de este histograma.

IonQ targets corresponde a .QIR Base profile Este perfil no puede ejecutar operaciones cuánticas que requieran el uso de los resultados de las mediciones de cúbits para controlar el flujo del programa.

Formato de salida

Al enviar un programa cuántico al simulador de IonQ, devuelve el histograma creado por las medidas. El simulador de IonQ no muestra la distribución de probabilidad creada por un programa cuántico, sino que devuelve la distribución escalada al número de capturas. Esto es lo más evidente cuando se envía un único circuito de captura. Verá varios resultados de medición en el histograma para una toma. Este comportamiento es inherente al simulador de IonQ, mientras que IonQ QPU ejecuta realmente el programa y agrega los resultados.

Funcionalidades adicionales

Aquí se enumeran las funcionalidades adicionales compatibles con el hardware de IonQ.

Funcionalidad Descripción
Mitigación de errores Uso de la desbiasing para minimizar el ruido y maximizar el rendimiento algorítmico en el hardware ionQ
Compatibilidad con puertas nativas Definir y ejecutar circuitos directamente en puertas nativas de hardware de IonQ
Simulación del modelo de ruido Simulación del perfil de ruido que encontrarán los circuitos al ejecutarlos en hardware de IonQ diferente.

Los usuarios pueden aprovechar estas funcionalidades adicionales a través de parámetros de paso a través en los proveedores de Q# y Qiskit de Azure Quantum.

Mitigación de errores

IonQ proporciona la opción de habilitar la mitigación de errores cuánticos al enviar trabajos al hardware de IonQ. La mitigación de errores es un proceso de nivel de compilador que ejecuta y ejecuta varias variaciones simétricas de un circuito y, a continuación, agrega los resultados a la vez que mitiga el impacto de los errores de hardware y la decoherencia de cúbits. A diferencia de las técnicas de corrección de errores cuánticos, la mitigación de errores no requiere una gran sobrecarga de puertas y cúbits.

Debiasing es el proceso de crear ligeras variaciones de un circuito determinado que deben ser idénticas en una máquina sin ruido ideal, utilizando técnicas como diferentes asignaciones de cúbits, descomposición de puertas y soluciones de pulso, y luego ejecutando esas variaciones.

El afilado y el promedio son opciones para agregar los resultados de las variaciones. El promedio se basa igualmente en todos los resultados de variación, mientras que sharpening filtra los resultados erróneos y puede ser más confiable para determinados tipos de algoritmos.

Para obtener más información, consulte Debiasing y Sharpening. Para obtener los precios de mitigación de errores, consulte Precios de IonQ.

Habilitación de la mitigación de errores

Nota:

Debiasing está habilitado de forma predeterminada en los sistemas Aria y Forte.

En Azure Quantum, la mitigación de errores se puede habilitar o deshabilitar para los trabajos enviados con Q# o con Qiskit.

Para habilitar la mitigación de errores, agregue un parámetro opcional para la target máquina:


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

Para deshabilitar la mitigación de errores, establezca el parámetro Falseen :


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

Nota:

Si también usa la simulación del modelo de ruido de IonQ, estos parámetros se pueden incluir aquí, por ejemplo:

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

Para obtener más información, consulte Simulación de modelos de ruido.

Ejecución de un trabajo en Azure Quantum con mitigación de errores

En este ejemplo se usa un generador de números aleatorios simple.

En primer lugar, importe los paquetes necesarios e inicie el perfil base:

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

A continuación, defina la función .

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

Conéctese a Azure Quantum, seleccione la target máquina y configure los parámetros de ruido para el emulador:

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

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

Especificar la error-mitigation configuración


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

Pase la configuración de mitigación de errores al enviar el trabajo:

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

En Qiskit, pasará los parámetros opcionales a la configuración de la target máquina antes de enviar el trabajo:

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

Nota:

Si no pasa el error-mitigation parámetro , la target máquina usará su configuración predeterminada, que está habilitada para los sistemas Aria y Forte.

Compatibilidad y uso de puertas nativas

De manera predeterminada, IonQ permite especificar un circuito cuántico mediante un conjunto abstracto de puertas cuánticas, llamado qis, que permite flexibilidad y portabilidad al escribir un algoritmo sin preocuparse por la optimización del hardware.

Sin embargo, en algunos casos de uso avanzados, es posible que desee definir un circuito directamente en puertas nativas para estar más cerca del hardware y omitir la optimización. El conjunto de puertas nativas es el conjunto de puertas cuánticas que se ejecutan físicamente en el procesador cuántico y se asignan al circuito como parte de la ejecución.

Para más información, consulte Introducción a las puertas nativas (ionq.com).

Para usar el conjunto de puertas nativas al enviar trabajos de Qiskit a Azure Quantum, especifique el parámetro gateset al inicializar el back-end como en el ejemplo siguiente:

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu.aria-1", gateset="native")
Nombre de parámetro Type Obligatorio Description
gateset string No Especifica el conjunto de puertas que se va a usar para definir un circuito. El valor qis corresponde a las puertas abstractas (comportamiento predeterminado) y native a las puertas nativas del hardware de IonQ.

Para obtener más información sobre los trabajos de Qiskit, consulte Envío de un circuito con Qiskit.

Simulación del modelo de ruido

Incluso lo mejor del hardware cuántico actual tiene ruido inherente y conocer las características de ruido del target sistema puede ayudarle a refinar los algoritmos y obtener una predicción más realista de los resultados al ejecutar el circuito en hardware. IonQ proporciona una simulación de modelo de ruido que introduce ruido en el circuito mediante una "huella digital de ruido" específica del target hardware. Para obtener más información, consulte Introducción a la simulación de modelo de ruido de hardware.

Parámetros del modelo de ruido

Nombre de parámetro Valores Descripción
noise model, seed Habilita la simulación del modelo de ruido
model ideal, aria-1 Especifica el modelo de ruido para el target hardware.
  • ideal - No se introduce ningún ruido en el circuito. Esto es lo mismo que no habilitar la simulación de ruido.
  • aria-1 : usa el modelo de ruido para el equipo cuántico de IonQ Aria.
seed Entero entre 1 y $2^{31}$ (2,147,483,648) Permite especificar un valor de inicialización para el ruido pseudoaleato y el muestreo de disparos, creando resultados ruidosos reproducibles. Si no se especifica el parámetro , se crea un valor aleatorio seed .

Reconocimiento de disparos

La simulación del modelo de ruido es consciente de la toma; es decir, muestra las medidas del estado de salida en función del número de tomas proporcionadas. En Azure Quantum, el shots parámetro se envía con el trabajo y es necesario para aria-1 los modelos de ruido. Si no se especifica ningún shot valor, se usa un valor predeterminado de 1000 . Si se usa el ideal modelo de ruido, se omite el shots parámetro .

Capacidad de cúbits

Aunque el ideal modelo de ruido permite simular hasta 29 cúbits con el simulador cuántico de IonQ, los modelos de ruido específicos del hardware se limitan a la capacidad de cúbit real del target hardware, que es de 25 cúbits para el aria-1 modelo de ruido.

Habilitación de la simulación del modelo de ruido

En Azure Quantum, la simulación de modelos de ruido se puede habilitar o deshabilitar para los trabajos enviados con Q# o con Qiskit.

Para habilitar la simulación del modelo de ruido, agregue un parámetro opcional para la target máquina, por ejemplo:


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

Nota:

Si también usa la mitigación de errores de IonQ, estos parámetros se pueden incluir aquí, por ejemplo:

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

Para obtener más información, consulte Mitigación de errores.

Ejecución de un trabajo con simulación de modelo de ruido

Puede usar el mismo programa de ejemplo mostrado anteriormente en la mitigación de errores y agregar o reemplazar la configuración del modelo de ruido en option_params;

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

A continuación, pase los parámetros opcionales al enviar el trabajo:

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

En Qiskit, pasará los parámetros opcionales a la configuración de la target máquina antes de enviar el trabajo:

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

Precios

Para ver el plan de facturación de IonQ, consulte Precios de Azure Quantum.

Límites y cuotas

Se realiza un seguimiento de las cuotas de IonQ en función de la unidad de uso de QPU, que es la captura de puerta de cúbit (QGS). El uso de los recursos se acredita en su cuenta.

Cada programa cuántico consta de $N$ puertas lógicas cuánticas de uno o más cúbits, y se ejecuta un número determinado de capturas. El número de capturas de puerta se calcula mediante la fórmula siguiente:

$$ QGS = N · C $$

donde:

  • $N$ es el número de puertas de uno o dos cúbits enviadas
  • $C$ es el número de capturas de ejecución solicitadas

Las cuotas se basan en la selección del plan y se pueden aumentar con una incidencia de soporte técnico. Para ver los límites y cuotas actuales, vaya a la hoja Créditos y cuotas y seleccione la pestaña Cuotas del área de trabajo en Azure Portal. Para más información, consulte Cuotas de Azure Quantum.

Nota:

Si usa un plan de créditos de Azure Quantum y no un plan de facturación, se asigna la información de las cuotas a los créditos asignados. En ese caso, la cuota enumera el número total de créditos que ha recibido.

Estado de IonQ

Para obtener información sobre los retrasos en el procesamiento de trabajos de QPU de IonQ, consulte la página estado de IonQ.

Procedimientos recomendados de IonQ y grafo de conectividad

Para ver los procedimientos recomendados para la QPU de IonQ, consulte Procedimientos recomendados de IonQ (ionq.com).