Qiskit Runtime の概要
IBM の世界をリードする Qiskit Runtimeを使用して、量子コンピューティングの未来を垣間見ることができます。これは、プログラム実行のパフォーマンスを大幅に向上させる新しいアーキテクチャーです。 当社の物理 QPU とシミュレーター (QPU の従来のエミュレーター) を使用すると、摩擦のない量子コンピューティングを体験できます。 つまり、従来のコンピュータが物理的に量子コンピュータに近い環境で、量子プログラムを実行する能力です。 プログラムとアルゴリズムをテストし、クラウド・ベースの量子ランタイムを使用して新しいモデルを開発することで、容量を大幅に改善し、パフォーマンスを向上させます。
新しい IBM Quantum Platform インターフェースがアーリーアクセスモードでリリースされました。 IBM Quantum サービスをご利用になるには、そのインターフェースのご利用を開始されることをお勧めいたします。 IBM Cloud を基盤としているため、移行は簡単です。 詳細は 移行ガイドをご覧ください。
この資料は、 Qiskit Runtimeの現行バージョンに基づいています。
このサービスはベータ・フェーズにあるため、多くの機能はまだ使用できず、まだ開発中です。以下の図に示されているいくつかの機能が含まれます。
Qiskit Runtimeを使用する理由
改良されたアーキテクチャーで実験を実行します。VQE などのさまざまなアルゴリズムでは、量子デバイスへの待ち時間の少ない接続で、従来の計算と量子計算の間のループが発生します。
プリミティブを使用して素早く開始します。プリミティブ・プログラムは、アプリケーションをビルドおよびカスタマイズするための簡素化されたインターフェースを提供します。 回路を送信して、ショット・カウント、プリショット・ readout、または観測可能な期待値を返すことができます。 (一部のプリミティブは将来の関数です。)
プリミティブ・プログラムの概要
Qiskit Runtime では、ユーザーが量子コンピューター上でジョブを実行する方法を拡張するために、プリミティブ・プログラムの形式で一連のインターフェースが導入されています。
バックエンドに対する既存の Qiskit インターフェース (backend.run()
) は、すべてのジョブの回線のリストを受け入れ、カウントを返すように設計されています。 時間の経過とともに、ユーザーが量子コンピューティングの多様な目的を持ち、コンピューティング・ジョブの要件を定義する方法が拡大していることが明らかになりました。 そのため、結果も異なるように見えます。
例えば、アルゴリズム研究者や開発者は、度数を超える情報に注目しています。これらの研究者は、観測値の準確率と期待値を効率的に計算することにより重点を置いています。
プリミティブは、モジュラー・アルゴリズムやその他の上位プログラムの作成を容易にするメソッドを提供します。 単にカウントを返すのではなく、より即時に意味のある情報を返します。 さらに、 IBM Quantum のハードウェアとソフトウェアの最新の最適化にシームレスにアクセスする方法を提供します。
確率分布を使用して実行できる基本的な操作は、確率分布から抽出するか、確率分布の数量を推定することです。 したがって、これらの演算は量子アルゴリズム開発の基本的な構成要素を形成する。 のQiskit Runtimeプリミティブ (サンプラーおよび推定器) は、これらのサンプリングおよび推定操作を QPU へのコア インターフェイスとして使用します。 Qiskit Runtime プリミティブ・プログラムで実行できることについて詳しくは、 IBM Quantum の資料 を参照してください。
より高速で効率的な結果を保証するため、2024年3月1日以降、Qiskit Runtimeプリミティブに提出する前に、QPUがサポートする命令(*命令セットアーキテクチャ(ISA)*回路およびオブザーバブルと呼ばれる)のみを使用するように回路およびオブザーバブルを変換する必要があります。 変換回路の説明については、 転置の資料 を参照してください。
この変更には、以下の重要な影響があります。
- 特定のバックエンドで使用可能な回線と突き合わせるために転置が行われるため、バックエンドを指定する 必要があります。 アクセスできる最も混雑していない QPU を使用するオプションは機能しません。 バックエンドを指定しないと、エラーが表示されます。
- プリミティブは、レイアウト操作またはルーティング操作を実行しなくなります。 したがって、これらのタスクを参照する入れ替えオプションは、効果を持たなくなります。 デフォルトでは、Sampler V2 以外のすべてのプリミティブは入力回路を最適化します。 すべての最適化をバイパスするには、
optimization_level=0
を設定します。
使用可能なプリミティブ
以下のプリミティブ・プログラムが使用可能です。
プリミティブ | 説明 | 出力例 |
---|---|---|
サンプラー | ユーザーが回路を入力してから、すべてのショット (V2) または quasiprobabilities (V1) からの出力 (ビット・ストリング) を返すことを許可します。 この生成により、ユーザーは、破壊的干渉のコンテキストで複数の関連データ・ポイントの可能性をより効率的に評価することができます。 | ![]() |
推定法 | ユーザーは、回路および観測値のリストを指定し、リスト間を選択的にグループ化して、パラメーター入力の期待値および分散を効率的に評価することができます。 これは、多くのアルゴリズムに必要な量子演算子の期待値をユーザーが効率的に計算して解釈できるように設計されています。 | ![]() |
プリミティブの使用方法
プリミティブ・プログラム・インターフェースは、量子コンピューターで実行するタスクのタイプと、結果として返される対応するデータによって異なります。 プログラムに適したプリミティブを識別した後、Qiskit を使用して、回路、観察事項 (見積もり用)、およびジョブを最適化するためのカスタマイズ可能なオプションなどの入力を準備することができます。
V2 プリミティブ
本書では、バージョン 2 プリミティブ (qiskit-ibm-runtime 0.21.0で使用可能) を使用しています。 バージョン 2 は、 Qiskit Runtime ・プリミティブの導入以降、初めての主要なインターフェースの変更です。 ユーザー・フィードバックに基づいて、このバージョンでは以下の主要な新機能が導入されています。
バージョン 2 のプリミティブには、Sampler と Estimator (BaseSamplerV2 および BaseEstimatorV2) の両方の新規基底クラスと、それらの入出力の新規タイプが導入されています。
新しいインターフェースでは、単一の回路と複数の観測値 (Estimator を使用している場合)、およびその回路のパラメーター値セットを指定できるため、パラメーター値セットと観測値のスイープを効率的に指定できます。 以前は、結合するデータのサイズと一致するように、同じ回線を複数回指定する必要がありました。 また、単純なノブとして optimization_level
および resilience_level
(Estimator
を使用する場合) を引き続き使用できますが、 V2 プリミティブを使用すると、個々のエラー緩和/抑止メソッドを柔軟にオンまたはオフにして、ニーズに合わせてカスタマイズすることができます。
ジョブ全体の実行時間を短縮するには、V2プリミティブは、ターゲット QPU でサポートされている命令を使用する回路と観測可能オブジェクト (命令セット アーキテクチャ (ISA) 回路と観測可能オブジェクトと呼ばれる) のみを受け入れます。 V2 プリミティブは、レイアウト、ルーティング、および変換操作を実行しませんが、 optimization_level>0
を指定した場合は回線の最適化を続行します。 変換回路の説明については、 転置の資料 を参照してください。
V2 サンプラーは、量子回路の実行から出力レジスターをサンプリングするコア・タスクに焦点を当てるように簡素化されています。 重みを付けずに、プログラムによって定義されたタイプのサンプルを返します。 出力データは、プログラムによって定義された出力レジスター名によっても分離されます。 この変更により、従来の制御フローを持つ回路の将来のサポートが可能になります。
詳しくは、「 V2 プリミティブのマイグレーション・ガイド 」を参照してください。
次のステップ
- 入門ガイド を使用して、インスタンスを作成し、最初のジョブを実行します。
- プリミティブを開始する
- チュートリアル、コース、およびツールを使用した学習
- 詳しくは、 Qiskit Runtime Tutorial ビデオ を参照してください。
- cURL コマンドを使用してクラウド・サービス・インスタンスを操作する方法を理解するには、 Qiskit Runtime API リファレンス を参照してください。
- IBM Quantum Computingについて説明します。