mcpField
Q
qiskit

qiskit

github.com/kalarislabsその他7339 回インストール3 日前に更新
リポジトリ

qiskit について

このスキルは、現行のQiskit 2.x APIを使った量子回路の構築と、ローカルまたはIBM QPUでの実行を案内します。V2プリミティブ、ハードウェア互換回路、再現可能な実行を重視します。

主な機能

  1. 01量子回路の構築
  2. 02ローカル状態ベクトルのサンプリングと推定
  3. 03Qiskit Aerシミュレーション
  4. 04V2プリミティブによるIBM QPU実行
  5. 05ハードウェア対応ISAトランスパイル
  6. 06回路と結果の分析

活用シーン

  1. 01ローカルプリミティブでの回路テスト
  2. 02IBM QPUでのサンプリングや推定
  3. 03バックエンド制約に合わせた回路準備
  4. 04Qiskit 2.x APIへのコード移行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kalarislabs/research-agent-skills --skill qiskit

インストール後、Claude Code で/qiskitを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
algorithms.md
backends.md
circuits.md
migration.md
patterns.md
primitives.md
setup.md
sources.md
testing.md
transpilation.md
visualization.md
scripts/
check_environment.py
inspect_runtime.py
run_local_primitives.py

詳細

Qiskit

最新の Qiskit 2.x API を使用して回路を構築し、ハードウェア互換の命令セットアーキテクチャ(ISA)回路を準備して、V2 プリミティブを通じて実行します。

このスキルは、PyPI のリリース qiskit==2.5.0、qiskit-ibm-runtime==0.48.0、qiskit-aer==0.17.2 を対象に、2026-07-23 に検証されました。ピン留めを変更したり、新しくリリースされた動作を記載したりする前に、references/sources.md を確認してください。

適切な方法を選ぶ

目的推奨インターフェース
ローカルでの厳密なサンプリングqiskit.primitives.StatevectorSampler
ローカルでの厳密な期待値計算qiskit.primitives.StatevectorEstimator
高性能シミュレーションまたはノイズありシミュレーションQiskit Aer
IBM QPU のサンプリングqiskit_ibm_runtime.SamplerV2
IBM QPU の期待値計算と緩和qiskit_ibm_runtime.EstimatorV2
ネイティブプリミティブのないバックエンドBackendSamplerV2 または BackendEstimatorV2
開放系またはマスター方程式のダイナミクスQuTiP を推奨
微分可能な量子機械学習Qiskit との統合が必要でない限り、PennyLane を推奨

インストール

分離された環境を作成し、必要なコンポーネントのみをインストールします。

uv venv --python 3.13
source .venv/bin/activate

# Core SDK plus plotting support
uv pip install "qiskit[visualization]==2.5.0"

# Add only when needed
uv pip install "qiskit-ibm-runtime==0.48.0"
uv pip install "qiskit-aer==0.17.2"

qiskit-terra は qiskit ディストリビューションに置き換えられているため、インストールしないでください。Qiskit Runtime、Aer、Nature、Machine Learning、Optimization、Algorithms はそれぞれ別のディストリビューションです。

IBM アカウントのセットアップ、CI で安全な認証情報の取り扱い、オプションパッケージ、環境の修復については、references/setup.md をお読みください。

基本的なワークフロー

ハードウェアを対象とするすべてのワークロードで、次の手順に従ってください。

  1. マッピング:問題を回路に変換し、Estimator の場合は1つ以上のオブザーバブルに変換します。
  2. 最適化:選択したバックエンドに合わせて、パラメーター化された回路を一度だけ最適化します。
  3. レイアウトの適用:すべてのオブザーバブルにレイアウトを適用します。
  4. 実行:プリミティブ統合ブロック(PUB)を使用し、V2 プリミティブを通じて ISA 回路を実行します。
  5. 分析:レジスターを考慮した結果、メタデータ、不確かさ、リソース使用量を分析します。

オプティマイザーの反復ごとに、パラメーターを設定して回路を再トランスパイルしないでください。パラメーター化された回路は一度だけトランスパイルし、その後、PUB でパラメーター配列を渡してください。

