メインコンテンツへスキップ

指示型実行モデル(ベータ版)

ベータリリース

指示型実行モデルのすべてのコンポーネントは現在ベータ版であり、安定していない場合があります。テストへの参加やフィードバックの提供は、Samplomatic または Qiskit Runtime の GitHub リポジトリに Issue を作成することで行えます。

Sampler および Estimator のプリミティブインターフェースは、アルゴリズム開発者がデータ変換よりもイノベーションに集中できるよう、高レベルの抽象化を提供しています。しかし、ユーティリティスケールの実験においてより高い制御性と柔軟性を必要とする量子情報科学者には、必ずしも適しているとは言えません。現在ベータリリース中の指示型実行モデルは、こうしたニーズに応えるものです。この実行モデルは、クライアント側で設計意図を記述するための仕組みを提供し、回路バリアントの生成というコストの高い処理をサーバー側に移すことで、パフォーマンスを犠牲にすることなくエラー緩和などの手法を細かく調整できます。この明示的でコンポーザブルなモデルにより、新しい手法の実験、結果の再現、手法の共有が容易になります。

ベータリリースの段階では、指示型実行モデルは Pauli ツワーリング、ノイズモデルの学習と注入、基底変換など、既存の Sampler および Estimator に組み込まれている手法に対する制御機能の提供に重点を置いています。その他の機能のサポートは、今後段階的に追加される予定です。

ワークフロー

指示型実行モデルの主な目標のひとつは、エラー緩和手法をモジュール方式で適用できることです。たとえば、回路のどの層を緩和するかを指定したり、回路に注入するノイズ率を調整したりすることができます。

このフレームワークのもとで回路にエラー緩和を適用する場合、ワークフローは通常以下のステップで構成されます(ここで言及するツールについては次のセクションで詳しく説明します)。

  1. 命令をボックスにグループ化し、アノテーションを付与します。アノテーションは、実際に回路バリアントを生成することなく、意図した変換を記述します。

  2. 必要に応じて、新しい NoiseLearnerV3 を使用して一意な層のノイズモデルを学習します。

  3. ボックス化された回路からテンプレート回路とサンプレックスを構築します。

  4. Executor プリミティブを使用してテンプレート回路とサンプレックスを実行します。Executor は指示に従って回路バリアントを生成・実行します。

  5. 実行結果を後処理します。たとえば、後選択を適用したり、実行結果から緩和された期待値を外挿したりすることができます。

指示型実行モデル向けツール

以下のツールを組み合わせることで、指示型実行モデルにおけるエラー緩和手法を実装できます。

Samplomatic

Samplomatic は、カスタマイズされたサンプリングのランダム化をサポートする新しいオープンソースライブラリです。box 構造を使用して、安定したノイズコンテキストを持つべき回路操作のコレクションを論理的に扱い、ボックスへのアノテーションによって意図を宣言・設定できます。たとえば、以下の図のように、回路をボックスに層化し、各ボックスにツワーリングアノテーションを追加して、使用するツワーリンググループを指定することができます。

ボックスとツワーリングアノテーションの使用例

アノテーション付きボックスを含む回路は、テンプレート回路サンプレックスの生成に使用できます。出力テンプレート回路はパラメータ化された回路であり、異なるパラメータ値が割り当てられる以外は変更なしで実行されます。Samplomatic ライブラリのコアタイプであるサンプレックスは、テンプレート回路のパラメータおよびその他の配列値フィールドに対する確率分布のパラメトリック表現です。これらのフィールドは、バインドされたテンプレート回路の実行から収集したデータの後処理に使用できます。つまり、テンプレート回路とサンプレックスのペアは、Executor プリミティブ(後述)に対して、どのパラメータを生成し、どのバインドされた回路を実行するかを正確に指示します。これら2つの構造はクライアント側で生成されるため、ハードウェア実行に送信する前に、ローカルで検査・サンプリングして出力を検証することができます。

アノテーション付きボックスの生成プロセスを簡略化するために、Samplomatic ライブラリは、提供された戦略に基づいて回路命令を自動的にアノテーション付きボックスにグループ化するトランスパイラパスも提供しています。

Samplomatic の詳細については、ガイドおよび API リファレンスのドキュメントをご参照ください。フィードバックやバグ報告は GitHub リポジトリにお寄せください。

Executor プリミティブ

Executor は新しい Qiskit Runtime プリミティブであり、テンプレート回路とサンプレックスのペアを入力として受け取り、サンプレックスに従ってパラメータ値を生成・バインドし、バインドされた回路をハードウェア上で実行し、実行結果とメタデータを返します。入力ペアの指示に従い、暗黙的な決定を一切行わないため、プロセスは透明性を保ちながらも高いパフォーマンスを実現します。

Executor にアクセスするには、qiskit-ibm-runtimeexecutor_preview ブランチをインストールしてください。

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

Executor プリミティブの入出力は、Sampler や Estimator のものとは大きく異なります。詳細については Executor API リファレンスをご参照ください。また、Executor クイックスタートガイドでは概要とコード例を確認できます。

NoiseLearnerV3

現在の NoiseLearner と同様に、この Qiskit Runtime ヘルパープログラムは、PECPEAPNA などの多くのエラー緩和手法で使用されるスパースな Pauli-Lindblad ノイズモデルを返します。元の NoiseLearner では回路のリストを渡すと、プログラムが回路を層に層化して各一意な層のノイズモデルを返します。一方、NoiseLearnerV3 では回路の層化方法を自分で制御でき、プログラムはボックス化された回路命令(たとえば一意な層)のリストをそのまま入力として受け取ります。

NoiseLearnerV3 は測定ノイズ学習もサポートしています。入力リストの各命令セットに対して、1 量子ビットおよび 2 量子ビットゲートが含まれる場合は Pauli-Lindblad 学習プロトコルを実行し、測定が含まれる場合は TREX プロトコルを実行します。 NoiseLearnerV3 にアクセスするには、qiskit-ibm-runtimeexecutor_preview ブランチをインストールしてください。

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

NoiseLearnerV3 の詳細については、API リファレンスドキュメントをご参照ください。

次のステップ

推奨事項