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

Orbit - Quantum Elementsが提供するQiskit Function

APIリファレンスをご覧ください

Qiskit Functionsは実験的機能であり、IBM Quantum® Premium Plan、Flex Plan、およびOn-Prem(IBM Quantum Platform API経由)Planのユーザーのみが利用できます。これらはプレビューリリースの状態であり、変更される可能性があります。

概要

量子ハードウェアは進化を続けていますが、ノイズとデコヒーレンスは依然として実用的な量子回路の深さと信頼性を制約しています。利用可能なアプローチの中でも、ダイナミカルデカップリング(DD)、最適化されたトランスパイル、測定エラー緩和(MEM)という3つの補完的な手法が、これらの制約を大幅に緩和できます。最適化されたトランスパイルは回路の深さを減らし、ターゲットハードウェアの接続性に回路をより適合させます。DDは慎重に設計された制御シーケンスによりアイドル時間のノイズを抑制し、MEMは読み出しエラーの影響を軽減し、後処理中に適用できます。

効果的なDD戦略の選択は特に自明ではありません。なぜなら、多数のシーケンスファミリーが利用可能であり、あるシーケンスが特定の回路やノイズ環境でうまく機能しても、別の環境ではうまく機能しない場合があるからです。トランスパイル、DD、MEMの利点は問題、ハードウェア、ワークロードに依存します。単独または組み合わせて使用することでパフォーマンスを向上できますが、すべての構成で普遍的に有益というわけではありません。

Quantum Elementsが開発したQiskit FunctionであるOrbitは、これら3つのコンポーネントすべてをシームレスに統一されたワークフローに組み合わせ、IBM Quantumハードウェア上での回路実行の改善に簡単に利用できるようにします。主要な形式では、Orbitは元の回路ロジックを保持しながら、アイドル期間中に量子状態を保護するアクティブなエラー抑制戦略を自動的に適用します。特筆すべきは、これを追加の量子または古典的な前処理時間を導入することなく行うため、ワークフロー内で不要な追加コストや待機時間を回避できる点です。

ブラックボックスとして動作するのではなく、Orbitはユーザーが特定の実験に対して最適化コンポーネントを評価し、微調整できるようにします。ユーザーは、最適化されたトランスパイル、DD、MEMを個別に有効または無効にしたり、自動DD選択とユーザー指定のシーケンスを比較したり、同じワークフロー内で複数の構成を実行したりできます。各構成を生の回路と比較することで、ユーザーは自分の回路とBackendに対してどの手法が測定可能な利点をもたらすかを判断し、異なる最適化手法間の相互作用を特定し、実験目的に最も適した構成を選択できます。このプロセスは、パフォーマンス向上がどこから生じているかを理解し、特定のワークロードに対して量子回路を最適化する際により多くの情報に基づいた意思決定を行うために、ユーザーを導きます。

説明

Orbitは、IBM Quantum Backend上での量子回路の実行を強化するように設計されています。自動モードでは、ユーザーは手動で選択または設定する必要なく、高次で堅牢なDDシーケンスをシームレスに適用できます。上級ユーザーは代わりに、利用可能な高次シーケンスを試して、特定の回路に最高のパフォーマンスをもたらすアプローチを特定し、最適化できます。

Orbitはまた、個別のキャリブレーションと緩和ワークフローに通常必要な追加ジョブを必要とせずに、即座にMEMを提供します。回路の途中での測定を伴う量子エラー訂正回路や動的回路など、トランスパイルによって回路構造を変更すべきではないワークロードの場合、Orbitはユーザーの既存のトランスパイル戦略に干渉することなくDDとMEMを適用できます。すでに好みのアプローチを持っていないユーザーのために、Orbitにはエラー抑制と読み出し緩和技術を適用する前にターゲットハードウェア向けに回路を最適化する組み込みのトランスパイラも含まれています。

追加の回路サンプリング、外挿、または大規模な古典的後処理に依存するアプローチとは異なり、Orbitは実行中のエラー抑制に焦点を当てています。このFunctionは、元の回路ロジックを保持しながら低いオーバーヘッドを導入するように設計されています。ユーザーは結果の回路を検査し、Orbitで最適化された実行と標準的な実行を直接比較できます。

実用的なOrbitのワークフローは以下のとおりです。

  1. 量子回路を定義し、Qiskit Functions Catalogを通じてOrbitを選択します。

  2. 「Raw」モードを使用してOrbitなしの回路を含め、生の回路のベースラインを確立します。

  3. 自動またはユーザー選択のDDシーケンス、MEM、最適化されたトランスパイルなど、適用する最適化戦略を選択します。

  4. 個々の手法を有効または無効にしたり、複数の構成を送信したりして、それぞれの効果と組み合わせた効果を評価します。