ローカルでの簡単なサンプリング

from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler

circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure_all()  # creates the classical register named "meas"

sampler = StatevectorSampler(seed=7)
pub_result = sampler.run([circuit], shots=1024).result()[0]
counts = pub_result.data.meas.get_counts()
print(counts)

Sampler V2 はショット数と古典レジスターの構造を保持します。レジスターには実際の名前でアクセスしてください。measure_all() は meas を使用します。

ローカルでの簡単な推定

import numpy as np
from qiskit import QuantumCircuit
from qiskit.circuit import Parameter
from qiskit.primitives import StatevectorEstimator
from qiskit.quantum_info import SparsePauliOp

theta = Parameter("theta")
circuit = QuantumCircuit(2)
circuit.ry(theta, 0)
circuit.cx(0, 1)

observable = SparsePauliOp.from_list([("ZZ", 1.0), ("XX", 0.5)])
parameter_values = [[0.0], [np.pi / 4], [np.pi / 2]]

estimator = StatevectorEstimator(seed=7)
pub = (circuit, observable, parameter_values)
pub_result = estimator.run([pub]).result()[0]
print(pub_result.data.evs)

Estimator の回路に最終測定を含めないでください。PUB 配列はブロードキャストされます。大規模なスイープを構築する前に、回路のパラメーター順序を確認してください。

IBM QPU のサンプリング

この例では、references/setup.md の説明に従って、認証情報が安全に保存されていることを前提としています。API キーを埋め込んだり、出力したりすることはありません。

from qiskit import QuantumCircuit
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler

service = QiskitRuntimeService()
backend = service.least_busy(
    operational=True,
    simulator=False,
    min_num_qubits=2,
)

circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure_all()

pass_manager = generate_preset_pass_manager(
    backend=backend,
    optimization_level=1,
    seed_transpiler=7,
)
isa_circuit = pass_manager.run(circuit)

sampler = Sampler(mode=backend)
job = sampler.run([isa_circuit], shots=1024)
print("job_id:", job.job_id())
counts = job.result()[0].data.meas.get_counts()

後からジョブを取得できるよう、結果を待つ前にジョブ ID を保存してください。

IBM QPU の推定

Runtime Estimator では、ISA 回路と、トランスパイラーのレイアウトを通じてマッピングされたオブザーバブルの両方が必要です。

from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_ibm_runtime import EstimatorV2 as Estimator

circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
observable = SparsePauliOp.from_list([("ZZ", 1.0)])

pass_manager = generate_preset_pass_manager(
    backend=backend,
    optimization_level=1,
    seed_transpiler=7,
)
isa_circuit = pass_manager.run(circuit)
isa_observable = observable.apply_layout(isa_circuit.layout)

estimator = Estimator(
    mode=backend,
    options={"resilience_level": 1},
)
pub_result = estimator.run(
    [(isa_circuit, isa_observable)],
    precision=0.02,
).result()[0]
print(pub_result.data.evs, pub_result.data.stds)

誤差緩和によってすべてのワークロードが改善するとは限らず、コストも増加します。オプションと結果のメタデータをすべて記録してください。

譲れない Qiskit 2.x のルール

  • V2 プリミティブインターフェースと PUB 入力を使用します。新たに V1 の Sampler、Estimator、QuantumInstance のコードを書かないでください。
  • Runtime プリミティブは ISA 回路を受け取り、レイアウト、ルーティング、基底変換は行いません。
  • Estimator のオブザーバブルには、トランスパイラーのレイアウトを observable.apply_layout(isa_circuit.layout) で適用します。
  • Runtime プリミティブでは mode=backend、mode=session、または mode=batch を使用します。
  • レジリエンスレベルと期待値のエラー緩和には EstimatorV2 を使用します。Sampler には異なるノイズ管理オプションがあり、Estimator のようなレジリエンスレベルはありません。
  • ハードウェア制約の情報源として、BackendV2.target、backend.operation_names、backend.coupling_map、およびバックエンドの直接属性を参照します。backend.configuration() や BackendProperties は使用しないでください。
  • Sampler の出力はクラシックレジスター名で読み取ります。ビット列は最上位ビットが先に表示され、Qiskit の量子ビット 0 は慣例的に最下位ビットです。
  • コンパイル設定を比較する場合は、固定の seed_transpiler を使用します。シミュレーターのシードを設定しても QPU の結果は決定的になりません。
  • qiskit.pulse は Qiskit 2.0 で削除されました。IBM ハードウェアではサポートされている分数ゲートを使用し、パルスモデルの研究では Qiskit Dynamics を使用してください。
  • QPY は Qiskit ネイティブの回路シリアライズ形式です。信頼できない回路アーティファクトには Python pickle を使用しないでください。

