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
- Estimator
- Sampler
- 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.
- 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.
- 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.
- Estimator
- Sampler
default_shots
default_shotsEl número total de shots a usar por Circuit por configuración.
Opciones: Entero >= 0
Predeterminado: None
default_precision
default_precisionLa 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))
dynamical_decoupling
dynamical_decouplingControla la configuración de mitigación de errores por desacoplamiento dinámico.
Documentación de la API de dynamical_decoupling
dynamical_decoupling.enable
dynamical_decoupling.enableOpciones: True, False
Predeterminado: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionOpciones: middle, edges
Predeterminado: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodOpciones: asap, alap
Predeterminado: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeOpciones: XX, XpXm, XY4
Predeterminado: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsOpciones: True, False
Predeterminado: False
environment
environmentDocumentación de la API de environment
environment.callback
environment.callbackFunción invocable que recibe el Job ID y el Job result.
Opciones: None
Predeterminado: None
environment.job_tags
environment.job_tagsLista de etiquetas.
Opciones: None
Predeterminado: None
environment.log_level
environment.log_levelOpciones: DEBUG, INFO, WARNING, ERROR, CRITICAL
Predeterminado: WARNING
environment.private
environment.privateOpciones: True, False
Predeterminado: False
execution
executionDocumentación de la API de execution
execution.init_qubits
execution.init_qubitsSi se deben restablecer los Qubits al estado base para cada shot.
Opciones: True, False
Predeterminado: True
execution.rep_delay
execution.rep_delayEl 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
max_execution_timeOpciones: Número entero de segundos en el rango [1, 10800]
Predeterminado: 10800 (3 horas)
resilience
resilienceOpciones avanzadas de resiliencia para ajustar con precisión la estrategia de resiliencia.
Documentación de la API de resilience
resilience.layer_noise_learning
resilience.layer_noise_learningOpciones para el aprendizaje del ruido por capas.
resilience.layer_noise_learning.layer_pair_depths
resilience.layer_noise_learning.layer_pair_depthsOpciones: 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
resilience.layer_noise_learning.max_layers_to_learnOpciones: None, Entero >= 1
Predeterminado: 4
resilience.layer_noise_learning.num_randomizations
resilience.layer_noise_learning.num_randomizationsOpciones: Entero >= 1
Predeterminado: 32
resilience.layer_noise_learning.shots_per_randomization
resilience.layer_noise_learning.shots_per_randomizationOpciones: Entero >= 1
Predeterminado: 128
resilience.layer_noise_model
resilience.layer_noise_modelOpciones: NoiseLearnerResult, Sequence[LayerError]
Predeterminado: None
resilience.measure_mitigation
resilience.measure_mitigationOpciones: True, False
Predeterminado: True
resilience.measure_noise_learning
resilience.measure_noise_learningOpciones para el aprendizaje del ruido de medición.
Documentación de la API de resilience.measure_noise_learning
resilience.measure_noise_learning.num_randomizations
resilience.measure_noise_learning.num_randomizationsOpciones: Entero >= 1
Predeterminado: 32
resilience.measure_noise_learning.shots_per_randomization
resilience.measure_noise_learning.shots_per_randomizationOpciones: Entero, auto
Predeterminado: auto
resilience.pec_mitigation
resilience.pec_mitigationOpciones: True, False
Predeterminado: False
resilience.pec
resilience.pecOpciones de mitigación por cancelación probabilística de errores.
resilience.pec.max_overhead
resilience.pec.max_overheadOpciones: None, Entero >= 1
Predeterminado: 100
resilience.pec.noise_gain
resilience.pec.noise_gainOpciones: auto, float en el rango [0, 1]
Predeterminado: auto
resilience.zne_mitigation
resilience.zne_mitigationOpciones: True, False
Predeterminado: False
resilience.zne
resilience.zneresilience.zne.amplifier
resilience.zne.amplifierOpciones: gate_folding, gate_folding_front, gate_folding_back, pea
Predeterminado: gate_folding
resilience.zne.extrapolated_noise_factors
resilience.zne.extrapolated_noise_factorsOpciones: Lista de floats
Predeterminado: [0, *noise_factors]
resilience.zne.extrapolator
resilience.zne.extrapolatorOpciones: Uno o más de: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback
Predeterminado: (exponential, linear)
resilience.zne.noise_factors
resilience.zne.noise_factorsOpciones: Lista de floats; cada float >= 1
Predeterminado: (1, 1.5, 2) para PEA, y (1, 3, 5) en caso contrario
resilience_level
resilience_levelCuá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
seed_estimator
seed_estimatorsimulator
simulatorOpciones que se pasan al simular un backend
Documentación de la API de simulator
simulator.basis_gates
simulator.basis_gatesOpciones: 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
simulator.coupling_mapOpciones: 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
simulator.noise_modelOpciones: Qiskit Aer NoiseModel, o su representación
Valor por defecto: None
simulator.seed_simulator
simulator.seed_simulatorOpciones: Entero
Valor por defecto: None
twirling
twirlingOpciones de twirling
Documentación de la API de twirling
twirling.enable_gates
twirling.enable_gatesOpciones: True, False
Valor por defecto: False
twirling.enable_measure
twirling.enable_measureOpciones: True, False
Valor por defecto: True
twirling.num_randomizations
twirling.num_randomizationsOpciones: auto, entero >= 1
Valor por defecto: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationOpciones: auto, entero >= 1
Valor por defecto: auto
twirling.strategy
twirling.strategyOpciones: active, active-circuit, active-accum, all
Valor por defecto: active-accum
experimental
experimentalOpciones experimentales, cuando estén disponibles.
default_shots
default_shotsEl número total de shots a usar por Circuit por configuración.
Opciones: Entero >= 0
Valor por defecto: None
dynamical_decoupling
dynamical_decouplingControla la configuración de mitigación de errores por desacoplamiento dinámico.
Documentación de la API de dynamical_decoupling
dynamical_decoupling.enable
dynamical_decoupling.enableOpciones: True, False
Valor por defecto: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionOpciones: middle, edges
Valor por defecto: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodOpciones: asap, alap
Valor por defecto: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeOpciones: XX, XpXm, XY4
Valor por defecto: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsOpciones: True, False
Valor por defecto: False
environment
environmentDocumentación de la API de environment
environment.job_tags
environment.job_tagsLista de etiquetas.
Opciones: None
Valor por defecto: None
environment.log_level
environment.log_levelOpciones: DEBUG, INFO, WARNING, ERROR, CRITICAL
Valor por defecto: WARNING
environment.private
environment.privateOpciones: True, False
Valor por defecto: False
execution
executionDocumentación de la API de execution
execution.init_qubits
execution.init_qubitsSi se deben restablecer los Qubits al estado base en cada shot.
Opciones: True, False
Valor por defecto: True
execution.rep_delay
execution.rep_delayEl retardo entre una medición y el Circuit cuántico siguiente.
Opciones: Valor dentro del rango proporcionado por backend.rep_delay_range
Valor por defecto: El dado por backend.default_rep_delay
execution.meas_type
execution.meas_typeOpciones: classified, kerneled, avg_kerneled
Valor por defecto: classified
max_execution_time
max_execution_timeOpciones: Número entero de segundos en el rango [1, 10800]
Valor por defecto: 10800 (3 horas)
simulator
simulatorOpciones que se pasan al simular un backend
Documentación de la API de simulator
simulator.basis_gates
simulator.basis_gatesOpciones: 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
simulator.coupling_mapOpciones: 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
simulator.noise_modelOpciones: Qiskit Aer NoiseModel, o su representación
Valor por defecto: None
simulator.seed_simulator
simulator.seed_simulatorOpciones: Entero
Valor por defecto: None
twirling
twirlingOpciones de twirling
twirling Documentación de la API
twirling.enable_gates
twirling.enable_gatesOpciones: True, False
Valor por defecto: False
twirling.enable_measure
twirling.enable_measureOpciones: True, False
Valor por defecto: False
twirling.num_randomizations
twirling.num_randomizationsOpciones: auto, entero >= 1
Valor por defecto: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationOpciones: auto, entero >= 1
Valor por defecto: auto
twirling.strategy
twirling.strategyOpciones: active, active-circuit, active-accum, all
Valor por defecto: active-accum
experimental
experimentalOpciones 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:
- Circuitos dinámicos
- Desacoplamiento dinámico
- Puertas fraccionarias
- ZNE por plegado de puertas
- Gate twirling
- PEA
- PEC
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-runtimev0.42.0 o posterior.
Incompatible con circuitos dinámicos.
Incompatible con:
- Gate twirling
- PEA
- PEC
Compatible con circuitos dinámicos al usar qiskit-ibm-runtime v0.42.0 o posterior.
Incompatible con:
- Circuitos dinámicos
- PEA
- PEC
Puede no funcionar al usar puertas personalizadas.
Incompatible con puertas fraccionarias o con estiramientos.
Otras notas:
- Se puede usar con circuitos dinámicos con puertas no condicionales.
- No funciona con entrelazadores no Clifford.
Incompatible con:
- Circuitos dinámicos
- Puertas fraccionarias
- ZNE por plegado de puertas
- PEC
Incompatible con:
- Circuitos dinámicos
- Puertas fraccionarias
- ZNE por plegado de puertas
- PEA
Próximos pasos
- Encuentra más detalles sobre los métodos de
EstimatorV2en la referencia de la API de Estimator. - Encuentra más detalles sobre los métodos de
SamplerV2en la referencia de la API de Sampler. - Consulta los detalles sobre cómo configurar la supresión de errores y la mitigación de errores.
- Aprende a especificar opciones.