Orbitは、量子ビットがゲートに積極的に関与していないアイドル期間やスケジューリングギャップを含む回路に特に有用です。回路の途中での測定を伴うワークフローや耐障害性量子コンピューティング実験を含む、静的回路と動的回路の両方をサポートします。典型的な応用例には、量子エラー訂正、正方格子およびヘビーヘックス格子でのサーフェスコード実験、Bernstein-Vaziraniなどのオラクルアルゴリズム、フーリエ変換回路、変分量子アルゴリズム、ハミルトニアンシミュレーション、ベンチマーク実験、ハードウェアを考慮した回路最適化が含まれます。

耐障害性の時代を見据えると、Orbitは量子エラー訂正とシームレスに組み合わせることができるため、耐障害性量子コンピューティングのワークフローとも互換性があります。長期的には、Orbitは論理量子ビットを保護するための将来を見据えた道筋として、論理レベルのダイナミカルデカップリング[1]を指し示しています。以下の例では、量子エラー検出のもとで2つの論理量子ビットをエンタングルさせ、論理ベル状態を作成しました。量子エラー検出のみの場合、ベル状態の忠実度は数十マイクロ秒にわたって約44%まで減衰しましたが、QEDとOrbit方式の保護を組み合わせた場合、論理ベル状態の忠実度は同じ時間窓にわたってスケールの上限近くに保たれ、約95.3%に達しました。 Orbit Quantum Circuit Development Platform

ベンチマーク

以下の結果は、IBM Quantumハードウェア上での代表的なOrbitの実行結果をまとめたものです。他のハードウェアベンチマークと同様に、結果は選択したデバイス、キャリブレーション状態、回路、実行設定に依存します。

指標量子ビット数QPU詳細Orbit改善率
Bernstein–Vazirani隠されたビット列の忠実度26
60
70
Heron r3生の回路対フルOrbit、
トランスパイルのみ対フルOrbit、
フルOrbitのみ
75x
66x
N/A
QFT(ユニタリ)忠実度10Heron r2
Heron r3
Orbit対生の回路:
約44%対約35%
約67%対約61%
1.26x
1.09x
QFT(動的回路)忠実度10
20
Heron r3Orbit対生の回路:
約55%対約2%
約10%対約0%
27.51x
N/A
長距離ベル状態(動的回路)忠実度30
60
Heron r2N/A1.78x
1.11x
サーフェスコード
(正方格子)
論理エラー確率25Nighthawk r11ラウンド
5ラウンド
10ラウンド
1.01x
1.15x
1.12x
サーフェスコード
(ヘビーヘックス)
論理エラー確率65Heron r31ラウンド
5ラウンド
10ラウンド
4.11x
2.04x
1.39x
VQE理想エネルギーに対する絶対誤差8Heron r3Orbit対生の回路:
56mHa対1342 mHa
24x
QAOA成功確率5Heron r2N/A1.46x
[[4,2,2]]コード(論理レベルのエラー抑制)エンタングルしたベル状態の論理忠実度4Heron r255 μsにわたる平均忠実度1.63x

