IBM Quantum は、量子コンピューティング業界で最もアクセスしやすい無料プランを提供しています。無料の IBM ID があれば、最大 127 量子ビットの実際の量子プロセッサにアクセスできます。費用も、クレジットカードも、申請も不要です。それが実際に何を意味するのか、正確に見ていきましょう。
無料プランに含まれるもの
IBM Quantum の Open Plan では以下が利用できます:
- 一般公開されているすべての量子システムへの無制限アクセス
- 月あたり 10分の量子時間(回路が QPU 上で実際に実行されている時間)
- IBM シミュレータへのアクセス(時間制限なし。statevector、QASM、matrix product state)
- Qiskit Runtime — 回路を実行するための最新の IBM 実行環境
- チュートリアルやコースを備えた IBM Quantum Learning プラットフォーム
月10分の制限は厳しく聞こえますが、実際にはほとんどの研究用回路は数ミリ秒の実 QPU 時間で完了します。量子アルゴリズムを試している個人開発者がこの制限に達することはめったにありません。
利用可能な無料 QPU
2026年初頭時点で、IBM の Open Plan には以下へのアクセスが含まれます:
| システム | 量子ビット数 | 技術 | 一般的なキュー |
|---|---|---|---|
| IBM Eagle | 127 | 超伝導 | 10〜60分 |
| IBM Heron r1 | 133 | Heron プロセッサ | 30〜120分 |
| IBM Falcon | 27 | 超伝導 | 5〜30分 |
IBM は定期的にシステムの引退と追加を行っています。現在のリストを確認するには Qiskit Runtime サービスを使用してください:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(channel="ibm_quantum")
backends = service.backends(
operational=True,
simulator=False,
min_num_qubits=1
)
for b in backends:
print(f"{b.name}: {b.num_qubits} qubits, status: {b.status().status_msg}")
10分でのセットアップ
ステップ1: 無料アカウントの作成
quantum.ibm.com にアクセスし、無料の IBM ID を作成します。支払い情報は不要です。
ステップ2: SDK のインストール
pip install qiskit qiskit-ibm-runtime
ステップ3: 認証情報の保存
IBM Quantum ダッシュボードにログインした後、Account ページから API トークンをコピーします。
from qiskit_ibm_runtime import QiskitRuntimeService
# Run this once to save your token locally
QiskitRuntimeService.save_account(
channel="ibm_quantum",
token="YOUR_API_TOKEN_HERE",
overwrite=True
)
認証情報は ~/.qiskit/qiskit-ibm.json に保存されます。次回以降はこの操作は不要です。
ステップ4: 最初のジョブを投入する
from qiskit import QuantumCircuit
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
# Build a Bell state
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
# Connect and pick the least-busy free QPU
service = QiskitRuntimeService(channel="ibm_quantum")
backend = service.least_busy(
operational=True,
simulator=False,
min_num_qubits=2
)
print(f"Submitting to: {backend.name}")
# Transpile for the target device
pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_qc = pm.run(qc)
# Submit
sampler = Sampler(mode=backend)
job = sampler.run([isa_qc], shots=1024)
print(f"Job ID: {job.job_id()}")
print(f"Status: {job.status()}")
result = job.result()
print(result[0].data.c.get_counts())
キュー待ち時間を理解する
キュー待ち時間は、無料プランで最もよくある不満の種です。何が起きているのかを説明します:
- あなたは世界中の他のすべての Open Plan ユーザーと QPU を共有しています
- ジョブはシステムごとにキューに入れられます —
least_busy()は最も待ち時間の短いものを見つけるのに役立ちます - 一般的な待ち時間: システムの負荷に応じて5分から2時間
キュー待ち時間を最小限に抑えるヒント:
- オフピーク時間帯に実行する(ヨーロッパの朝 = アメリカの夜)
- 特定のシステムを指定するのではなく
service.least_busy()を使う - 開発時にはローカルで Aer シミュレータを使用し、最終検証のときだけ実機に投入する
- SamplerV2 のリスト入力を使って複数の回路を1つのジョブにまとめる
代わりに無料のクラウドシミュレータを使う
ほとんどの開発作業では、IBM のクラウドホスト型シミュレータは実機のキューに並ぶよりも高速です:
# IBM cloud QASM simulator (up to 32 qubits, no queue)
backend = service.backend("ibmq_qasm_simulator")
# Or use the Statevector simulator (exact simulation)
backend = service.backend("simulator_statevector")
これらのシミュレータはキュー待ち時間がなく、即座に実行されます。実際のノイズ特性が必要な場合や、実機でベンチマークを取りたい場合には実 QPU を使用してください。
HLQuantum を IBM Quantum で使う
複数の SDK を使用している場合、HLQuantum は IBM ハードウェアへのよりすっきりしたインターフェースを提供します:
import hlquantum as hlq
qc = hlq.Circuit(2)
qc.h(0).cx(0, 1).measure_all()
# Run on IBM's free QPU
result = hlq.run(
qc,
backend="qiskit",
device="ibm_sherbrooke", # or use "auto" for least busy
shots=1024,
error_mitigation="zne"
)
print(result)
HLQuantum はトランスパイル、ジョブの投入、結果の解析を自動的に処理します。高度な設定については Qiskit SDK ガイド の全文を参照してください。