メインコンテンツへスキップ
このプロジェクトはベータ版です。バグを見つけましたか?GitHub Issueを開く。質問やアイデアがありますか?Discussionsで質問する — フィードバックをお待ちしています!
このページの翻訳品質はいかがですか?

Qiskit Paulice

qiskit-paulice は、時空間スタビライザーコードを用いて、任意の量子ビット接続性を持つ任意のクリフォード回路に、ハードウェア効率の高いパウリチェックを埋め込むためのパッケージです。これらのチェックは、回路の実行中に論理エラーを検出するために使えます。エラーが検出されなかったサンプルのみをポストセレクションすることで、いくつかのアンシラ量子ビットとサンプリングオーバーヘッドの増加と引き換えに、量子プロセッサからサンプリングした状態のフィデリティを向上させることができます。この手法は、フォールトトレラント量子コンピューティングと比べて量子ビット数とゲート数のオーバーヘッドがはるかに小さく、ZNE や PEC などのエラー緩和手法よりもサンプリングオーバーヘッドが小さいため、近い将来のハードウェアに特に適しています [1]。

時空間パウリチェックは単独のエラー検出ルーチンとして実装することもできますが、エラー緩和やエラー訂正の文脈でも有用です。エラー検出は、ゲートや測定に影響するノイズの一部を捕捉することで、反転するノイズチャネルの影響を小さくし、サンプリングオーバーヘッドを減らすため、確率的エラーキャンセル(PEC)などのエラー緩和手法を補完できます。また、データ量子ビットを論理エラーから守るスタビライザーコードの実装は従来のエラー訂正の中核となる概念であるため、実用的なフォールトトレランスに向けた初期のステップとみなすこともできます。この手法は量子状態へのシングルショットのアクセスを提供するため、サンプリングベースと期待値ベースのどちらのワークフローでも使用できます。

はじめに​

このパッケージをすぐに使い始めるための簡単なガイドは、クイックスタートガイドで確認できます。

ユースケースの例​

この手法は、97個の物理量子ビットを使って70個の論理量子ビットにわたる2415個の論理エンタングルゲートを符号化した、クリフォード支配的な回路からのサンプルのフィデリティを向上させるために使用されています [2]。

技術的な解説​

良好な時空間パウリチェックの集合を見つける​

Quantum circuit cartoon

時空間パウリチェックの集合は、各チェックが有効で、ウェイトが低く、かつ効果的である場合に「良好」です。

チェックは、回路内のいくつかのワイヤ ww に配置された複数の制御付きパウリ回転 PP で構成されます: {(P1,w1),...,(Pk,wk)}\{(P_1,w_1), ..., (P_k,w_k)\}。あるチェックでは、制御は単一のアンシラ量子ビット上にあり、回転は単一のターゲット量子ビットのワイヤ上で行われます。クリフォード回路では、チェックを逆伝播させた積が、理想回路によって準備される状態のスタビライザーである場合に、そのチェックは有効です: ∏iB(Pi,wi)∈S\prod_{i}B(P_i,w_i) \in S。ここで、B(P,w)B(P,w) は PP をワイヤ ww から回路の先頭まで逆伝播させる演算子、SS は回路のすべてのスタビライザーの集合です。

チェックは、実装に必要なエンタングルゲートが少ない場合にウェイトが低いといいます。チェック選択アルゴリズムは、ウェイトが低く、最も効果的なエラー検出を提供するチェックを優先します。

チェックは、導入するエラーよりもはるかに多くのエラーを捕捉する場合に効果的です。パウリチェックは複数のエンタングルゲートで構成されるため、計算に追加のゲートノイズを導入します。追加するチェックのそれぞれが、エラー検出能力の向上をもたらすようにすることが重要です。チェックの集合の効果は、チェックによって検出されるパウリエラーをポストセレクション後のノイズチャネルに合成し、その影響を計算することで近似できます。検出されない逆ノイズチャネルを実装するためのサンプリングオーバーヘッドを最小化することは、チェックによって検出できないエラーの大きさを示すため、良好なチェックを選ぶための堅実なヒューリスティックです。より低速ですがより現実的な方法は、ノイズのある状態からモンテカルロサンプリングを行い、ポストセレクション後の分布の論理エラー率を経験的に計算することです。これらの両方の方法が、qiskit_paulice.add_pauli_checks 関数に組み込みのコスト関数として用意されています。

シンドロームデータに基づくサンプルのポストセレクション​

このパッケージでは、チェックは1つのアンシラ量子ビットと1つのターゲット量子ビットの間のエンタングルゲートを使って実装されます。各アンシラは ∣0⟩|0\rangle から始まるため、ZancZ_\text{anc} はその入力状態を安定化します。ZancZ_\text{anc} をアンシラの先頭からチェック付き回路全体を通して順伝播させると、出力上のパウリ演算子が得られます。これはウェイトが高くなり、ペイロード回路にまで広がることがあります。この出力演算子が恒等でない項を持つ量子ビットのインデックスをチェックのサポートと呼び、チェックのサポート内のビット bb のパリティが偶数である場合、つまり ⨁i=1bi=0\bigoplus_{i=1} b_i = 0 の場合に、そのチェックは合格となります。各チェックのパリティチェックが 00 を返す場合、そのサンプルは保持されます。

ソフトウェアの機能​

  • バックエンドのベンチマークデータからのノイズモデルの自動作成

  • Rust による高速化されたチェック探索

  • チェック探索用の3つの組み込みアルゴリズム

  • RZ ゲートのドーピングのサポート

  • エラー検出とエラー緩和を組み合わせるためのサポート

既知の問題​

  • アイドリングノイズは NoiseModel.get_backend では提供されず、チェックの選択中は無視されます

  • アルゴリズム内の多くの確率的なステップは乱数シードで制御できますが、一部の機能にはシードで制御できないランダム性があります。具体的には、add_pauli_checks の次のキーワード引数の値は、非決定的なチェック選択を引き起こします: cost="LER"、method="genetic"、method="windowed_genetic"。決定的な動作が必要な場合は、デフォルト値である add_pauli_checks(..., cost="gamma", method="windowed") を使用してください。

今後の課題​

  • チェックの選択時にアイドリングノイズを扱う

  • 論理エラー率コスト関数と遺伝的探索アルゴリズムにおける、制御可能なランダム性

コントリビュート​

ソースコードは GitHub 上で公開されています。

開発者ガイドは、このプロジェクトのリポジトリのルートにある CONTRIBUTING.md にあります。参加する際は、Qiskit の行動規範を遵守していただく必要があります。

このパッケージの引用​

このパッケージを研究で使用する場合は、このプロジェクトのリポジトリにある CITATION.bib ファイルを使用して、適切な参考文献を引用してください。

ライセンス​

Apache License 2.0

非推奨ポリシー​

私たちはセマンティックバージョニングに従っています。ユーザーエクスペリエンスを向上させるため、後方互換性のない変更を行うことがあります。可能な場合は、新しいインターフェースと共存できる限り、古いインターフェースを残して非推奨としてマークします。実質的な改善、後方互換性のない変更、非推奨化はすべて、リリースノートに記載されます。

参考文献​

  1. Simon Martiel, Ali Javadi-Abhari, Low-overhead error detection with spacetime codes, arXiv:2504.15725 [quant-ph].

  2. Simon Martiel, et al., Sampling hard circuits with verifiably high fidelity, arXiv:2607.25941 [quant-ph].