指標の定義

  • Bernstein–Vazirani隠されたビット列の忠実度: 正しい隠されたビット列を測定する確率です。この指標は、回路サイズが大きくなるにつれてアルゴリズムが意図した解をどれだけ確実に復元できるかを示します。表には、3つの異なる構成で正常に評価された最大の隠されたビット列が報告されています:(i)Orbitを使用しない生の回路で、26量子ビットに達しました。(ii)トランスパイルのみを行った回路で、60量子ビットに達しました。(iii)フルOrbitワークフローを使用した回路で、70量子ビットに達しました。生の回路(i)については、改善率は変更されていない回路と比較したDDとMEMによるパフォーマンス向上を表します。トランスパイルのみの構成(ii)については、最適にトランスパイルされた回路にDDとMEMを追加することで得られる改善を表します。フルOrbit構成(iii)については、Orbitのすべてのコンポーネント(トランスパイル、DD、MEM)が有効化された場合にのみゼロでない成功確率が得られたため、ベースラインの改善率は報告されていません。以下に具体例を示します。

  • 量子フーリエ変換の忠実度: ユニタリおよび動的回路の両方のQFT実装[2]について、忠実度は20種類の異なる入力状態にわたって、実験的に実装された変換と理想的なQFTプロセスとの一致度を測定します。動的回路には、回路の途中での測定と古典的なフィードフォワードによる大幅なアイドル時間が含まれており、その間にダイナミカルデカップリングによってデコヒーレンスを抑制できます。報告されている改善は、Orbitで得られた忠実度と生の忠実度を比較したものです。

  • 長距離ベル状態の準備: 最大60個の中間量子ビットで隔てられた2つの量子ビット間で、動的回路とフィードフォワード操作を使用してベル状態を作成し、局所的に接続された量子ハードウェア上での効率的な長距離エンタングルメントを実証します[3]。Orbitは最適な量子ビットルーティングを特定し、フィードフォワード測定中に量子ビットを保護し、MEMを適用して読み出しエラーを緩和します。

  • サーフェスコードの論理エラー確率: ヘビーヘックスサーフェスコード[4]と正方格子サーフェスコード[5]について、符号化された論理状態を繰り返しのエラー訂正ラウンドにわたって保持する量子メモリ実験が行われました。論理エラー確率は、蓄積されたエラーによって符号化された情報が誤って復元される確率を測定します(エラーが低いほど良好です)。報告されている改善は、生の回路の論理エラー確率とOrbitで得られた論理エラー確率を比較したものです。

  • VQEの絶対誤差: 最適化されたユニタリ結合クラスターアンザッツを用いたVQEにより、LiHの基底状態エネルギーを推定します[6]。測定されたエネルギーは、ノイズのない回路から得られる対応する理想エネルギーと比較されます。この指標は、測定値と理想値の間の絶対差です(値が小さいほど良好です)。報告されている改善は次のとおりです。

Improvement factor=ErawEidealEOrbitEideal.\text{Improvement factor} = \frac{|E_{\mathrm{raw}}-E_{\mathrm{ideal}}|} {|E_{\mathrm{Orbit}}-E_{\mathrm{ideal}}|}.

1より大きい値は、Orbitがダイナミカルデカップリングを使用しない実行と比較してエネルギーエラーを減少させることを示します。

  • QAOAの成功確率: バタフライグラフ上で定義された最適化問題の最適解に対応するビット列を測定する確率です。報告されている改善は、Orbitで得られた成功確率と生の回路で得られた成功確率を比較したものです。

  • 論理忠実度: [[4,2,2]]論理ダイナミカルデカップリング実験[1]では、2つの論理量子ビットが4つの物理量子ビットに符号化され、エンタングルした論理ベル状態として準備されました。論理忠実度は、復元された符号化状態とターゲットの論理ベル状態との一致度を測定します。報告されている改善は、Orbitとエラー検出(コードの能力)を組み合わせて得られた平均論理忠実度と、コード単独で使用した場合に得られた平均論理忠実度を比較したものです。

はじめに

IBM Quantum Platform APIキーを使用して認証し、以下のようにOrbit Functionを選択します。このスニペットは、すでにローカル環境にアカウントを保存していることを前提としています。

# Added by doQumentation — required packages for this notebook
!pip install -q matplotlib qiskit qiskit-ibm-catalog
from qiskit_ibm_catalog import QiskitFunctionsCatalog
from qiskit import QuantumCircuit

catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")
# Verify that you have access to the function.
catalog.list()
[QiskitFunction(quantum-elements/orbit)]
# Load the function.
orbit = catalog.load("quantum-elements/orbit")

以下の例では、Bernstein-Vazirani回路を構築し、1つのジョブ内で生の実行とOrbitのデフォルト設定という2つの方法でOrbitに送信します。

生の回路とOrbitを直接比較したい場合は、このパターンを使用してください。

Bernstein-Vazirani回路を構築する

隠されたビット列を選択し、論理回路を構築します。追加の量子ビットはオラクルのターゲットであり、入力量子ビットは測定されます。

def create_bv_circuit(hidden_bitstring: str) -> QuantumCircuit:
width = len(hidden_bitstring)
circuit = QuantumCircuit(width + 1, width)

circuit.x(width)
circuit.h(range(width + 1))

for input_qubit, bit in enumerate(reversed(hidden_bitstring)):
if bit == "1":
circuit.cx(input_qubit, width)

circuit.barrier()
circuit.h(range(width + 1))
circuit.measure(range(width), range(width))
return circuit

circuit_width = 50
hidden_bitstring = "1" * circuit_width
shots = 4096

bv_circuit = create_bv_circuit(hidden_bitstring)
bv_circuit.count_ops()
OrderedDict([('h', 102),
('cx', 50),
('measure', 50),
('x', 1),
('barrier', 1)])

Orbitワークロードを準備する

1つのSampler PUBを作成し、それを複製して2つの比較モードを作成します。Orbitは論理回路を受け取り、実行時に選択したBackendにマッピングします。

