Saltar al contenido principal

Introducción a las opciones

Puedes pasar opciones a las primitivas para personalizarlas según tus necesidades. Esta sección se enfoca en las opciones de las primitivas de Qiskit Runtime. Si bien la interfaz del método run() de las primitivas es común a todas las implementaciones, sus opciones no lo son. Consulta las referencias de API correspondientes para obtener información sobre las opciones de qiskit.primitives y qiskit_aer.primitives.

Descripción general

Estructura

Al llamar a las primitivas, puedes pasar opciones usando una clase de opciones o un diccionario. Las opciones de uso común, como resilience_level, se encuentran en el primer nivel. Otras opciones se agrupan en distintas categorías, como execution. Consulta la sección Establecer opciones de primitivas para ver todos los detalles.

Valores predeterminados

Si no especificas un valor para una opción, se le asigna el valor especial Unset y se utiliza el valor predeterminado del servidor. Por lo tanto, el valor predeterminado será el mismo independientemente de la versión de tu código.

Las tablas de la sección Resumen de clases de opciones listan los valores predeterminados.

Establecer opciones

Las opciones pueden definirse antes de construir una primitiva y pasarse a ella, que hace una copia de las mismas. Esto puede hacerse ya sea como un diccionario anidado o usando las clases de opciones. Además, una vez construida la primitiva, sus opciones pueden modificarse. Usa el flujo de trabajo que mejor se adapte a tu aplicación. Consulta Especificar opciones para ver todos los detalles.

Resumen de clases de opciones

  • Desacoplamiento dinámico: Opciones para el desacoplamiento dinámico.
  • Entorno: Opciones del entorno de ejecución, como el nivel de registro a establecer y las etiquetas de trabajo a añadir.
  • Ejecución: Opciones de ejecución de primitivas, incluyendo si inicializar los Qubits y el retardo de repetición.
  • Resiliencia: Opciones avanzadas para configurar métodos de mitigación de errores como la mitigación de errores de medición, ZNE y PEC.
  • Simulador: Opciones del simulador, como las gates base, la semilla del simulador y el mapa de acoplamiento. Solo aplica al modo de prueba local.
  • Twirling: Opciones de twirling, como si aplicar twirling a gates de dos Qubits y el número de shots a ejecutar para cada muestra aleatoria.

Opciones disponibles

La siguiente tabla documenta las opciones de la versión más reciente de qiskit-ibm-runtime. Para ver versiones anteriores de las opciones, visita la referencia de API de qiskit-ibm-runtime y selecciona una versión anterior.

default_shots

El número total de shots a usar por Circuit por configuración.

Opciones: Entero >= 0

Predeterminado: None

Documentación de la API de default_shots

default_precision

La precisión predeterminada a usar para cualquier PUB o llamada a run() que no especifique una.

Opciones: Float > 0

Predeterminado: 0.015625 (1 / sqrt(4096))

Documentación de la API de default_precision

dynamical_decoupling

Controla la configuración de mitigación de errores por desacoplamiento dinámico.

Documentación de la API de dynamical_decoupling

dynamical_decoupling.enable

Opciones: True, False

Predeterminado: False

dynamical_decoupling.extra_slack_distribution

Opciones: middle, edges

Predeterminado: middle

dynamical_decoupling.scheduling_method

Opciones: asap, alap Predeterminado: alap

dynamical_decoupling.sequence_type

Opciones: XX, XpXm, XY4 Predeterminado: XX

dynamical_decoupling.skip_reset_qubits

Opciones: True, False Predeterminado: False

environment

Documentación de la API de environment

environment.callback

Función invocable que recibe el Job ID y el Job result.

Opciones: None

Predeterminado: None

environment.job_tags

Lista de etiquetas.

Opciones: None

Predeterminado: None

environment.log_level

Opciones: DEBUG, INFO, WARNING, ERROR, CRITICAL

Predeterminado: WARNING

environment.private

Opciones: True, False

Predeterminado: False

execution

Documentación de la API de execution

execution.init_qubits

Si se deben restablecer los Qubits al estado base para cada shot.

Opciones: True, False

Predeterminado: True

execution.rep_delay

El retardo entre una medición y el Circuit cuántico siguiente.

Opciones: Valor en el rango proporcionado por backend.rep_delay_range

Predeterminado: Dado por backend.default_rep_delay

max_execution_time

Opciones: Número entero de segundos en el rango [1, 10800]

Predeterminado: 10800 (3 horas)

Documentación de la API de max_execution_time

resilience

