QiskitRuntimeService
class QiskitRuntimeService(*args, **kwargs)
ベース: object
Qiskit Runtime サービスと対話するためのクラス。
推奨される用途
-
直接インスタンス化:
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService( channel="ibm_quantum_platform", # optional token="API_KEY", instance="CRN" # recommended ) -
デフォルトアカウントの保存
from qiskit_ibm_runtime import QiskitRuntimeService QiskitRuntimeService.save_account( token="API_KEY", instance="CRN", set_as_default = True ) service = QiskitRuntimeService()
非ローカルチャネルへのサービス認証に最低限必要な情報は、 token。 local チャンネルは認証を必要としない。 非ローカル・チャンネルの場合、APIコールを最小限に抑えるため、常に関連する instance 。 instance が定義されていない場合、サービスは region、 plans_preference、 tags でフィルタリングされた、アカウント内でアクセス可能なすべてのインスタンスを取得する。 plans_preference が設定されていない場合、無料インスタンスとトライアルインスタンスが有料インスタンスよりも優先されます。
複数のインスタンスを使用する場合、 QiskitRuntimeService システムが内部的に、その時点でどのインスタンスがアクティブであるかを管理します。 、 backend() backends()、、 job() および jobs() といったメソッドは、アクティブなインスタンスを変更する結果となる可能性があります。 どのインスタンスがアクティブかを確認するには、この active_instance() メソッドを使用することをお勧めします。あるいは、よりきめ細かな制御を行うために、インスタンスごとに個別の QiskitRuntimeService オブジェクトを使用することもできます。
また、1つのAPIトークンにつき1つのアカウントしか使用できないことに注意してください。 APIトークンは、作成されたアカウントにリンクされています。 複数のアカウントを使用する場合は、複数のAPIトークンを作成する必要があります。
(a)インスタンス生成時に明示的な token が提供されなかった場合、または(b)明示的な token がサービスコンストラクタに提供された場合でも、 name が指定された場合、サービスはファイルからアカウントをロードしようとします。 アカウントは以下の基準に基づいて選択される:
-
filenameがfilename指定された場合、アカウントの詳細は から読み込まれます。そうでない場合は、デフォルトの設定ファイルから読み込まれます。
-
が
name指定された場合、対応する口座情報がproxies``verify``private_endpoint``url_resolver``url``plans_preference``region``instance``token``channel設定ファイルには、、、、、、、および高度な設定パラメータである、、、、が含まれます。instance重要な注意点 :インスタンス化時に明示instance的に指定された値は、読み込まれた値を上書きします。 -
が指定されていない
name場合:が指定されている場合channel、サービスは設定ファイルから、そのチャンネルに関連付けられているデフォルトのアカウント。
set_as_default=Trueそうでない場合、withを使用して呼び出したsave_account()際に定義された、全体的なデフォルトアカウントが使用されます。
パラメーター
- channel – サービスプラットフォームを識別する文字列。 これはデフォルトで に
ibm_quantum_platform設定されていますが、さらに や もibm_cloud値としてlocal指定できます。ibm_quantum_platform``ibm_cloudこれはレガシーオプションであり、ibm\_quantum\_platform\と同じパスを指します。推奨される値はibm\_quantum\_platform\です。これが選択された場合local、ローカルテストモードが使用され、プリミティブクエリはローカルシミュレータ上で実行されます。 詳細については、 Qiskit Runtime のローカルテストモードに関するドキュメントをご確認ください。 非ローカルモードの場合、このチャネルはデフォルトのAPI値( URL )を解決するために使用されます。ibm_cloudこれは旧 IBM Cloud プラットフォームの識別子であり、その URL へのアクセスは新しいibm_quantum_platformアドレスにリダイレクトされます。 - token – IBM Cloud のAPIキー。 IQP認証を行うには、APIキーの入力が必要です。 明示的に指定されていない場合、このAPIキーについてはデフォルトの保存済みアカウントから取得されます。
- URL – 基本API URL.
ibm_cloud``ibm_quantum_platformIBM Quantum Platform にアクセスする非ローカルチャネル(例:、)に対しては、デフォルトでhttps://cloud.ibm.comが設定されます。この URL はurl_resolver、リクエストを正しいサービスエントリポイントにルーティングするために によって処理されます。url_resolver``urlカスタムを指定する場合は、それに対応するも指定する必要があります。https://quantum.cloud.ibm.com/api/v[x]デフォルトのリゾルバーは、ベースの URL を に書き換えます。 - filename – アカウントが作成されるファイルのフルパス。 デフォルト: _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
- name – ファイルから読み込むアカウント名。
- インスタンス – 使用するサービスインスタンス。
ibm_quantum_platformおよび についてはibm_cloud、これはクラウドリソース名( CRN )またはサービス名です。 設定されている場合、サービスのインスタンス化に使用するインスタンスが指定されます。設定されていない場合、サービスは指定されたフィルタリング条件に従って、アカウント内でアクセス可能なすべてのインスタンスを取得します。 「instance not set」という警告を表示せずに、自動選択を明示的に要求するには、このオプションを指定してください"auto"。 この値は、アカウントファイルに保存することもできるためsave_account()、インスタンス化されるたびに自動的に反映されます。 - プロキシ – プロキシの設定。
username_ntlmサポートされているオプションキーは、urls(プロトコルまたはプロトコルとホストをプロキシの URL にマッピングする辞書。詳細は https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies を参照)、、password_ntlm(NTLMユーザー認証を有効にするためのユーザー名とパスワード) です - 検証 – サーバーの TLS 証明書を検証するかどうか。
- private_endpoint – プライベートAPI URL に接続します。
- url_resolver – 実行時の URL を解決するために使用される関数。 指定がない場合、デフォルトのリゾルバーを使用して、さまざまなサービスエンドポイントにアクセスします。
- 領域 – インスタンスの自動選択に関する領域設定を指定します。 が
instance指定されている場合、この引数は無視されます。eu-de有効な値は または ですus-east。 インスタンスが指定されていない場合、このリージョンのインスタンスが優先的に使用されます。 - plans_preference – インスタンスの自動選択のために、優先度順に並べられたアカウントプラン名のリスト。 が
instance指定されている場合、この引数は無視されます。 指定されたプラン名のインスタンスのみが対象となります。 たとえば、プレミアムアカウントの使用を避けたい場合は、引"open"数を指定するだけで、オープンプランのインスタンスのみを使用するように設定できます。 許容される値には、以下が含まれます(ただし、これらに限定されません):open,premium,flex,on-prem,pay-as-you-go。 - タグ – 自動インスタンス選択のために、利用可能なインスタンスを絞り込むタグのリストを設定します。 が
instance指定されている場合、この引数は無視されます。
戻り値
ローカルチャネルが設定されている場合の QiskitRuntimeLocalService または QiskitRuntimeService のインスタンス。
レイズ
IBMInputValueError - 入力が無効な場合
QiskitRuntimeService インスタンスを作成します。
属性
channel
使用されているチャンネルタイプを返す。
戻り値
使用するチャンネルタイプ。
方法
active_account
active_account()
セッションで現在使用中の IBM Quantum アカウントを返します。
戻り値
現在セッション中のアカウントに関する情報を持つ辞書。
戻りの型
[d] ictstr, str | None
active_instance
backend
backend(name, instance=None, use_fractional_gates=False, calibration_id=None)
指定したフィルタリングにマッチする単一のバックエンドを返します。
なお、バックエンドの可用性は、回路の提出時にのみ確認される点にご注意ください。 バックエンドの状態を事前に確認するには、バックエンドオブジェクトの メソッド status() を使用します:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend()
status = backend.status()
assert status.operational and status.status_msg == "active"パラメーター
- name (str) – バックエンドの名前。
- instance (str | None) – IBM Cloud アカウントCRNを指定する。
- use_fractional_gates (bool | None) – バックエンドが小数点以下のゲートを含めることを許可するには、True に設定します。 制限事項については、「フラクショナルゲートを使用すべきでない場合」 を参照してください。
- calibration_id (str | None) – バックエンドをインスタンス化する際に使用するキャリブレーション ID。
戻り値
フィルタリングに一致するバックエンド。
レイズ
- QiskitBackendNotFoundError - バックエンドが見つからなかった場合
- IBMInputValueError – フラクショナルゲートが要求されたが、バックエンドでサポートされていない場合。
戻りの型
バックエンド
backends
backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, *, use_fractional_gates=False, calibration_id=None, **kwargs)
このアカウントでアクセス可能なすべてのバックエンドを返します。
パラメーター
-
name (str | None) – フィルタリングするバックエンド名。
-
min_num_qubits (int | None) – バックエンドが持つべき最小の量子ビット数。
-
instance (str | None) – IBM Cloud アカウント CRN
-
dynamic_circuits (bool | None) – バックエンドがダイナミックサーキットをサポートしているかどうかでフィルタリングする。
-
filters (Callable[[ibm_backend.IBMBackend], bool] | None) –
ラムダ関数など、より複雑なフィルター。 例:
QiskitRuntimeService.backends( filters=lambda backend: ( (status := backend.status()).operational and status.status_msg == "active" ) )正常に動作しており、アクティブなバックエンドのみを返します。
-
use_fractional_gates (bool | None) – バックエンドが小数ゲートを含むようにするにはTrueを設定する。 我々のバックエンドは現在、ダイナミック回路と分数ゲートを同時にサポートしている。 ダイナミックサーキット機能(例:
if_else)を使用する際、このフラグを無効にする必要はなくなった あなたのアルゴリズムで。 このフラグがTrueに設定されている場合、制御フロー命令はバックエンドから削除されない。Noneの場合、分数ゲートとコントロールフロー演算の両方がバックエンドに含まれる。 -
calibration_id (str | None) – バックエンドをインスタンス化する際に使用するキャリブレーション ID。 較正IDはバックエンドごとに定義されるため、単一のバックエンドを選択する場合にのみ使用してください。
-
** kwargs* (Any* )
バックエンドの設定やステータスの属性に特定の値を要求する単純なフィルタです。 例:
# Get the operational real backends QiskitRuntimeService.backends(simulator=False, operational=True) # Get the backends with at least 127 qubits QiskitRuntimeService.backends(min_num_qubits=127) # Get the backends that support OpenPulse QiskitRuntimeService.backends(open_pulse=True)バックエンド属性の完全なリストについては、 IBMBackend クラスのドキュメントを参照のこと
戻り値
フィルタにマッチする利用可能なバックエンドのリスト。
レイズ
- IBMInputValueError - 入力が無効な場合
- QiskitBackendNotFoundError - バックエンドがどのインスタンスにもない場合。
戻りの型
リスト[ ibm_backend.IBMBackend ]
delete_account
static delete_account(filename=None, name=None, channel=None)
保存したアカウントをディスクから削除する。
パラメーター
- filename (str | None) – アカウントを削除するファイル名。
- name (str | None) – 削除する保存アカウントの名前。
- channel (ChannelType | None) – 削除するデフォルトアカウントのチャネルタイプ。 アカウント名が指定されている場合は無視されます。
戻り値
アカウントが削除された場合は真。 アカウントが見つからなかった場合は偽。
戻りの型
ブール値
delete_job
delete_job(job_id)
ランタイムジョブを削除する。
この操作は元に戻せませんのでご注意ください。
パラメーター
job_id (str) – 削除するジョブのID。
レイズ
- RuntimeJobNotFound – その仕事は存在しません。
- IBMRuntimeError – このメソッドはサポートされていません。
戻りの型
なし
instances
instances()
アクティブなアカウントで使用可能なインスタンスのリストを返します。
各インスタンスに対して「crn」、「plan」、「name」というキーを持つ一連の辞書を含むリストを返す。
戻り値
アクティブなアカウントで利用可能なインスタンスのリスト。
戻りの型
Sequence[ [dic] tstr, Any]
job
job(job_id)
ランタイム・ジョブを取得する。
パラメーター
job_id (str) – 求人ID
戻り値
ランタイム・ジョブが取得された。
レイズ
- RuntimeJobNotFound - もしその仕事が存在しなければ
- IBMRuntimeError - リクエストが失敗した場合。
戻りの型
jobs
jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)
オプションのフィルタリングに従って、すべてのランタイム・ジョブを取得する。
パラメーター
- limit (int | None) – 検索するジョブ数。
None制限なしという意味だ。 - skip (int) – ジョブ検索の開始インデックス。
- backend_name (str | None) – ジョブを取得するバックエンドの名前。
- pending (bool | None) – ジョブの保留状態によるフィルタリング。
Trueの場合、'QUEUED' と 'RUNNING' ジョブが含まれる。Falseの場合、'DONE'、'CANCELLED'、'ERROR' のジョブが含まれる。 - program_id (str | None) – 番組IDで絞り込む。
- instance (str | None) – IBM Cloud インスタンス crn によるフィルタリング。
- job_tags (list[str] | None) – ジョブに割り当てられたタグでフィルタリングする。 一致した求人はすべてのタグに関連付けられています。
- session_id (str | None) – セッションIDでフィルタリングする。 セッション内のすべてのジョブは、ジョブ作成日の古い順に返されます。
- created_after (datetime | None) – 指定された開始日を現地時間でフィルタリングする。 これは、作成日がこのローカル日時より後(以上)のジョブを検索するために使用されます。
- created_before (datetime | None) – 指定された終了日を現地時間でフィルタリングする。 これは、作成日がこのローカル日時より前(以下)のジョブを検索するために使用されます。
- descending (bool) –
Trueの場合、制限に達するまで、ジョブの作成日の降順(つまり新しい順)でジョブを返す。
戻り値
ランタイム・ジョブのリスト。
レイズ
IBMInputValueError - 入力値が無効な場合。
戻りの型
リスト[ RuntimeJobV2 ]
least_busy
least_busy(min_num_qubits=None, instance=None, filters=None, use_fractional_gates=False, **kwargs)
最もビジーでないバックエンドを返す。
パラメーター
-
min_num_qubits (int | None) – バックエンドが持つべき最小の量子ビット数。
-
instance (str | None) – IBM Cloud アカウント CRN.
-
filters (Callable[[ibm_backend.IBMBackend], bool] | None) –
フィルタは
backends()メソッドのように定義できます。 5量子ビットで動作するバックエンドの例:QiskitRuntimeService.least_busy(n_qubits=5, operational=True) -
use_fractional_gates (bool | None) –
Trueこの場合、小数ゲートを含むバックエンドのみが考慮され、返されるバックエンドには小数ゲートが含まれます。 制限事項については、「フラクショナルゲートを使用すべきでない場合」 を参照してください。 -
kwargs (Any) – バックエンドクエリに渡される追加の引数。
戻り値
保留中のジョブの数が最も少ないバックエンド。
レイズ
QiskitBackendNotFoundError - 条件に合うバックエンドがない場合
戻りの型
save_account
static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, set_as_default=None, private_endpoint=False, region=None, plans_preference=None, tags=None)
将来使用するために、アカウントをディスクに保存します。
パラメーター
- token (str | None) – IBM Cloud APIキー
- url (str | None) – API URL。 デフォルト https://cloud.ibm.com.
- instance (str | None) – これは、 CRN またはサービス名を指定するためのオプションのパラメータです。 設定された場合、サービスのインスタンス化におけるデフォルトのインスタンスが指定されます。設定されていない場合、サービスはアカウント内でアクセス可能なすべてのインスタンスを取得します。 を
"auto"に設定すると、自動選択が明示的に設定として保存され、その後のインスタンス化時に「インスタンスが設定されていません」という警告が表示されなくなります。 - channel (ChannelType | None) – チャネルの種類。
ibm_cloudまたはibm_quantum_platform。 - filename (str | None) – アカウントが保存されているファイルのフルパス。
- name (str | None) – 保存するアカウント名。
- proxies (dict | None) – プロキシの設定。 サポートされているオプションキーは、
urls(プロトコルまたはプロトコルとホストをプロキシの URL にマッピングする辞書。詳細は https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies を参照)、username_ntlm、password_ntlm(NTLMユーザー認証を有効にするためのユーザー名とパスワード) です - verify (bool | None) – サーバーのTLS証明書を確認する。
- overwrite (bool | None) –
True既存のアカウントを上書きする場合。 - set_as_default (bool | None) –
Trueの場合、アカウントはデフォルト・アカウントとしてファイル名に保存される。 - private_endpoint (bool | None) – プライベートAPIへの接続 URL.
- region (RegionType | None) – 地域設定を指定します。 us-east または eu-de。 インスタンスが指定されていない場合、このリージョンにあるインスタンスが優先されます。
premiumplans_preference (PlanType | None) – アカウントプラン名の一覧(open、など)、 好みに応じて並べ替えました。 リストの最初の値を持つインスタンスが優先され、指定されたプラン名のインスタンスのみが対象となります。 たとえば、プレミアムアカウントの使用を避けたい場合は、引"open"数を指定するだけで、オープンプランのインスタンスのみを使用するように設定できます。plans_preferenceがinstance指定されている場合は、無視されます。- tags (list[str] | None) – 利用可能なインスタンスをフィルタリングするためのタグのリストを設定します。 インスタンスが渡されない場合、これらのタグを持つインスタンスが優先されます。
戻りの型
なし
saved_accounts
static saved_accounts(default=None, channel=None, filename=None, name=None)
ディスクに保存されているアカウントをリストアップします。
パラメーター
- default (bool | None) – Trueに設定すると、デフォルトのアカウントのみが返されます。
- channel (ChannelType | None) – type.\
\ibm_cloud`` チャンネル、またはibm_quantum_platform. - filename (str | None) – アカウントが返されるファイル名。
- name (str | None) – 設定された場合、指定された名前のアカウントのみが返されます。
戻り値
ディスクに保存された口座に関する情報を持つ辞書。
レイズ
ValueError - ディスク上に無効なアカウントが見つかった場合。
戻りの型
dict