Spanish
Idiomas
English
Japanese
Spanish

Migrar configuración desde qiskit-ibmq-provider

Esta guía describe cómo migrar el código del paquete del proveedor IBMQ anterior (qiskit-ibmq-provider) para utilizar Qiskit Runtime (qiskit-ibm-runtime). Esta guía incluye instrucciones para migrar programas de runtime anteriores a la nueva sintaxis. Sin embargo, la capacidad de usar programas cargados personalizados está pendiente de obsoletización, por lo que estos deben migrarse para usar primitivas en su lugar.

Cambios en el nombre de Clase y en la ubicación

Las clases relacionadas con Qiskit Runtime que solían estar incluidas en qiskit-ibmq-provider ahora forman parte de qiskit-ibm-runtime. Antes, el proveedor solía llenar el espacio de nombres (namespace) qiskit.providers.ibmq.runtime con objetos para Qiskit Runtime. Estos ahora viven en el módulo qiskit_ibm_runtime.

El módulo desde el que se importan las clases ha cambiado. La siguiente tabla contiene patrones de acceso de ejemplo en qiskit.providers.ibmq.runtime y su nueva forma en qiskit_ibm_runtime:

Table 2 Migrar desde qiskit.providers.ibmq.runtime en qiskit-ibmq-provider a qiskit-ibm-runtime

clase en qiskit-ibmq-provider

clase en qiskit-ibm-runtime

Notas

qiskit.providers.ibmq.runtime.IBMRuntimeService

qiskit_ibm_runtime.QiskitRuntimeService`

La clase IBMRuntimeService se eliminó desde qiskit-ibm-runtime 0.6 y fue reemplazada por la nueva clase en qiskit-ibm-runtime.

qiskit.providers.ibmq.runtime.RuntimeJob

qiskit_ibm_runtime.RuntimeJob

qiskit.providers.ibmq.runtime.RuntimeProgram

qiskit_ibm_runtime.RuntimeProgram

qiskit.providers.ibmq.runtime.UserMessenger

qiskit_ibm_runtime.program.UserMessenger

Observa la nueva ubicación, en qiskit_ibm_runtime.program

qiskit.providers.ibmq.runtime.ProgramBackend

qiskit_ibm_runtime.program.ProgramBackend

Observa la nueva ubicación, en qiskit_ibm_runtime.program

qiskit.providers.ibmq.runtime.ResultDecoder

qiskit_ibm_runtime.program.ResultDecoder

Observa la nueva ubicación, en qiskit_ibm_runtime.program

qiskit.providers.ibmq.runtime.RuntimeEncoder

qiskit_ibm_runtime.RuntimeEncoder

qiskit.providers.ibmq.runtime.RuntimeDecoder

qiskit_ibm_runtime.RuntimeDecoder

qiskit.providers.ibmq.runtime.ParameterNamespace

qiskit_ibm_runtime.ParameterNamespace

qiskit.providers.ibmq.runtime.RuntimeOptions

qiskit_ibm_runtime.RuntimeOptions

Ruta de importación

La ruta de importación ha cambiado de la siguiente manera:

Anterior

from qiskit import IBMQ

Actualizado

from qiskit_ibm_runtime import QiskitRuntimeService

Guardar y cargar cuentas

Utiliza el código actualizado para trabajar con cuentas.

Anterior - Guardar cuentas

IBMQ.save_account("<IQX_TOKEN>", overwrite=True)

Actualizado - Guardar cuentas La nueva sintaxis acepta credenciales para Qiskit Runtime en IBM Cloud o IBM Quantum Platform. Para obtener más información sobre cómo recuperar las credenciales de la cuenta, consulta la guía de primeros pasos.

# IBM cloud channel
QiskitRuntimeService.save_account(channel="ibm_cloud", token="<IBM Cloud API key>", instance="<IBM Cloud CRN>", overwrite=True)

# IBM quantum channel
QiskitRuntimeService.save_account(channel="ibm_quantum", token="<IQP_TOKEN>", overwrite=True)

Actualizado - nombrar las credenciales guardadas Ahora puedes nombrar tus credenciales guardadas y cargarlas por nombre.

Ejemplo:

# Save different accounts for open and premium access

QiskitRuntimeService.save_account(channel="ibm_quantum", token="<IQX_TOKEN>", instance="h1/g1/p1", name="premium")
QiskitRuntimeService.save_account(channel="ibm_quantum", token="<IQX_TOKEN>", instance="h2/g2/p2", name="open")

# Load the "open" credentials

service = QiskitRuntimeService(name="open")

Anterior - Cargar cuentas

IBMQ.load_account()

Actualizado - Cargar cuentas

La nueva sintaxis combina la funcionalidad de load_account() y get_provider() en una sentencia. El parámetro de entrada channel es opcional. Si se han guardado varias cuentas en un dispositivo y no se proporciona ningún channel, el valor predeterminado es "ibm_cloud".

# To access saved credentials for the IBM cloud channel
service = QiskitRuntimeService(channel="ibm_cloud")

# To access saved credentials for the IBM quantum channel
service = QiskitRuntimeService(channel="ibm_quantum")

Selección de canales (obtener un proveedor)

Usa el código actualizado para seleccionar un canal.

Anterior

provider = IBMQ.get_provider(project="my_project", group="my_group", hub="my_hub")

Actualizado

La nueva sintaxis combina la funcionalidad de load_account() y get_provider() en una sentencia. Cuando se utiliza el canal ibm_quantum, el hub, group, y project se especifican a través de la nueva palabra clave instance.

# To access saved credentials for the IBM cloud channel
service = QiskitRuntimeService(channel="ibm_cloud")

# To access saved credentials for the IBM quantum channel and select an instance
service = QiskitRuntimeService(channel="ibm_quantum", instance="my_hub/my_group/my_project")

Obtener el backend

Usa el código actualizado para ver los backends.

Anterior

provider = IBMQ.get_provider(hub="h1", group="g1", project="p1")
backend = provider.get_backend("ibm_backend")

Actualizado

# You can specify the instance in service.backend() instead of initializing a new service
backend = service.backend("ibm_backend", instance="h1/g1/p1")