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 运行时间仅为毫秒级。对于试验量子算法的个人开发者来说,很少会触及这个上限。
2026年8月更新:Heron r2 与额外计算时长
IBM 于2026年3月将其性能更强的 Heron r2 处理器(ibm_kingston)加入 Open Plan,使免费层用户能够获得比最初的 Heron r1 系统明显更好的双量子比特门保真度。如果你有一段时间没有运行任务了,值得检查一下 ibm_kingston 是否出现在你的 service.backends() 列表中。
IBM 还为活跃用户推出了一次性优惠:在任意12个月窗口期内累计使用过至少20分钟 QPU 时间的用户,可以选择加入一项优惠,在接下来的12个月内额外获得 180分钟的计算时长,是标准月度额度的18倍。该优惠仅限于特定的报名窗口期,并非 Open Plan 每月10分钟基准的永久性调整,因此不要假设它仍然有效。请查看 Open Plan 页面以了解你的账户当前的实际情况。
可用系统的变化也有另一面,IBM 已于2026年4月初退役了 ibm_torino,这是 Open Plan 运作的正常组成部分:随着更新的硬件上线,系统会被加入,旧系统在使用寿命结束后也会被淘汰。这正是下方 service.backends() 代码片段比任何静态表格都更重要的原因。请将本文中的列表视为某一时刻的快照,而非实时状态。
可用的免费 QPU
截至2026年年中,IBM 的 Open Plan 提供以下系统的访问权限:
| 系统 | 量子比特 | 技术 | 典型排队时间 |
|---|---|---|---|
IBM Heron r2(ibm_kingston) | 156 | Heron 处理器,更高保真度 | 30–120 分钟 |
| IBM Eagle | 127 | 超导 | 10–60 分钟 |
| IBM Heron r1 | 133 | Heron 处理器 | 30–120 分钟 |
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 指南。