Quantum Elements Orbit API リファレンス
Qiskit Functions — パートナー組織によって開発された既製のツール — ソフトウェア開発ワークフローの一部を抽象化することで、ユーティリティ規模でのアルゴリズムの発見やアプリケーション開発を簡素化し、加速させます。 このQiskit関数のガイドを表示するには、ここをクリックしてください。
『Quantum Elements』オービットガイド
Quantum Elements Orbitは、選択された IBM Quantum® バックエンド向けに量子回路を準備し、スケジュールされたアイドルウィンドウに動的デカップリング(DD)を挿入し、その結果得られたワークロードを IBM Quantum プリミティブを通じて実行するQiskit関数です。 ワークロードは、1つのQuantum Computeジョブとして実行することも、サーバーサイドバッチ qiskit-ibm-runtime 内で子ジョブに分割して実行することもできます。 Orbitは、SamplerおよびEstimatorのPUBを受け入れ、トップレベルの結果および各 Primitive Unified Bloc( PUB ) の結果に、Orbit固有のメタデータが PrimitiveResult 添付された標準形式の結果を返します。
が省略 backend_name された場合、Orbitは、 IBM Quantum Compute Serviceで利用可能な、条件を満たす最も負荷の低い IBM Quantum バックエンドを選択します。 が省略 options された場合、またはの場合 None、Orbitは組み込みのデフォルト設定を使用します。具体的には、回路のトランスパイルとスケジューリングを行い、デフォルトのDD戦略を挿入し、サービスに送信し、結果にDD挿入メタデータを付加します。
入力
一般的な呼び出しでは、PUBを送信し、プリミティブを選択し、必要に応じてバックエンドを選択し、さらに必要に応じてOrbit固有のオプションを渡します:
job = orbit.run(
primitive="sampler",
pubs=[pub, pub, pub],
backend_name="ibm_boston",
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True,
},
]
},
)
result = job.result()pubs 実行に必要な回路とプリミティブ入力を提供します。 primitive IBM Quantum プリミティブ契約を選択します。 backend_name IBM Quantum バックエンドを選択します。省略した場合は、Orbitが最も負荷の低いバックエンドを選択します。 options OrbitのDD挿入、量子コンピューティングのオプション、プレビュー/シミュレータの動作、およびメタデータ機能を制御します。 各入力項目の詳細については、以下をご覧ください。
pubs
タイプ: Iterable[SamplerPubLike] or Iterable[EstimatorPubLike]
選択されたプリミティブに一致する 1 つ以上の PUB。
- 必須:はい
- 有効な入力型:Sampler PUB のようなオブジェクトの反復可能オブジェクト、または Estimator PUB のようなオブジェクトの反復可能オブジェクト
各 PUB は、選択されたプリミティブの入力契約と一致している必要があります。
(circuit, parameter_values, shots)「Forprimitive="sampler": each」 PUB は、次のような「 Sampler PUB 」シェイプに従います。(circuit, observables, parameter_values, precision)``primitive="estimator"各 PUB は、 Estimator PUB の形状に従います。例えば、.- デフォルト
options.transpilation_mode="optimize"のパスでは、回路がISA回路である必要はありません。Orbitが内部でそれらをトランスパイルおよびスケジューリングを行います。
primitive
タイプ: str
Orbitが実行に使用する IBM Quantum プリミティブを選択します。
- 必須:はい
- 有効な入力タイプ:
str
プリミティブは、各 PUB がどのような内容を含まなければならないか、およびそれぞれ PubResult がどのような結果データを返すかを決定します。
- 選択肢:
"sampler"/"estimator" - サンプリングされたビット文字列データには、`` を使用
"sampler"してください。 - 期待値と標準誤差には を使用
"estimator"してください。
backend_name
タイプ: str or None
デフォルト値: None
実行する IBM Quantum バックエンドの名前。
-
必須:いいえ
-
デフォルト値:
None -
有効な入力タイプ:
strまたはNone -
least_busy()``None省略された場合、または、Orbit は、条件を満たす動作可能な非シミュレータ・バックエンドを で解決します。 -
例:
"ibm_boston"
options
タイプ: dict or None
デフォルト値: None
Orbitの実行動作を制御する、機能固有のオプション。
- 必須:いいえ
- デフォルト値:
None - 有効な入力タイプ:
dictまたはNone
オプションでは、トランスパイレーション、DDの挿入、Quantum Computeのオプション、バッチ qiskit-ibm-runtime 実行、プレビューモード、シミュレータモード、バックエンド情報のエクスポート、および測定誤差の軽減を制御します。
- 不明なオプションキーは拒否されます。
{}``None「,」または「」を指定するか、省略optionsしてすべてのデフォルト設定を使用します。- 例:
{
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True
}
]
}オプション・リスト
preview
タイプ: bool
デフォルト値: False
Orbitが、Quantum Computeジョブを送信せずにDD挿入レポートを返すかどうか。
-
必須:いいえ
-
デフォルト値:
False -
有効な入力タイプ:
bool -
Trueこの場合、QPU時間は使用されず、orbitは単に回路を前処理し、pubs挿入レポートを提供するだけです。 -
False(デフォルト値)の場合、Orbitで修正された回路を含むQuantum Computeジョブが送信され、処理されます。 -
Trueとsimulatorの両preview方が の場合、プレビューモードが優先され、シミュレータの実行は無視されます。
debug_return_circuits
タイプ: bool
デフォルト値: False
プレビューモードでは、各 PUB のメタデータに、Orbit後の回路が準備されているかどうかが表示されます。
-
必須:いいえ
-
デフォルト値:
False -
有効な入力タイプ:
bool -
preview=True. の場合にのみ使用されます。 -
debugCircuit.usedQubits``debugCircuit.circuit``True各 PUB レポートには、、、および操作回数が含まれます。 また、Qiskitが回路をエクスポートできる場合は、ベストエフォートdebugCircuit.qasm方式も含まれます。 -
通常の実行時には、回路のペイロードが大きくなる可能性があるため、この設定は無効のままにしておいてください。
transpilation_mode
タイプ: string
デフォルト値: optimize
Orbit社では、DD挿入の前に PUB 回路をどのように準備しているか。
-
必須:いいえ
-
デフォルト値:
"optimize" -
有効な入力値:
"optimize","prepare", または"validate" -
"optimize"Qiskitoptimization_level=2によるトランスパイレーションを繰り返し実行し、静的回路および動的回路について、2量子ビットの深さが最も浅い候補を保持します。 -
"prepare"Qiskitoptimization_level=0の準備とALAPのスケジューリングを実行します。 が指定された場合physical_layout、Orbit はまずその物理ワイヤインデックス上に回路をマテリアライズし、Qiskit の単純なレイアウト手法を使用します。 -
"validate"入力回路がすでに物理的に準備済みであるとみなす。 Orbit は、可能な範囲でバックエンドとの互換性を検証しますが、DD の挿入前にリマップ、ルーティング、最適化、またはスケジュール修正は行わず、警告を表示して無視physical_layoutします。
physical_layout
タイプ: object or null
デフォルト値: None
論理キュービットから物理キュービットへのマッピングは任意である。
- 必須:いいえ
- デフォルト値:
None - 有効な入力型:キーと値が非負の整数であるオブジェクト、または
None
例: {"0": 85, "1": 89} 論理量子ビット 0 を物理量子ビット 85 に、論理量子ビット 1 を物理量子ビット 89 に割り当てます。 Python 呼び出し元は整数のキーを使用できます。JSONオブジェクトのキーは文字列です。
- モードでは
"optimize"、これは初期レイアウトのシードとして渡され、最適化や配線処理の過程で最終的なマッピングが変更される場合があります。 layout_method="trivial"モードでは"prepare"、Orbitは回路をこれらの物理ワイヤインデックス上に具現化し、その後、 level-0 の準備を を使用して行います。 明示的なルーティングを行うSWAPは、実行中に量子状態を移動させる可能性があります。- モードでは
"validate"、指定された回路の配線が優先されるためphysical_layout、は警告とともに無視されます。
num_transpilation_steps
タイプ: int
デフォルト値: 300
transpilation_mode="optimize". における確率的トランスパイレーションのシード数、および Orbit の試行回数。
- 必須:いいえ
- デフォルト値:
300 - 有効な入力型:正の整数
mem
タイプ: bool or None
デフォルト値: None
Orbitが、 M3 を使用して、サンプラーのみによる測定誤差の低減を行っているかどうか。
-
必須:いいえ
-
デフォルト値:
None -
有効な入力タイプ:
boolまたはNone -
sampler``Trueが、からのショットに対して測定誤差の低減を適用する場合。 -
Falseの場合、ショットの後処理は行われません。 -
None「When」の場合、オービットモードでは実行されたサンプラーPUBに対してMEMが有効になりますが、rawモードおよびカスタムモードでは、設定されていない限りMEMはスキップされます。 -
simulator=False``preview=False``primitive="sampler"Explicit には、、True、およびが必要です。 -
Raw Samplerのカウント数は保持され、軽減されたカウント数がOrbitのメタデータに添付されます。
-
後処理中に緩和措置が失敗した場合、Orbitは未加工の結果を保持し、メタデータに緩和措置の失敗を記録します。
pub_options
タイプ: list[dict] or None
デフォルト値: None
PUB の実行モードおよびオーバーライドについて。
-
必須:いいえ
-
デフォルト値:
None -
有効な入力タイプ:
list[dict]またはNone -
1つのエントリをすべてのPUBにブロードキャストします。それ以外の場合は、 PUB ごとに1つのエントリを渡します。
-
{"mode": "raw"}静的回路や動的回路に対して、Qiskitoptimization_level=0による単一のトランスパイレーションおよびスケジューリング処理を行い、Orbitの最適化、Orbit DD、動的DD、およびMEMをスキップします。 -
{"mode": "orbit"}Orbitのデフォルト設定を使用します。 -
dynamic_dd_seq``dd_strategy``dd_qubits``physical_layout``transpilation_mode``{"mode": "custom"}その PUB に対して、、、、、、、およびmemを上書きすることができます。 -
physical_layout=NoneRawモードでは、常に と を使用transpilation_mode="prepare"し、Orbit DDをスキップし、グローバルな準備オプションを無視します。 -
Orbit およびカスタム PUB は、 PUB に従ってそれらを上書きしない限り、グローバルな
transpilation_modeおよびphysical_layoutを継承します。 -
複製したPUBを と組み合わせて使用することで
pub_options、1つのQuantum Computeジョブ内で、生データ、Orbitのデフォルト設定、およびカスタムDD戦略を比較することができます。 単純なCPMGベースラインについては、カスタム PUB の内部{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}で以下を使用してくださいdd_strategy。
発信者側で準備された回線の場合、Orbit対応のPUBでは以下を使用 transpilation_mode="validate" してください:
options = {
"pub_options": [
{"mode": "raw"},
{"mode": "orbit", "transpilation_mode": "validate"},
{
"mode": "custom",
"transpilation_mode": "validate",
"dd_qubits": None,
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"mem": False,
},
]
}dd_strategy
タイプ: list[list[dict]]
PUB 回路に適用するためのDD戦略を順序付けました。
-
必須:いいえ
-
デフォルト値:
[[{"dd_sequence": "auto", "pulse_density": 0.25, "dd_reps": 1}]] -
有効な入力タイプ:
list[list[dict]] -
選択肢:空でない戦略リストの集合からなる、空でない外側のリスト。
-
外側のリストは、PUBまたは回路をインデックス付けしています。 戦略が1つだけ指定された場合、Orbitはその戦略をすべてのPUBにブロードキャストします。
-
各内部リストは、ラウンドごとに同じ回路に対して適用されます。
-
1``0.25``dd_sequence各ラウンドには が必要です。pulse_densityデフォルトは です。dd_repsデフォルトは です。
dd_strategy 丸い畑
タイプ: str or dict or list
dd_sequenceフィールド:1回のDDラウンドで挿入するシーケンス。- 必須:はい
str有効な入力タイプ:、dict、またはカスタムパルスグループlist[[0.0], ["Y"], ["Xb", 0.5]]``{"name": "ur", "variant": "8"}``"auto"選択肢:、組み込みのシーケンス名、のようなバリアント辞書、またはのようなカスタムパルスグループのリスト。"KDD"``"superEuler"``"XY8"``"superCPMG"``"superHahn"パルススロットごとに分類された固定の組み込み名を以下に示します。2スロットのシーケンスは"CPMG","pureY", および です。4スロットのシーケンスは"XY4"および です。8スロットのシーケンスは です。16スロットのシーケンスは です。20スロットのシーケンスは です。- パラメータ化された組み込みファミリ:
"CDD-n"整数n >= 1を持つもの("CDD-1"は と同等であり、"XY4"この数列は再帰的に増加する);"UR-n"あるいは"URn"、偶数n >= 4を持つもの(例:"UR-8"または"URn8");および"T-n"、"Tn"偶数n >= 2を持つもの(例:"T-8"または"Tn8")。 - RGAの組み込みバリアント:
"RGA-2x","RGA-4","RGA-4p","RGA-8a""RGA-8c","RGA-16a",,"RGA-16b","RGA-32a","RGA-32c","RGA-64a","RGA-64c", および"RGA-256a"。 - 組み込みのシーケンス名では、大文字と小文字は区別されず、ハイフンやアンダースコアなどの区切り文字も無視されます。
"UR8"例えば、"RGA-8a"と"rga8a"は同値であり、 と も同様である"UR-n-8"。 - カスタム数値入力は、xy平面におけるπ回転の角度(πを単位とする)を表します。
0.0は +X で0.5、は +Y です。 "Yb"``"Xb"``"Y"``"X"カスタム文字列エイリアスには、、、、およびが含まれます。
タイプ: float
pulse_densityフィールド:このラウンドのDDパルスに使用可能な、各アイドルギャップの割合。- 必須:いいえ
- デフォルト値:
0.25 - 有効な入力タイプ:
floatまたはint - 選択肢:~から
0.0~まで浮遊する1.0 0.0そのラウンドでは、ギャップを埋めないままにします。1.0シーケンスのタイミングが許す限り、パルスを高密度に詰め込みます。
タイプ: int
デフォルト値: 1
dd_repsフィールド:各対象となるアイドルギャップ内で、このラウンドのDDシーケンスが繰り返された回数。- 必須:いいえ
- デフォルト値:
1 - 有効な入力タイプ:
int - 選択肢:1以上の整数
dynamic_dd_seq
タイプ: str or dict or list or None
デフォルト値: XY8
Orbitの動的回路フィードフォワードDD挿入に使用されるDDシーケンス。
-
必須:いいえ
-
デフォルト値:
"XY8" -
有効な入力タイプ:
str,dict, カスタムパルスグループlist, またはNone -
dd_strategy[].dd_sequence選択肢:「」と同じシーケンス形式、またはNone「」を選択すると、動的なフィードフォワード挿入ステージが無効になります。 -
Orbitが条件分岐や制御フローを検出し、動的回路(DD)パイプラインを使用する場合に適用されます。
-
まず通常の
dd_strategyパスが実行され、その後、Orbitがこのシーケンスをラベル付けされた動的なフィードフォワード領域全体に適用します。
dd_qubits
タイプ: list[int] or None
デフォルト値: None
Orbit DDへの挿入対象となる量子ビットインデックスのグローバル許可リスト。
-
必須:いいえ
-
デフォルト値:
None -
有効な入力タイプ:
list[int]またはNone -
選択肢:
Noneまたは 0 以上の整数のリスト -
Noneアクティブなクビット、またはタッチされたクビットのみを対象とします。 -
リストには「アイドル専用」の量子ビットを含めることができ、リストに記載されていない量子ビットは除外されます。
-
orbit``pub_options[i].dd_qubitsこの値は、customPUB のエントリ内で上書きすることができます。 -
"validate"明示的な許可リストは、解決済みがtranspilation_modeであるOrbit対応PUBに対してのみ指定可能であり、これにより呼び出し元が物理量子ビットのインデックスを所有することになります。dd_qubitsRaw PUBはOrbit DDをスキップし、.を受け付けません。
save_backend_info
タイプ: bool
デフォルト値: False
Quantum Computeジョブの実行後、Orbitがバックエンドのキャリブレーションプロパティを保存するかどうか。
-
必須:いいえ
-
デフォルト値:
False -
有効な入力タイプ:
bool -
選択肢:
True/False -
/data``service.job(job_id).properties()有効にすると、Orbit はクエリを実行し、シリアライズされたバックエンドのプロパティを に書き込み、保存されたパスを Orbit メタデータに記録します。 -
バッチモードでは、Orbit は子ジョブごとに 1 つのスナップショットを取得し、それらを. に報告します
backendInfo.snapshots。 -
失敗は警告として報告され、それ以外が正常に完了したプリミティブの結果は破棄されません。
default_shots
タイプ: int
デフォルト値: 4096
ショットを明示的に指定していないサンプラーPUBで使用されるデフォルトのショット。
-
必須:いいえ
-
デフォルト値:
4096 -
有効な入力タイプ:
int -
選択肢:0より大きい整数
-
primitive="sampler". にのみ適用されます。
default_precision
タイプ: float
デフォルト値: 0.015625
精度を明示的に指定していないEstimator PUBに対して使用されるデフォルトのターゲット精度。
-
必須:いいえ
-
デフォルト値:
0.015625 -
有効な入力タイプ:
floatまたはint -
選択肢:Float > 0
-
primitive="estimator". にのみ適用されます。
runtime_options
タイプ: dict
IBM Quantum 基底となる SamplerV2 または EstimatorV2 プリミティブに渡されるプリミティブオプション。
-
必須:いいえ
-
デフォルト値:
{"resilience_level": 0, "dynamical_decoupling": {"enable": false}} -
有効な入力タイプ:
dict -
選択したプリミティブに対する高度なオプションや実験的なオプションを含め、ネストされたオプション辞書が使用可能です。
-
実行時の動的デカップリングはデフォルトで無効になっているため、ユーザーが明示的に有効にしない限り、OrbitによるDD挿入が唯一のDDパスとなります。
たとえば、Samplerの上級ユーザーは、動的回路デバッグフィールドを有効にすることができます:
options = {
"runtime_options": {
"experimental": {
"execution": {
"scheduler_timing": True,
"stretch_values": True,
}
}
}
}- 警告: したがって、この値を変更する際は注意を払い、DDを除外したまま、手動で「トゥワリング」などの特定の機能を有効にするようにしてください。
resilience_level
タイプ: int or None
デフォルト値: 0
推定器の実行時の耐障害性レベル。
-
必須:いいえ
-
デフォルト値:
0 -
有効な入力タイプ:
intまたはNone -
選択肢:
0/1/2/None -
対象は
primitive="estimator". -
ランタイムオプションを設定しない場合は、を使用
Noneしてください。 -
primitive="sampler"に設定された場合、Orbit はその設定を無視し、Orbit メタデータに警告を追加します。
dynamical_decoupling
タイプ: dict
Quantum Compute に渡される動的デカップリングのオプション。
- 必須:いいえ
- デフォルト値:
{"enable": false} - 有効な入力タイプ:
dict
enable
タイプ: bool
デフォルト値: False
Orbit DDの挿入に加えて、DD qiskit-ibm-runtime を有効にするかどうか。
-
必須:いいえ
-
デフォルト値:
False -
有効な入力タイプ:
bool -
選択肢:
True/False -
この機能を有効にすると、Orbit から警告が表示されます。これは、Runtime DD と Orbit DD を同時に適用すると、予期しない動作を引き起こす可能性があるためです。
sequence_type
タイプ: str or None
デフォルト値: None
オプションのランタイム DD シーケンス型。
- 必須:いいえ
- デフォルト値:
None - 有効な入力タイプ:
strまたはNone
提供された場合は、Quantum Compute に引き継がれます。
scheduling_method
タイプ: str or None
デフォルト値: None
オプションのランタイム DD スケジューリング方式。
- 必須:いいえ
- デフォルト値:
None - 有効な入力タイプ:
strまたはNone
提供された場合は、Quantum Compute に引き継がれます。
extra_slack_distribution
タイプ: str or None
デフォルト値: None
オプションのランタイム DD エクストラ・スラック配布。
- 必須:いいえ
- デフォルト値:
None - 有効な入力タイプ:
strまたはNone
提供された場合は、Quantum Compute に引き継がれます。
skip_reset_qubits
タイプ: bool or None
デフォルト値: None
リセット対象の量子ビットをスキップするかどうかを制御する、オプションのランタイムDD設定。
- 必須:いいえ
- デフォルト値:
None - 有効な入力タイプ:
boolまたはNone
提供された場合は、Quantum Compute に引き継がれます。
max_execution_time
タイプ: int or None
デフォルト値: None
各Quantum Computeプリミティブジョブの最大実行時間に対するソフトキャップ。
- 必須:いいえ
- デフォルト値:
None - 有効な入力タイプ:
intまたはNone
値は秒単位で指定します。
- 選択肢:
Noneまたは 0 より大きい整数 Noneの場合、ランタイムのデフォルト値が使用されます。- バッチモードでは、キャップはすべての子プリミティブジョブに適用されます。
batch
タイプ: dict or None
デフォルト値: None
サーバーサイドでの一括 qiskit-ibm-runtime 設定。
-
必須:いいえ
-
デフォルト値:
None -
有効な入力タイプ:
dictまたはNone -
省略された場合、または
None、Orbitは準備済みのすべてのPUBを1つのQuantum Computeプリミティブジョブとして送信します。 -
指定された場合、Orbitは準備されたPUBを入力順に分割し、リモート関数内で認証済みのバッチを作成し、すべての子ジョブを送信し、バッチを閉じ、その後、子ジョブの結果を元の PUB の順序で収集してマージします。
-
バッチモードは、パラメータスイープや曲線生成など、PUBが事前に判明している独立したワークロードを対象としています。 後の入力が前の結果に依存する場合は、代わりにセッションモードを使用してください。
-
バッチモードでは、実際の IBM Quantum バックエンド上での実行が必要であり、または
preview=Trueとは互換性がありませんsimulator=True。 -
設定はJSONシリアライズ可能でなければなりません。 ローカル
qiskit_ibm_runtime.Batchオブジェクトを作成して に渡さないでくださいorbit.run(...)。呼び出し側が作成したバッチでは、Qiskit関数の非同期実行環境を制御することはできません。 -
PUB の値が以下である場合
max_pubs_per_job、Orbitは1つの子ジョブを作成し、バッチではパーティション並列処理は行われません。
max_pubs_per_job
タイプ: int
各子ジョブで送信されるPUBの連続最大数。
- 必須:
batchが指定された場合は「はい」 - 有効な入力タイプ:
int - 選択肢:0より大きい整数
入力 N PUBごとに、Orbitは ceil(N / max_pubs_per_job) 子ジョブを作成します。 最後の子ジョブには、PUBの数が少なくて済む場合があります。
max_time
タイプ: int or str or None
デフォルト値: None
バッチ qiskit-ibm-runtime の最大有効期間(オプション)。
-
必須:いいえ
-
デフォルト値:
None -
有効な入力タイプ:
int,str, またはNone -
正の整数は秒数を指定します(例:)
7200。 -
持続時間の文字列には
s、m,h, または を使用した1つ以上の正の数と単位の組み合わせが含まれますd。例えば、"2h"や などです"1h30m"。 -
のような数値文字列は無効
"7200"です。7200代わりに整数 を使用してください。
たとえば、次の呼び出しでは、を最大300 PUBの子ジョブ ordered_pubs に分割し、すべてを1つのバッチ内に収めます:
job = orbit.run(
primitive="sampler",
pubs=ordered_pubs,
backend_name="ibm_brisbane",
options={
"batch": {
"max_pubs_per_job": 300,
"max_time": "2h",
}
},
)
result = job.result()
batch_report = result.metadata["quantum_elements_orbit"]["batch"]simulator
タイプ: bool
デフォルト値: False
Orbitが、実際のQPUではなく、ローカルのAerシミュレータ上でワークロードを実行するかどうか。
- 必須:いいえ
- デフォルト値:
False - 有効な入力タイプ:
bool
シミュレータは関数コンテナ内で実行されます。
- 選択肢:
True/False Trueが のときはpreview無視される。- Orbitのメタデータが添付された通常の
PrimitiveResult値が返されます。
simulator_noise
タイプ: str
デフォルト値: backend
Trueが のとき simulator 、使用されるノイズモデル。
-
必須:いいえ
-
デフォルト値:
"backend" -
有効な入力タイプ:
str -
選択肢:
"backend"/"ideal" -
"backend"可能な場合は、を使用AerSimulator.from_backend(backend)します。 -
AerSimulator``"ideal"ノイズのないプレーンな.を使用します。
gate_dur
タイプ: int or None
デフォルト値: None
1つのDDゲートまたはパルスの持続時間。
-
必須:いいえ
-
デフォルト値:
None -
有効な入力タイプ:
intまたはNone -
警告: 明示的な値は、管理されたテストの場合、またはバックエンド固有の正当な理由がある場合にのみ使用してください。
-
この値は、バックエンドが遅延の計算に使用するのと同じ単位で表されます。通常は
dt. -
選択肢:
Noneまたは 0 より大きい整数 -
NoneOrbitは、より長いキャリブレーション済みのXまたはsqrt(X)のゲート持続時間を使用して、からbackend.targetバックエンドを意識した値を算出します。
出力
この関数は、入力 PubResult ごとに1つの PUB を含む PrimitiveResult Qiskitを返します。 Orbit は、選択されたプリミティブの法線結果データを保持し、. の下に Orbit メタデータを追加します quantum_elements_orbit。 バッチモードでは、子ジョブの境界に関係なく、返される PUB の件数と順序が元の入力PUBと一致するように、子ジョブの結果が統合されます。
タイプ: PrimitiveResult
標準仕様 PrimitiveResult で、Orbitメタデータが付加されています。
primitive="sampler"各PubResult.dataには、classical-register ビット配列などのサンプラーの結果データが含まれています。primitive="estimator"各PubResult.dataには、期待値や標準誤差などの推定結果データが含まれています。- プレビューモードでは、 IBM Quantum プリミティブが送信されていないため、各 は空になっています
PubResult.data。
最上位のメタデータ
metadata["quantum_elements_orbit"]
タイプ: dict[str, Any]
機能呼び出し全体の集計されたOrbitレポート。
functionVersion
タイプ: str
この結果を生成したOrbit Coreのバージョン。
preview
タイプ: bool
その結果がプレビューモードで生成されたものかどうか。
simulator
タイプ: bool
シミュレータモードが要求されたかどうか。
simulatorNoise
タイプ: str
シミュレータのノイズモード: "backend" または "ideal"。
executionMode
タイプ: str
Orbitがサーバーサイドの qiskit-ibm-runtime バッチ実行を使用していた "batch" 場合、値が提示されます。
batch
タイプ: dict[str, Any]
バッチモードで表示します。 にはランタイムバッチIDが id、には順序付きの子ジョブIDが jobIds、には順序付きパーティションレコードが含まれています partitions。 各パーティションレコードには index、 pubStart、 pubCount、、が含まれています jobId。
primitive
タイプ: str
選択されたプリミティブ: "sampler" または "estimator"。
ddStrategy
タイプ: list[list[dict]]
この実行では、正規化DD戦略が使用されました。
pubOptions
タイプ: list[dict[str, Any]]
PUB ごとの実行モードとオーバーライドに関する問題を解決しました。 ddStrategy``dynamicDdSeq``ddQubits``orbitEnabled``mem``physicalLayout``transpilationMode各エントリには、 PUB のインデックス、モード、resolved、、、、、、、、、、および該当する場合は、 PUB ごとのresolvedが含まれます。
dynamicDdSeq
タイプ: str or dict or list or None
この実行に使用された動的回路フィードフォワードDDシーケンス。
ddQubits
タイプ: list[int] or None
この実行では、グローバル DD 量子ビットの許可リストのデフォルト設定が使用されました。 PUB ごとのレポートには、各 PUB に対する解決済みの許可リストが含まれています。
runtimeOptions
タイプ: dict[str, Any]
dynamicalDecouplingOrbit が適用を試みた実行時オプションには、および などが含まれます resilienceLevel 。
transpilationMode
タイプ: string
Orbit対応のPUBに対して、グローバル回路準備モードが要求されました。
physicalLayout
タイプ: dict or None
Orbit対応のPUBについて、論理レイアウトから物理レイアウトへのグローバルなマッピングが求められています。
numTranspilationSteps
タイプ: int
最適化されたトランスパイレーション用に設定された確率的トランスパイレーションのシード数。
backendInfo
タイプ: dict[str, Any]
バックエンドのキャリブレーションのエクスポート状況。 これには enabled、 saved、、および(利用可能な場合)、バックエンド名、ジョブID、保存先パス、警告が含まれます。 バッチモードでは、パーティションごとに1つの子ジョブのエクスポートレポート snapshots が含まれます。
warnings
タイプ: list[str]
resilience_level「プレビューがシミュレータモードを上書きしている」「Orbit DD と並行して Runtime DD が有効になっている」「Sampler が. を無視している」といった、実行レベルの警告。
pubs
タイプ: list[dict[str, Any]]
PUB への入力ごとに、1件の軌道投入レポートが生成されます。
metadata["resource_usage"]
タイプ: dict[str, dict[str, float]]
各フェーズごとのリソース使用状況。ハードウェア最適化、QPU待機、QPU実行、および後処理に関する項目が含まれています。
RUNNING: POST_PROCESSING``RUNNING: EXECUTING_QPU``RUNNING: WAITING_FOR_QPU``RUNNING: OPTIMIZING_FOR_HARDWARE段階には、、、、およびが含まれます。QPU_TIME``RUNNING: EXECUTING_QPUには以下が含まれます。
バッチ出力
バッチ実行の場合、返された各 PUB の範囲は、それを実行した子ジョブに対応付けられます result.metadata["quantum_elements_orbit"]["batch"] :
result = job.result()
orbit_report = result.metadata["quantum_elements_orbit"]
batch_report = orbit_report["batch"]
print(orbit_report["executionMode"]) # "batch"
print(batch_report["id"])
print(batch_report["jobIds"])
for partition in batch_report["partitions"]:
start = partition["pubStart"]
stop = start + partition["pubCount"]
child_results = list(result)[start:stop]
print(partition["index"], partition["jobId"], start, stop)job.runtime_jobs() Qiskit Functionジョブを通じて子ジョブのIDを公開し、バッチIDも公開 job.runtime_sessions() します。 バッチのメタデータは とともに渡されるため PrimitiveResult、元の Function ジョブオブジェクトを保持せずに、後の分析で PUB を子ジョブにマッピングする必要がある場合にこれを使用してください。
Orbitは save_backend_info=True、子ジョブごとに1回のバックエンド較正スナップショットを試行し、その収集結果を最上位の に報告します backendInfo.snapshots。 サンプラー PUB に対して MEM が有効になっている場合、Orbit は、結果を再統合する前に、そのパーティション内の PUB について、各子ジョブのキャリブレーション・スナップショットを使用します。
「resource-usage RUNNING: EXECUTING_QPU 」エントリには、利用可能な子ジョブのQPU時間の合計が報告されます。 プロバイダーのQPU時間データがない子ジョブがあると、その測定結果が不完全になる可能性があります。
PUB のOrbitメタデータ
それぞれ PubResult.metadata["quantum_elements_orbit"] には、その PUB に関する挿入レポートが含まれています。
pubIndex
タイプ: int
提出されたワークロードにおける PUB のインデックス。
mode
タイプ: str
PUB ごとの実行モードに応じて解決されます: "raw", "orbit", または "custom"。
orbitEnabled
タイプ: bool
PUB において、Orbit DDの挿入が有効になっていたかどうか。
transpilationMode
タイプ: string
この PUB の回路準備モードが解決されました。
physicalLayout
タイプ: dict or None
この PUB について、論理レイアウトから物理レイアウトへのマッピングを確定しました。 このモードでは validate 、この値は無視され、警告が表示されます。
mem
タイプ: bool or None
この PUB に関する測定誤差の軽減設定を解決しました。
dynamicDdSeq
タイプ: str or dict or list or None
この PUB に対する、動的回路フィードフォワードDDシーケンスが導出されました。
ddQubits
タイプ: list[int] or None
この PUB に対する DD 量子ビットの許可リストを確定しました。
status
タイプ: str
この PUB におけるDDの挿入状況(DDが適用されたか、スキップされたかなど)。
numRounds
タイプ: int
PUB に適用された DD 戦略のラウンド数。
warnings
タイプ: list[str]
PUB DDの挿入および互換性処理による-レベルの警告。
insertionSummary
タイプ: dict[str, Any]
この PUB に関するDD挿入の全体概要。 ステータス、開始ギャップ数および埋まったギャップ数、追加されたDDシーケンスの数、追加されたゲートの数、ゲートの持続時間、挿入前後の回路の深さおよびサイズ、ならびに挿入に関する警告が含まれます。
perRoundSummaries
タイプ: list[dict[str, Any]]
ラウンドごとのDD挿入の概要。 各エントリには、ラウンドインデックス、シーケンス、パルス密度、反復回数、ギャップ数、追加ゲート数、ゲート持続時間、そのラウンド前後の回路の深さおよびサイズ、ならびに警告が含まれています。
measurementErrorMitigation
タイプ: dict[str, Any]
少なくとも1つの PUB に対して「解決時にMEMを有効にする」が有効になっている場合。 M3 の緩和措置が適用されたか、部分的に適用されたか、スキップされたか、または失敗したかを報告します。 PUB の各エントリには、緩和措置が適用されていないカウントが保持され、緩和措置が成功した場合は、緩和措置が適用されたカウントも含まれます。
DDは、スケジュールされたアイドルウィンドウに実際のパルスやサブディレイを挿入するため、報告される回路の深さとサイズは通常、増加します。 この挿入処理では、スケジュールされたアイドルウィンドウの持続時間は維持されますが、ゲートの深さを維持しようとはしません。
出力のプレビュー
options.preview が のとき True、Orbit はメタデータのみを含む を返します PrimitiveResult。 量子コンピューティングジョブは送信されておらず、サンプラーのカウント値や推定値も設定されておらず、QPU時間は「.」と報告されています 0.0。 ハードウェア上で実行する前に、プレビューモードを使用してDD挿入レポートを確認してください。
シミュレータの出力
Falseが True で、 options.preview が の場合 options.simulator 、Orbit は関数コンテナ内のローカル Aer シミュレータを使用して、DD 後のワークロードを実行します。 PrimitiveResult結果は依然として通常の「Orbit」レコード simulator=True であり、トップレベルのメタデータには選択 simulatorNoise されたモードが記録されます。
測定誤差の低減に関する出力
少なくとも1つの PUB に対してMEMが有効に設定されると、Orbitはメタデータを付加 measurementErrorMitigation します。 MEMが成功すると、サンプラーレジスタの get_counts() メソッドは、MEMによって補正されたヒストグラムを返します。 measurementErrorMitigation["rawCounts"]修正されていないランタイムカウントは、引き続き利用可能です。
PUB に対する有効な緩和策のエントリには、次のようなものがあります:
enabledmethodstatusregisterrawCountsquasiDistributionmitigatedCountsmeasurementMappingmappingSourcerawCountsPreserved
動的回路の場合、Orbit はヒストグラムの後処理として、返された出力ビット列に MEM を適用します Orbitは、各ビットが端末側での測定によるものか、 回路中間での測定によるものかを判別せず、また、 未処理の測定結果を使用した条件分岐を、 事後的に、あるいはリアルタイムで変更することはありません。 この処理は、回路の出力として意図されたビット列には適していますが、 ユーザーはこれを、それらの出力を生成した動的な制御フローの修正と 解釈してはなりません。
緩和措置が失敗した場合、Orbitは生の結果を保持し、失敗ステータスとエラーメッセージをメタデータに記録します。
エラー処理
Orbitは、致命的な障害が発生した場合、構造化エラー qiskit_serverless.ServerlessError を発生させます。 各エラーには code、、 message、および のペイ details ロードが含まれています。 Orbitは、可能な場合はエラーを既存の IBM Quantum のエラーコードカテゴリにマッピングします。検証エラーにはコード が使用されます 1221。 軌道固有の誤差では、既存の IBM Quantum コードのうち、より適合するものが存在しない場合に限り 4709 、QE予約コード範囲 から まで 4700 が使用されます。 一般的なエラーコードに関するガイダンスについては、 『 IBM Quantum 』のエラーコードリファレンスを参照してください。
まず、エラー message とフィールド details を確認してください。 Orbitが特定できる場合、無効なフィールド、バックエンド、 PUB インデックス、または上流のQuantum Computeの障害を特定します。
- 入力の検証エラーにはコードが使用されます
1221。 これには、無効なオプションタイプ、未知のオプションキー、空のpubs、無効なdd_strategy、無効な 長pub_optionsさ、dd_qubitsとして解決された が 以外transpilation_modeの場合"validate"、選択されたバックエンドターゲットと互換性のない呼び出し元が準備した回路、無効なphysical_layout値、欠落している、または正でないbatch.max_pubs_per_job、無効なbatch.max_time、プレビューモードまたはシミュレータモードと組み合わされたバッチモード、および とのmem=True組み合わせやprimitive="estimator"、preview=True、 などの互換性のない MEM リクエストが含まれますsimulator=True。 1211サポートされていないプリミティブに関するエラーには、コード を使用します。primitive="estimator"Orbitでは、およびのみprimitive="sampler"を受け付けます。1009バックエンドの選択またはバックエンドの機能に関するエラーには、コード1007または が使用されます。 これには、利用できないバックエンド名、条件を満たす最も負荷の低いバックエンドが存在しない場合、またはDD挿入に必要なタイミング情報を持たないバックエンドなどが含まれます。- DDの挿入、DD後のベース変換、トランスピレーション、およびQASMのラウンドトリップで発生したエラーには、コード を使用します
1003。 これらは、選択されたバックエンドおよびDD戦略に対して、回路を一貫してトランスパイル、スケジューリング、変換、またはパディングできない場合に発生することがあります。 - Quantum Compute の送信失敗にはコード を使用します
1245。結果が生成される前に失敗したジョブにはコード を使用します5203。 Orbit は、上流の Quantum Compute エラーコードが発生した場合、そのコードを保持し、代わりに. 内の Orbit フォールバックコードを返しますdetails。 バッチの失敗については、 にはbatch_id、failed_partition、failed_job_id、、completed_job_ids、および も含まれるdetails場合がありますremaining_job_ids。 - 入力、バックエンド、またはDDの障害ではないOrbitの提出前準備段階における障害には、QEコードを使用します
4701。 このフィールドdetails.stageは、境界(例:runtime_serviceまたは )を指定しますpre_submit_preparation。 - 軌道結果形成の失敗には、QEコードが使用されます
4702。 これらは、Quantum Compute が誤った PUB の形状を持つ結果を返した場合、またはOrbitが必要なメタデータを添付できない場合に発生します。具体的にはresult_iteration、result_shape、pub_metadata、result_metadata、またはが特定details.stageされますbatch_result_merge。 - QEコード~
4703までは、将来的にOrbit固有のカテゴリ用に予約4709されており、現時点では割り当てられていません。
Orbit が結果を安全に保持できる場合、致命的ではない状態は、ジョブの失敗としてではなく警告として報告されます。 実行レベルの警告は、 PUB に表示されます metadata["quantum_elements_orbit"]["warnings"]。レベルごとの警告は、各 PUB レポートに表示されます。 Qiskit Functions 環境が警告イベントを受け入れる場合 1300 、回復可能な警告イベントではコード が使用されます。 例としては、がに優先される preview=True 場合 simulator=True、Orbit DDと並行してDD qiskit-ibm-runtime が有効になっている場合、Samplerがを無視する場合 runtime_options.resilience_level、あるいはプリミティブの結果は利用可能なにもかかわらずバックエンドのキャリブレーションのエクスポートに失敗する場合などが挙げられます。
測定誤差の軽減に失敗した場合も、致命的なエラーにはなりません。 M3 による緩和措置を適用できない場合、OrbitはSamplerの生の結果を保持し、Orbitのメタデータにエラーメッセージを記録 measurementErrorMitigation.status="failed" します。