base_pub = (bv_circuit, None, shots)
comparison_labels = ["raw", "orbit"]
pubs = [base_pub] * len(comparison_labels)

生の実行とOrbitのデフォルト設定を実行する

pub_optionsは、最初のPUBをOrbitの最適化、DD、MEMをスキップする生モードに割り当て、2番目のPUBを最適化されたトランスパイル、自動ダイナミカルデカップリング(DD)挿入、測定エラー緩和(MEM)を含むOrbitのデフォルト設定に割り当てます。

backend_name = "ibm_kingston"

job = orbit.run(
primitive="sampler",
pubs=pubs,
backend_name=backend_name,
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
],
"save_backend_info": True,
},
)

# Check the job ID and status
print(job.job_id)
print(job.status())
c0f1b99c-8dfa-4ebb-9560-d9a37c990acc
QUEUED

結果を取得し、カウントを使用して生の回路とOrbitで強化された回路を比較します。Sampler結果の場合、返された古典レジスタに対するget_counts()が出力ヒストグラムを提供します。Orbit PUBに対してMEMが成功すると、このヒストグラムはすでにMEM補正済みです。緩和されていないカウントは、Orbitのメタデータ内のmeasurementErrorMitigation["rawCounts"]で引き続き利用できます。

def extract_counts(pub_result) -> dict[str, int]:
data = getattr(pub_result, "data", None)
if data is None:
raise TypeError("pub_result.data is missing")

for name in dir(data):
if name.startswith("_"):
continue
register = getattr(data, name)
get_counts = getattr(register, "get_counts", None)
if callable(get_counts):
counts = get_counts()
if counts:
return counts

raise TypeError(
"No classical register with get_counts() found in pub_result.data"
)

result = job.result()
if len(result) != len(comparison_labels):
raise RuntimeError(
f"Expected {len(comparison_labels)} PUB results, received {len(result)}."
)

comparison_counts = {
label: extract_counts(pub_result)
for label, pub_result in zip(comparison_labels, result, strict=True)
}
correct_counts = {
label: counts.get(hidden_bitstring, 0)
for label, counts in comparison_counts.items()
}

print(
{
"hidden_bitstring": hidden_bitstring,
"correct_counts": correct_counts,
"shots": shots,
}
)
{'hidden_bitstring': '11111111111111111111111111111111111111111111111111', 'correct_counts': {'raw': 0, 'orbit': 184}, 'shots': 4096}

生の回路とOrbitで強化された回路を視覚的に比較します。

import matplotlib.pyplot as plt

labels = list(correct_counts)
values = list(correct_counts.values())
fig, ax = plt.subplots(figsize=(7, 4))
bars = ax.bar(labels, values, width=0.55)
ax.bar_label(bars, labels=[f"{value:g}" for value in values], padding=3)
ax.set_xlabel("Circuit execution mode")
ax.set_ylabel("Correct hidden-bitstring count")
ax.set_title(f"{circuit_width}-qubit Bernstein-Vazirani on {backend_name}")
ax.set_ylim(0, max(1, 1.15 * max(values)))
ax.grid(axis="y", alpha=0.25)
fig.tight_layout()
plt.show()

Output of the previous code cell

サポートを受ける

Quantum Elementsサポートにお問い合わせください:info@quantumelements.ai

以下の情報を必ず含めてください。

  • Qiskit Function Job ID(qiskit-ibm-catalog)、job.job_id

  • Backend名

  • 生モードとOrbitモードで使用したOrbitのpub_options

  • 問題の詳細な説明

  • 関連するエラーメッセージまたはエラーコード

  • 問題を再現する手順

次のステップ

推奨事項
  • 別のBackend、量子ビット数、または別の隠されたビット列を試してください。

  • 量子フーリエ変換に関するチュートリアルを読んで、Orbit対応のカスタムDD戦略を定義する方法や、回路の途中での測定とフィードフォワード操作を伴う動的回路にDDを適用する方法を学んでください。

  • Orbitのすべてのオプションの詳細な説明については、APIリファレンスをご覧ください。

参考文献

  1. Logical-level error suppression combined with Quantum Error Detection, Nature Communications (2026)

  2. Quantum Fourier Transform Using Dynamic Circuits, Physical Review Letters (2024)

  3. Efficient Long-Range Entanglement Using Dynamic Circuits, PRX Quantum (2024)

  4. Surface code scaling experiments on IBM Heron with heavy-hex connectivity, arXiv:2510.18847

  5. Surface code experiments on IBM Nighthawk with square-lattice connectivity, arXiv:2606.11496

  6. VQE benchmark reference, Nature Physics (2024)