Skip to main content
IBM Quantum Platform

QESEM by Qedma API リファレンス

  • Qiskit Functions

    Qiskit Functions — パートナー組織によって開発された既成のツール — ソフトウェア開発ワークフローの一部を抽象化することで、ユーティリティ規模でのアルゴリズムの発見とアプリケーション開発を簡素化し、加速させます。 このQiskit関数のガイドを表示するには、ここをクリックしてください。


入力

pubs

種類: EstimatorPubLike

これが主な入力です。 には Pub 、2~4つの要素が含まれます。具体的には、回路、1つ以上の観測量、0個または1組のパラメータ値、およびオプションの精度です。 精度が指定されていない場合は、 から optionsdefault_precision 使用されます。

PUB の精度は、float型または辞書型のいずれかです。 float 型は、返される期待値の目標精度を設定します。 辞書は、ノイズスケール係数を目標精度にマッピングし、指定されたスケールにおける準確率論的誤差調整(QET)の結果を要求します。

1.0QESEMは、周辺の補完的なスケール係数も返します。目標精度が保証されるのは、要求されたスケール係数についてのみです。

  • 必須:はい
  • 例: [(circuit, [obs1,obs2,obs3], parameter_values, 0.03)]
  • QETの例: [(circuit, [obs1, obs2], None, {0.5: 0.15, 1.3: 0.2})]

backend_name

タイプ: `str`

デフォルト値: QESEM will get least busy device reported by IBM

使用するバックエンドの名前

  • 必須:いいえ
  • 例: "ibm_fez"

instance

タイプ: `str`

その形式で使用するインスタンスのクラウドリソース名

  • 必須:いいえ
  • 例: "CRN"

オプション

タイプ: `dict`

この関数の入力オプションは、ネストされた辞書として指定されます。 オプションの一覧とそのデフォルト値を確認してください。

  • 必須:いいえ
  • 例: { "default_precision": 0.03, "max_execution_time": 3600, "transpilation_level": "standard"}

オプション・リスト

estimate_time_only

デフォルト値: None

このフラグを有効にすると、QESEMを使用して回路を実行するために必要なQPU時間の見積もりを取得できます。

  • 「None」に設定すると、回路はQESEMを使用して実行されます。
  • に設定すると "analytical"、QPUの使用時間を消費することなく、QPU時間の上限が計算されます。 この推定値は30分単位で算出されます(例:30分、60分、90分など)。 これは一般的に悲観的な推定であり、単一のパウリ観測量、あるいは支持集合が重ならないパウリ観測量の和(例えば、 Z0+Z1 )に対してのみ得られる。 これは主に、ユーザーが指定したさまざまなパラメータ(回路、精度など)の複雑さの程度を比較するのに役立ちます。
  • QPU時間のより正確な推定値を得るには、このフラグを に設定してください "empirical"。 この方法では少数の回路を実行する必要がありますが、QPUの所要時間の推定精度が大幅に向上します。 この推定値は5分単位で算出されます(例:20分、25分、30分など)。 ユーザーは、経験的所要時間推定をバッチモードまたはセッションモードのいずれかで実行することを選択できます。 詳細については、説明 execution_mode をご覧ください。 たとえば、バッチモードでは、経験的な時間推定にかかるQPU時間は10分未満です。
  • 選択肢: "analytical" / "empirical" / なし
default_precision

デフォルト値: 0.02

精度を持たないものに対して pubs 適用されます。 この精度は、観測量の期待値における許容誤差を絶対値で表したものです。 具体的には、緩和措置のためのQPUランタイムは、目標精度の1 σ\sigma の信頼区間内に収まる、対象となるすべての観測変数について出力値を提供できるよう決定される。 複数の観測可能変数が指定された場合、各入力観測可能変数について目標精度に達するまで、緩和処理が実行されます。

  • 選択肢:0 < float
max_execution_time

デフォルト値: 3,600 (one hour)

QESEMプロセス全体で使用されるQPU時間を、秒単位で指定して制限することができます。 デフォルト値は 3,600 秒(1 時間)です。 目標精度に到達するために必要な最終的なQPU時間は、QESEMジョブの実行中に動的に決定されるため、このパラメータを設定することで、実験にかかるコストを制限することができます。 動的に決定されたQPU時間が、ユーザーが割り当てた時間よりも短い場合、このパラメータは実験に影響を与えません。 この max_execution_time パラメータは、ジョブ開始前にQESEMによって提示された分析時間の見積もりが過度に保守的であり、ユーザーがそれでも軽減ジョブを開始したい場合に特に有用です。 制限時間に達すると、QESEMは新しい回路の送信を停止します。 すでに送信済みのサーキットは引き続き実行され(そのため、合計時間が制限時間を最大30分まで超過する場合があります)、ユーザーにはその時点までに実行されたサーキットの処理結果が通知されます。 解析時間の推定値よりも短いQPU時間制限を設定したい場合は、Qedmaに相談し、その時間制限内で達成可能な精度の見積もりを得てください。

  • 選択肢:0 ~ 28,800(8時間)
transpilation_level

デフォルト値: standard

回路がQESEMに送信されると、QESEMは自動的にいくつかの代替回路変換案を作成し、QPU時間を最小化するものを選択します。 例えば、回路の深さを減らすために、Qedma最適化されたフラクショナルRZZゲートを採用した代替のトランズピレーションが考えられる。 もちろん、すべての転送回路は、理想的な出力という点において、入力回路と同等です。 options回路のトランスパイレーションをより細かく制御するには、. 内のトランスパイレーションレベルを設定してください。 は "transpilation_level": "standard" 前述のデフォルトの動作に対応していますが、 "transpilation_level": "minimal_with_layout_opt" は元の回路に必要な最小限の変更のみを含んでいます。例えば、回路をデバイスの接続グラフにマッピングすることなどです。 なお、いずれの場合も、高忠実度量子ビットへの自動ハードウェアマッピングが適用されることに留意してください。