Opciones avanzadas de resiliencia para ajustar con precisión la estrategia de resiliencia.

Documentación de la API de resilience

resilience.layer_noise_learning

Opciones para el aprendizaje del ruido por capas.

Documentación de la API de resilience.layer_noise_learning

resilience.layer_noise_learning.layer_pair_depths

Opciones: list[int] de 2 a 10 valores en el rango [0, 200]

Predeterminado: (0, 1, 2, 4, 16, 32)

resilience.layer_noise_learning.max_layers_to_learn

Opciones: None, Entero >= 1

Predeterminado: 4

resilience.layer_noise_learning.num_randomizations

Opciones: Entero >= 1

Predeterminado: 32

resilience.layer_noise_learning.shots_per_randomization

Opciones: Entero >= 1

Predeterminado: 128

resilience.layer_noise_model

Opciones: NoiseLearnerResult, Sequence[LayerError]

Predeterminado: None

resilience.measure_mitigation

Opciones: True, False

Predeterminado: True

resilience.measure_noise_learning

Opciones para el aprendizaje del ruido de medición.

Documentación de la API de resilience.measure_noise_learning

resilience.measure_noise_learning.num_randomizations

Opciones: Entero >= 1

Predeterminado: 32

resilience.measure_noise_learning.shots_per_randomization

Opciones: Entero, auto

Predeterminado: auto

resilience.pec_mitigation

Opciones: True, False

Predeterminado: False

resilience.pec

Opciones de mitigación por cancelación probabilística de errores.

Documentación de la API de resilience.pec

resilience.pec.max_overhead

Opciones: None, Entero >= 1

Predeterminado: 100

resilience.pec.noise_gain

Opciones: auto, float en el rango [0, 1]

Predeterminado: auto

resilience.zne_mitigation

Opciones: True, False

Predeterminado: False

resilience.zne

resilience.zne.amplifier

Opciones: gate_folding, gate_folding_front, gate_folding_back, pea

Predeterminado: gate_folding

resilience.zne.extrapolated_noise_factors

Opciones: Lista de floats

Predeterminado: [0, *noise_factors]

resilience.zne.extrapolator

Opciones: Uno o más de: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback

Predeterminado: (exponential, linear)

resilience.zne.noise_factors

Opciones: Lista de floats; cada float >= 1

Predeterminado: (1, 1.5, 2) para PEA, y (1, 3, 5) en caso contrario

resilience_level

Cuánta resiliencia aplicar frente a errores. Los niveles más altos generan resultados más precisos a costa de tiempos de procesamiento más largos.

Opciones: 0, 1, 2

Valor por defecto: 1

Documentación de la API de resilience_level

seed_estimator

Opciones: Entero

Valor por defecto: None

seed_estimator

simulator

Opciones que se pasan al simular un backend

Documentación de la API de simulator

simulator.basis_gates

Opciones: Lista de nombres de puertas base a las que expandir

Valor por defecto: El conjunto de todas las puertas base compatibles con el simulador Qiskit Aer

simulator.coupling_map

Opciones: Lista de interacciones dirigidas entre dos Qubits

Valor por defecto: None, lo que implica que no hay restricciones de conectividad (conectividad total).

simulator.noise_model

Opciones: Qiskit Aer NoiseModel, o su representación

Valor por defecto: None

simulator.seed_simulator

Opciones: Entero

Valor por defecto: None

twirling

Opciones de twirling

Documentación de la API de twirling

twirling.enable_gates

Opciones: True, False

Valor por defecto: False

twirling.enable_measure

Opciones: True, False

Valor por defecto: True

twirling.num_randomizations

Opciones: auto, entero >= 1

Valor por defecto: auto

twirling.shots_per_randomization

Opciones: auto, entero >= 1

Valor por defecto: auto

twirling.strategy

Opciones: active, active-circuit, active-accum, all

Valor por defecto: active-accum

experimental

Opciones experimentales, cuando estén disponibles.

Compatibilidad de características

Debido a las diferencias en el proceso de compilación del dispositivo, ciertas características de runtime no pueden usarse juntas en un mismo trabajo. Haz clic en la pestaña correspondiente para ver la lista de características incompatibles con la característica seleccionada:

Incompatible con:

  • ZNE por plegado de puertas
  • PEA
  • PEC
  • Desacoplamiento dinámico

Otras notas:

  • Se puede usar con gate twirling para puertas no condicionales.
  • Compatible con puertas fraccionarias al usar qiskit-ibm-runtime v0.42.0 o posterior.

Próximos pasos

Recomendaciones