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 token。
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 的列表输入将多个电路批量打包到单个任务中
改用免费的云端模拟器
对于大多数开发工作,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 指南。