transpilation_level
説明
「標準」デフォルトのQESEMトランスパイル。 いくつかの代替的な転写処理を準備し、QPU時間を最小化するものを選択する。 レイヤリングの段階で、バリアを変更することができます。
"minimal_with_layout_opt"最小限のトランスパイレーション:緩和された回路は、構造的に入力回路と非常に類似したものとなる。 このレベルで提供される回路は、デバイスの基本ゲートセットと一致している必要があるため、回路をデバイスの基本ゲートセットに合わせて個別にトランスパイルする必要があります。 例えば、CX、Rzz(α)、および標準的な単一量子ビットゲート(U、x、sx、rzなど)。 レイヤリングの段階では、バリアが尊重されます。

"minimal_with_layout_opt"複数の入力PUBや、複数のパラメータにバインドされた回路インスタンスを含むジョブについては、. を使用してください。

  • 選択肢:「minimal_with_layout_opt」/「standard」
execution_mode

デフォルト値: batch

ユーザーは、QESEMジョブを専用の IBM セッションで実行するか、複数の IBM バッチにまたがって実行するかを選択できます:

  • セッションモード :セッションはコストが高くなりますが、結果が出るまでの時間が短くなります。 セッションが開始されると、QPUはQESEMジョブ専用に確保されます。 使用時間の算出には、QPUによる実行時間と、それに関連する従来の計算(QESEMおよび IBM によって実行されるもの)の両方が含まれます。 QESEM Qiskit 関数は、セッションの自動作成と自動終了を処理します。 QPUを無制限に利用できるユーザー(オンプレミス環境など)は、QESEMの実行速度を向上させるため、セッションモードの使用をお勧めします。

  • バッチモード :バッチモードでは、通常の計算中にQPUが解放されるため、QPUの使用率が低下します。 バッチジョブは通常、長時間にわたって実行されるため、ハードウェアのドリフトが発生するリスクが高くなります。QESEMには、ドリフトを検出して補正する機能が組み込まれており、長時間の実行においても信頼性を維持します。

  • 選択肢: "session" / "batch"

parallel_execution

デフォルト値: True

このフラグを設定すると、ユーザーは入力回路をQPU上で並列に実行できるようになります。 QESEMは、QPU上の他のパッチが十分な忠実度を備えているかどうかを確認します。 そのようなパッチによってQPUの処理時間が短縮される場合、QESEMはそれらのパッチ上で入力回路を並列に実行します。 パッチからの結果は、逆分散重み付けを用いて統合される。

  • parallel_execution=True``ibm_marrakesh例:あるユーザーが、156キュービットのデバイス上で、8キュービットの回路を、以下の設定で実行したいとします。 QESEMは、トランスパイルされた回路の9つのコピーを作成し、それぞれをMarrakeshの接続グラフ上の異なる8量子ビットパッチにマッピングします。 実行後、ユーザーには、各入力観測変数について、期待値と誤差範囲が1つずつ表示されます。

  • 選択肢: "False" / "True"

description

デフォルト値: None

QESEMジョブに添付する任意の説明文。

Caution

QPUの所要時間の見積もりは、バックエンドごとに異なります。 したがって、QESEM関数を実行する際は、QPUの所要時間見積もりを取得した際に選択したのと同じバックエンドで実行するようにしてください。

Note

QESEMは、目標精度に達した時点、またはに達した max_execution_time時点のいずれか早い方で実行を終了します。

Note

バリア操作は、通常、量子回路における2量子ビットゲートの層を指定するために使用されます。 "minimal_with_layout_opt"QESEMでは、障壁によって指定された層が保持されます。 "standard"では、QPU時間を最小化する際、バリアによって指定されたレイヤーは、1つのトランスパイレーションの選択肢として扱われます。


出力

PrimitiveResultQESEM関数の出力はであり、これには入力ごとに1つの PubResultPUB と、ジョブレベルのメタデータが含まれています。

それぞれ PubResult は、インデックスを PrimitiveResult 指定することでアクセスでき、それぞれに フィールド data と フィールド metadata が含まれています。

  • この data フィールドには、少なくとも期待値の配列 (PubResult.data.evs) と標準誤差の配列 (PubResult.data.stds) が含まれます。使用されるオプションによっては、さらに多くのデータが含まれる場合もあります。

  • この metadata フィールドには、詳細なQESEMの結果や実行メトリクスなど、 PUB レベルのメタデータ(PubResult.metadata)が含まれています。

一般的な PubResult.metadata フィールドには、次のようなものがあります:

フィールド
説明
results回路ごとおよび観測対象ごとのQESEM測定結果。
noisy_results利用可能な場合は、補正されていない期待値と誤差範囲。
transpiled_circs量子ビットのマッピングや測定基底の数など、トランスパイルされた回路情報。
total_qpu_timeそのジョブが消費したQPU時間。
gate_fidelities実験中に測定されたゲートの忠実度。
total_shotsそのジョブで使用されたショットの総数。
mitigation_shots緩和措置に用いたショット数。
resource_usageこのジョブのリソース使用状況の内訳。

metadata["results"]観測項目ごとのQESEMの詳細は、. に保存されています。 結果は、まず回路インスタンスごとに、次に観測変数ごとにグループ化されます。 各観測項目には、QESEMの結果(qesem)、緩和処理を施していない結果(unmitigated)、ノイズスケーリングの結果(noise_scaling)、およびQESEMヒューリスティックな結果(qesem_heuristic)を含めることができます。

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。