旧 API から現行 API への詳しい対応表は、references/migration.md を参照してください。

実行モード

ワークロードの形態とアカウントプランに応じて選択します。

  • ジョブモード:単発の処理に使用します。プリミティブを mode=backend でインスタンス化します。
  • バッチモード:独立したジョブをまとめて送信します。Open Plan で利用できます。
  • セッションモード:優先的な後続実行が有効な反復ジョブに使用します。Open Plan では利用できません。
from qiskit_ibm_runtime import Batch, SamplerV2 as Sampler

with Batch(backend=backend, max_time="10m") as batch:
    sampler = Sampler(mode=batch)
    jobs = [sampler.run([circuit], shots=1024) for circuit in isa_circuits]

results = [job.result() for job in jobs]

送信後にセッションとバッチを終了します。コンテキストを抜けると新しい送信は停止しますが、受け付け済みのジョブはサービスの制限に従って完了します。

リファレンス一覧

現在のタスクに必要なファイルのみを読みます。

トピックリファレンス
バージョン、インストール、認証、CIreferences/setup.md
回路、パラメーター、制御フロー、QPYreferences/circuits.md
V2 PUB、ブロードキャスト、ローカル結果と Runtime の結果references/primitives.md
ターゲット、ISA 回路、レイアウト、パスマネージャーreferences/transpilation.md
IBM バックエンド、モード、ジョブ、Aer、エラー緩和references/backends.md
マップ/最適化/実行/分析の一連のパターンreferences/patterns.md
アルゴリズム、アドオン、Nature、ML、Optimizationreferences/algorithms.md
回路、結果、状態、バックエンドのプロットreferences/visualization.md
Qiskit 0.x/1.x と Runtime の移行references/migration.md
テスト、再現性、トラブルシューティングreferences/testing.md
上流ドキュメント、リリースノート、バージョンの基準references/sources.md

同梱スクリプト

スキルのディレクトリから実行します。

# Installed-package and legacy-environment checks; no network or credential reads
python scripts/check_environment.py

# Runnable V2 local Sampler and Estimator example
python scripts/run_local_primitives.py --shots 1024 --seed 7

# Read-only IBM backend capability inspection; uses saved credentials
python scripts/inspect_runtime.py --min-qubits 5

Runtime の検査スクリプトはバックエンドを選択または検査しますが、量子ジョブは送信しません。

最終チェックリスト

Qiskit のコードを返す前に、以下を確認します。

  1. パッケージのバージョンと Python との互換性を確認します。
  2. statevector プリミティブまたは Aer を使ってローカルで実行します。
  3. パラメーターの順序、オブザーバブルの量子ビット数、クラシックレジスター名を確認します。
  4. 正確な BackendV2 ターゲットに対してトランスパイルし、回路の深さと二量子ビット演算を確認します。
  5. すべてのオブザーバブルに最終レイアウトを適用します。
  6. QPU のコストを見積もり、ジョブ、バッチ、セッションの各モードから選択します。
  7. ジョブ ID、パッケージのバージョン、シード、バックエンド名、プリミティブのオプション、結果のメタデータを保存します。
  8. ソース、ログ、ノートブック、バージョン管理に API キーを決して公開しないでください。

関連スキル

  • cirq:Google の量子コンピューティングフレームワークです。
  • pennylane:自動微分機能を備えた、ハードウェアに依存しない量子機械学習フレームワークです。
  • pi-agent:最小限のターミナル向けコーディングハーネスである Pi を構築し、使用します。

コメント