qiskit-ibmq-provider
からの移行ガイド¶
このガイドは、レガシーIBMQプロバイダー(qiskit-ibmq-provider)パッケージからQiskit Runtime(qiskit-ibm-runtime)を使用するようにコードを移行する方法を説明します。このガイドには、レガシーの Runtimeプログラムを新しい構文に移行するための手順が含まれています。しかし、カスタムアップロードされたプログラムを使用する機能は非推奨であるため、これらは代わりにPrimitive を使用するように移行する必要があります。
クラス名と場所の変更¶
以前は qiskit-ibmq-provider
に含まれていたQiskit Runtime関連のクラスは、現在 qiskit-ibm-runtime
の一部になっています。これまで、プロバイダーは qiskit.providers.ibmq.runtime
の名前空間にQiskit Runtimeのためのオブジェクトを格納していました。現在、 プロバイダーは``qiskit_ibm_runtime`` モジュールにあります。
クラスがインポートされるモジュールが変更されました。以下は qiskit.providers.ibmq.runtime
のアクセスパターンの例と、 qiskit_ibm_runtime
の新しい形の表です。
|
|
備考 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
パスのインポート¶
インポート・パスは次のように変更されました。
レガシー
from qiskit import IBMQ
更新
from qiskit_ibm_runtime import QiskitRuntimeService
アカウントの保存およびロード¶
更新されたコードを使用して、アカウントを操作します。
**レガシー - アカウントの保存 **
IBMQ.save_account("<IQX_TOKEN>", overwrite=True)
更新された -アカウントの保存 新しい構文は、IBM CloudまたはIBM Quantum Platform上のQiskit Runtimeの認証情報を受け付けます。アカウントの認証情報を取得するための詳細については、 はじめに を参照してください。
# 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)
更新された - 認証情報を保存する名前 保存した資格情報に名前をつけて、資格情報を読み込むことができるようになりました。
例:
# 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")
**レガシー - アカウントのロード **
IBMQ.load_account()
**** 更新 - アカウントのロード **
新しい構文は、 load_account()
と get_provider()
の機能を1つの文にまとめたものです。入力パラメーターの channel
は省略可能です。複数のアカウントが1つのデバイスに保存されており、 channel
が指定されていない場合、デフォルトは "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")
チャンネルの選択 (プロバイダーの取得)¶
更新されたコードを使用してチャネルを選択します。
レガシー
provider = IBMQ.get_provider(project="my_project", group="my_group", hub="my_hub")
更新
新しい構文は load_account()
と get_provider()
の機能を1つの文に統合したものです。ibm_quantum`` チャネルを使用する場合、 hub
, group
, project
は新しい 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")
バックエンドの取得¶
更新されたコードを使用してバックエンドを表示します。
レガシー
provider = IBMQ.get_provider(hub="h1", group="g1", project="p1")
backend = provider.get_backend("ibm_backend")
更新
# You can specify the instance in service.backend() instead of initializing a new service
backend = service.backend("ibm_backend", instance="h1/g1/p1")