Spanish
Idiomas
English
Japanese
Spanish

Configurar las opciones de las primitivas

Al llamar a las primitivas, puedes pasar opciones, como se muestra en la línea estimator = Estimator(options=options) en el siguiente ejemplo de código:

from qiskit_ibm_runtime import QiskitRuntimeService, Session, Estimator, Options

service = QiskitRuntimeService()
options = Options(optimization_level=1)
# Options class also supports auto-completion.
options.resilience_level = 1
# And are grouped by the category for easy search.
option.execution.shots = 1000

with Session(service=service, backend="ibmq_qasm_simulator"):
    estimator = Estimator(options=options)

También puedes sobrescribir opciones específicas para un trabajo (job) al llamar a run(). En el siguiente ejemplo de código, el trabajo se ejecutará con el nivel de optimización 1 y 4000 iteraciones (en lugar de 1000):

from qiskit.test.reference_circuits import ReferenceCircuits
from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Options

service = QiskitRuntimeService()
backend = service.backend("ibmq_qasm_simulator")
options = Options()
options.optimization_level = 1
option.execution.shots = 1000

sampler = Sampler(backend, options=options)
job = sampler.run(ReferenceCircuits.bell(), shots=4000)

Las opciones más utilizadas son para la supresión y mitigación de errores, que se describen en este tema. Para obtener una lista completa de las opciones disponibles, consulta la Referencia de la API de Opciones.

Descripción general de la supresión y mitigación de errores

Ninguna plataforma de computación es perfecta, y debido a que las computadoras cuánticas son una tecnología tan nueva y compleja, tenemos que encontrar nuevas formas de lidiar con estas imperfecciones. Hay varias causas posibles de errores: “ruido”: perturbaciones en el entorno físico y “errores de bit”, que hacen que cambie el valor o la fase del qubit. IBM crea redundancia en el hardware para garantizar que incluso si se produce un error en algunos qubits, aún se devuelve un resultado preciso. Sin embargo, podemos abordar aún más los errores mediante el uso de técnicas de supresión y mitigación de errores. Estas estrategias hacen uso del procesamiento previo y posterior para mejorar la calidad de los resultados producidos para el circuito de entrada.

  • Supresión de errores: Técnicas que optimizan y transforman tu circuito en el punto de compilación para minimizar los errores. Esta es la técnica de manejo de errores más básica. La supresión de errores generalmente genera una sobrecarga clásica de preprocesamiento en el tiempo de ejecución general.

Las primitivas te permiten emplear técnicas de supresión de errores configurando el nivel de optimización (opción optimization_level) y eligiendo opciones avanzadas de transpilación. Consulta Configurar la supresión de errores para obtener más información.

  • Mitigación de errores: Técnicas que permiten a los usuarios mitigar errores de circuito modelando el ruido del dispositivo en el momento de la ejecución. Esto generalmente da como resultado una sobrecarga de preprocesamiento cuántico relacionada con el entrenamiento del modelo y una sobrecarga de posprocesamiento clásico para mitigar errores en los resultados sin procesar mediante el uso del modelo generado.

Las técnicas de mitigación de errores integradas en las primitivas son opciones de resiliencia avanzadas. Para especificar estas opciones, usa resilience_level al enviar tu trabajo (job). Consulta Configurar mitigación de errores para obtener más detalles.