pennylane
让量子电路像神经网络一样被训练——量子机器学习(QML)领域最成熟的开源框架,支持自动微分与四大主流ML框架集成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让量子电路像神经网络一样被训练——量子机器学习(QML)领域最成熟的开源框架,支持自动微分与四大主流ML框架集成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:PennyLane 官方组织头像
想象一下这样的场景:你在电脑上写了几行 Python 代码,就能让真实的量子计算机完成加减乘除,还能让量子电路像训练神经网络一样,根据损失函数的梯度来调整参数——不需要懂量子力学的深层数学,只需掌握深度学习的基本概念,就能踏入量子机器学习的前沿领域。这正是 PennyLane 正在做的事情。
2017年前后,量子计算开始从实验室走向工程化,但量子算法开发面临一个根本性问题:传统的量子编程框架(如 Cirq、Qiskit)专注于电路设计,却没有提供自动微分能力——而自动微分恰恰是现代深度学习框架(PyTorch、TensorFlow、JAX)的核心优势。开发者想在量子电路上做梯度下降训练,几乎只能手写数值微分,效率低且精度差。
Xanadu 公司(一家加拿大量子计算公司)的团队敏锐地捕捉到这个痛点,于 2018 年推出了 PennyLane。它的核心设计理念是:将量子电路视为可微分函数,接入经典机器学习生态。就像 PyTorch 让神经网络训练变得平民化,PennyLane 让量子机器学习(QML)的实验变得触手可及。
2026年3月,PennyLane 宣布将官方 import 别名从 import pennylane as qml 升级为 import pennylane as qp(qp = quantum python),标志着它已从单一的 QML 工具进化为通用量子编程平台。Xanadu 仍然是主要维护者,背后有多家量子计算研究机构的支持。
如果把量子计算比作一台超级计算机,PennyLane 就是这台计算机的「驱动和开发框架」。更贴近生活的类比是:
这是 PennyLane 最核心的能力。它原生支持参数化量子电路(Parameterized Quantum Circuits,PQC),并通过自动微分计算量子梯度。支持的自动微分框架包括:
这意味着你可以用 PyTorch 的 optimizer 配合 PennyLane 的量子电路,一个 loss.backward() 就同时包含经典和量子两部分梯度。
PennyLane 的设计哲学是「一次编写,多处运行」,同一套量子电路代码可以跑在不同后端上:
PennyLane 内置了大量量子算法的实现和演示:
内置 QubitEmbedding、VQE 等量子化学专用工具,可用于分子轨道模拟和化学反应的量子计算。Xanadu 团队在该领域有深厚的学术积累。
PennyLane 官方团队还开发了 Catalyst 量子编译器,支持动态量子电路、中途测量和硬件原生控制流,代表了量子编译领域的最新进展。
pennylane/
├── pennylane/ # 核心源码
│ ├── templates/ # 量子电路模板
│ ├── grad_utils/ # 梯度计算
│ ├── math/ # 数学工具函数
│ ├── devices/ # 后端设备驱动
│ └── transforms/ # 电路变换
├── tests/ # 完整测试套件
├── doc/ # 文档(ReadTheDocs)
├── Makefile # 开发任务自动化
└── pyproject.toml # 现代 Python 项目配置
截至2026年6月,项目已有 6,893 个 commit,代码库非常活跃。作为一个超过7年的成熟项目,PennyLane 在代码质量、测试覆盖和文档方面都达到了很高的标准。代码遵循 Apache-2.0 许可证,完全开源。
# 标准安装(从 PyPI)
pip install pennylane
# 或使用 uv(更快)
uv pip install pennylane
# GPU 加速(需要 NVIDIA GPU)
pip install pennylane-lightning-gpu
# 与 PyTorch 集成
pip install torch pennylane
import pennylane as qp
import numpy as np
# 定义量子设备(本地模拟器)
dev = qp.device('default.qubit', wires=4)
# 定义量子电路(可训练参数)
@qp.qnode(dev)
def circuit(params):
qp.Hadamard(wires=0)
qp.RX(params[0], wires=0) # RX 旋转门
qp.CNOT(wires=[0, 1]) # 受控非门
qp.RY(params[1], wires=1)
return qp.expval(qp.PauliZ(0)) # 测量 Z 算子期望值
# 优化器训练
opt = qp.optimize.AdamOptimizer(0.1)
params = np.array([0.5, 0.5], requires_grad=True)
for i in range(100):
params = opt.step(lambda p: circuit(p)**2, params)
if i % 20 == 0:
print(f'Step {i}: loss={circuit(params)**2:.4f}')
这段代码定义了一个包含两个可训练参数的量子电路,并使用 Adam 优化器进行训练——代码风格与 PyTorch 几乎完全一致。
目前真实量子计算机的量子比特数有限(通常数十到数百个),且存在噪声和退相干问题。PennyLane 连接真实硬件时,实际效果受限于量子硬件本身的成熟度。模拟器适合算法验证和小规模实验,但无法模拟大规模量子电路。
虽然 PennyLane 降低了量子编程的门槛,但用户仍需具备量子计算的基础概念(量子门、量子态、测量等)。对于完全没有量子物理背景的 ML 工程师,可能需要额外的学习投入。
纯 Python 实现的部分模块在处理大规模电路时可能存在性能瓶颈。虽然有 Lightning 系列 GPU 加速插件,但基础包本身的计算效率并非最优。
PennyLane 的出现填补了量子计算与机器学习之间的技术空白。它让量子算法的研究者和机器学习工程师可以在同一个框架下协作,推动了「量子机器学习」(QML)这个交叉领域的发展。
从增长趋势看,PennyLane 的 GitHub star 从 2018 年的零开始,到 2026 年已突破 3,200 star,在量子软件领域处于头部位置。它的成功也带动了 Qiskit(IBM)、Cirq(Google)等框架向可微分方向演进。
Xanadu 公司正在推进 photonic(光子)量子计算硬件,PennyLane 与其硬件路线深度绑定。这意味着 PennyLane 不仅是一个软件框架,更是 Xanadu 整个量子计算生态的核心入口。未来随着容错量子计算(fault-tolerant QC)的到来,PennyLane 的价值将进一步放大。
如果你对量子计算感兴趣,PennyLane 是目前最友好的入门起点;如果你在研究量子机器学习算法,它提供了完整的实验平台;如果你想评估量子计算在具体业务场景的潜力,它可以帮你快速验证想法,而无需投入高昂的硬件成本。