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 Result
s, 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 False
en :
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.
|
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).