PennyLane 是加拿大 Xanadu 公司开源的量子机器学习(QML)框架,核心能力是把量子电路封装为可与 PyTorch、TensorFlow、JAX 深度集成、支持自动微分的「量子节点」(QNode),让研究者可以用训练经典神经网络的方式训练参数化量子电路。它解决的核心问题是:传统量子编程框架(如 Qiskit、Cirq)只负责电路构造与硬件提交,不支持对电路参数求解析梯度;而 QML 算法(变分量子本征求解器 VQE、量子近似优化算法 QAOA、量子神经网络 QNN)恰恰依赖梯度下降训练。PennyLane 通过参数移位规则(Parameter-Shift Rule)提供解析梯度,把量子电路变成深度学习管道中的一等公民。框架自带多个模拟器后端,并通过官方插件接入 IBM、IonQ、Quantinuum、Amazon Braket 等真实量子硬件,覆盖从算法原型到硬件验证的完整链路。本篇按「速览 → 安装 → 上手 → 核心能力 → 部署 → 对比 → 迭代 → 场景 → 误区 → 面试」组织,全程可操作,代码可直接复制运行。

岗位关联

对 AI 从业者而言,掌握 PennyLane 意味着你具备将量子计算接入现有深度学习技术栈的工程能力——这是量子机器学习方向需求量最大的交叉技能。

目录
  1. 为什么需要 PennyLane:量子电路的「梯度鸿沟」→ 统一可微接口
  2. 安装与环境配置:3 步就绪
  3. 快速上手:10 分钟跑通第一个可微量子电路
  4. 核心能力详解:5 大支柱
  5. 生产部署与监控:从上线到运维
  6. 版本迭代
  7. AI 应用场景
  8. 常见误区
  9. 面试题
工具类型
量子机器学习框架(开源)
开发商
Xanadu(加拿大·多伦多)
开源协议
Apache License 2.0(可商用)
GitHub Stars
主要语言
Python
当前版本
0.40(2025 年中)
安装方式
pip install pennylane
下载地址
官方文档
上手难度
★★★☆☆(中等)
适合人群
量子算法研究员·ML 工程师·交叉学科团队
同类工具
Qiskit·Cirq·Braket SDK

速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。

为什么需要 PennyLane:量子电路的「梯度鸿沟」→ 统一可微接口

传统量子编程框架的设计目标是描述和运行量子电路:Qiskit 侧重 IBM 硬件生态,Cirq 侧重谷歌硬件与调度,它们都提供了参数化电路(Parameter)与采样运行能力,但不提供对电路参数的解析梯度。而变分量子算法(VQA)的训练循环是典型的梯度下降:损失函数的输入是旋转门的角度 θ,输出是期望值测量结果,你需要 ∂⟨H⟩/∂θ 来更新参数。用有限差分近似梯度,每个参数需要两次电路求值且数值噪声大;直接用 PyTorch 的反向传播穿透电路,又因为量子测量过程不可导而失效。

PennyLane 用参数移位规则解决这一问题:对形如 RY(θ) 的单参数门,其期望值函数 f(θ) 满足 ∂f/∂θ = [f(θ+π/2) − f(θ−π/2)]/2,即只需在两个平移点各做一次电路求值,就能得到解析精确的梯度。框架自动为量子节点(QNode)注入这套微分逻辑,把电路输出包装成与 PyTorch Tensor、JAX Array 无异的可微张量 。这意味着你可以把一个量子层嵌进 ResNet、Transformer 或任何经典模型中间,统一调用 .backward()。

与同类工具相比,PennyLane 的气质差异在「可微性优先」:Qiskit 的机器学习和梯度能力主要依托 Qiskit Machine Learning 模块且与 IBM 生态绑定较紧,Cirq 则干脆把可微训练交给 TensorFlow Quantum 配合实现。PennyLane 把可微量子计算做成了框架的第一性设计,插件化的设备抽象让从模拟到真机的切换只是改一行设备名。

安装与环境配置:3 步就绪

第一步安装基础库。PennyLane 支持 Python 3.10–3.13,建议在独立虚拟环境中安装,避免与既有 ML 项目的依赖冲突。基础版 pip install pennylane 自带 default.qubit 纯 Python 模拟器,可直接跑通全部教程。第二步安装深度学习框架集成与加速后端。需要 PyTorch、TensorFlow 或 JAX 时一并安装;需要高性能模拟时安装 pennylane-lightning——它提供 C++ 内核的 lightning.qubit 设备,比默认模拟器快一个数量级以上。第三步验证安装:打印版本号并创建最小设备对象,确认核心依赖(NumPy、SciPy)已就绪。

安装完成后建议立即安装并运行官方教程集合:pip install jupyter && python -m pip install pennylane-qchem,后者用于量子化学模块,后续 VQE 实验会用到。

bash11 行
# 创建并激活虚拟环境(Python 3.10-3.13)python -m venv .venv && source .venv/bin/activate # 安装基础版(含默认模拟器与自动微分)pip install pennylane # 同时安装深度学习框架集成与高性能模拟器pip install pennylane torch tensorflow jax pennylane-lightning # 验证安装:应输出版本号,如 0.40.0python -c "import pennylane as qml; print(qml.__version__); print(qml.device('default.qubit', wires=2))"

快速上手:10 分钟跑通第一个可微量子电路

最小可用流程的思路是:定义设备 → 用装饰器包装量子电路 → 传入可微张量 → 反向传播取梯度。官方文档的 Variational Classifier 教程是标准起点,这里给出它的最小可运行版本。Step 1:创建设备对象 qml.device("default.qubit", wires=2),明确模拟的比特数与后端;Step 2:用 @qml.qnode(dev) 装饰一个普通 Python 函数,函数体内按顺序放置量子门,最后一条 return 指定测量方式(期望值或采样);Step 3:把参数包装为 torch.tensor(..., requires_grad=True) 后直接调用 QNode,对结果调用 .backward() 即可取出梯度。

运行后你会看到形如「QNode 输出:0.8776,梯度:-0.4794」的结果。进阶技巧:把 return 改为 return qml.probs(wires=[0,1]) 可一次取到全部 4 个计算基态的测量概率;把 qml.expval 换成多个测量的列表则输出多维向量,用于多目标损失。

python19 行
import pennylane as qmlimport torch # Step 1: 定义设备(2 比特默认模拟器)dev = qml.device("default.qubit", wires=2) # Step 2: 用 @qml.qnode 包装可微量子节点@qml.qnode(dev)def circuit(theta):    qml.RY(theta, wires=0)          # 单比特旋转门(θ 为可训练参数)    qml.CNOT(wires=[0, 1])          # 两比特纠缠门    return qml.expval(qml.PauliZ(wires=1))  # 测量比特 1 的泡利 Z 期望值 # Step 3: 传入需要梯度的张量并反向传播theta = torch.tensor(0.5, requires_grad=True)output = circuit(theta)output.backward()print(f"QNode 输出: {output.item():.4f}")   # 期望值 ∈ [-1, 1]print(f"梯度 (∂/∂θ): {theta.grad.item():.4f}")  # 解析梯度,来自参数移位规则

核心能力详解:5 大支柱

支柱一 · QNode 可微管道。 QNode 是框架的核心抽象,它把「电路构造 + 设备执行 + 测量返回 + 梯度计算」打包为一个类函数对象。默认梯度机制为参数移位规则,也可用 diff_method="finite-diff" 显式切换为数值梯度、或对纯模拟器电路用 "backprop" 直接穿透。对包含纠缠门(如 CNOT、CZ)的电路,框架自动应用广义参数移位规则,无需手工推导。

支柱二 · 多后端设备抽象。 设备(Device)统一了「在哪跑」的问题。本地端:default.qubit(纯 Python 参考实现)、lightning.qubit(C++ 加速)、lightning.gpu(CUDA);云端真机端:通过官方插件 pennylane-qiskit、pennylane-braket、pennylane-ionq、pennylane-quantinuum 接入 IBM、AWS、IonQ、Quantinuum 硬件。切换后端只需修改设备字符串,电路代码零改动。

支柱三 · 与主流 ML 框架的深度集成。 框架提供三层集成:最底层是输出张量直接兼容 torch.Tensor/tf.Tensor/jax.Array,支持 .backward();中间层是 qml.qnn.TorchLayer 与 KerasLayer,把量子电路包装为可即插即用的神经网络层;最上层是自定义训练循环,量子层与经典层混合前向、统一反向。从 0.36 起 JAX 集成进一步强化,支持 jax.jit 对整条混合管线的编译优化。

支柱四 · 内置 QML 算法库。 qml.qnn(量子神经网络层与损失工具)、qml.qaoa(QAOA 电路与成本哈密顿量构造)、qml.qchem(分子哈密顿量映射、VQE 基态求解)、qml.liealg(李代数工具,用于可表达性分析,0.34 引入)覆盖了当前量子机器学习的主流算法方向,多数场景无需从头实现电路模板。

支柱五 · Catalyst 编译加速。 Catalyst 是配合 PennyLane 使用的 JIT 编译框架,可把「量子电路 + 经典控制流」整体编译为原生混合量子-经典程序,支持 jax.jit 风格装饰器 @catalyst.qjit。训练循环中的经典 Python 开销(循环、分支)会被编译消除,在模拟器与硬件上均有效,是生产级训练管线的重要加速手段。

生产部署与监控:从上线到运维

本地大规模模拟。 当比特数超过 30 时,default.qubit 的纯 Python 实现会慢到不可用。生产环境应切换到 lightning.qubit(C++ 内核,单机多核并行)或 lightning.gpu(CUDA 加速,需安装 pennylane-lightning[gpu] 及配套 cuQuantum)。将电路打包为批处理(batch)执行,配合 jax.vmap 或 torch.vmap 可批量计算不同参数下的期望值,吞吐量提升显著。

硬件与云接入。 通过插件接入真实量子处理器时,先查询目标设备的能力(device.capabilities())确认门集与拓扑,再用 qml.transforms.transpile 把电路映射到原生门集。生产任务建议以 Amazon Braket(pennylane-braket)作为统一入口,其按用量计费、可托管调度,且支持在同一接口下切换模拟器与硬件,避免绑定单一硬件厂商。

可观测性。 训练监控至少记录四类指标:损失曲线(判断收敛)、梯度范数(诊断梯度消失/爆炸,常见于深层量子电路)、期望值方差(衡量测量噪声)、电路深度与门数(评估硬件可执行性)。配合 qml.specs 工具在每次训练循环中抽取电路统计信息,写入日志系统;对硬件任务记录提交时间、排队时间与执行时间三类耗时,以核算单次迭代的真实成本。当损失曲线出现平台期时,优先检查梯度范数是否归零——这是参数移位规则遇到非光滑测量时的典型信号。

<p class="para-label">避坑清单:</p>

<ul class="dash-list"><li>升级前必须核对官方 release notes 的 breaking changes:0.30 重构了 QNode 扩展机制、0.38 引入新执行模式,跨大版本升级可能破坏依赖旧 API 的代码,先跑迁移指南再升级。</li><li>不要在 QNode 内用依赖运行时值的 Python 循环或 if 构造电路:参数移位规则要求电路结构固定,动态结构会触发重编译并显著拖慢梯度计算,甚至产出错误梯度。</li><li>大规模模拟勿默认使用 default.qubit:它是纯 Python 参考实现,30+ 比特电路应切换 Lightning 或 GPU 版,否则单次求值耗时可能达到分钟级。</li><li>GPU 版需单独安装配套包:pennylane-lightning[gpu] 依赖 CUDA 工具链与 cuQuantum,版本不匹配会在 import 阶段直接报错,必须先核对官方 GPU 安装文档。</li><li>接硬件前确认设备门集与拓扑:真实处理器的原生门集有限,QNode 中使用不支持的幺正门会在提交时报错,先查询 capabilities 并用 transpile 转换。</li><li>JAX 版本敏感:0.32 起跟随 JAX 0.4 API 演进,jax 版本过新或过旧都可能触发 grad transform 兼容性错误,锁定官方测试过的版本组合。</li></ul>

维度PennyLaneQiskitCirqBraket SDK
定位可微量子计算与 QML 框架IBM 生态通用量子编程 SDK谷歌量子电路编程框架AWS 量子云服务开发套件
编排范式QNode 装饰器 + 统一设备抽象电路对象 + Backend/Provider 抽象Circuit 不可变对象 + 调度器电路定义 + AwsDevice 接口
类型约束运行期动态建电路,可微性依赖门集静态电路,支持 Parameter 绑定电路不可变,利于调度但欠灵活电路 + 参数化,可微支持较弱
学习曲线中:需同时理解电路与 ML 训练中高:硬件细节多、生态庞大中:抽象较轻但生态较窄中低:云语义直观但绑定 AWS
生态集成PyTorch/TF/JAX 深度集成Qiskit Runtime、IBM 硬件生态与 TensorFlow Quantum 联动SageMaker、AWS 云服务栈
生产部署本地模拟器 + 多家云硬件插件IBM Cloud 与企业级运行时谷歌量子云服务AWS Braket 托管量子硬件
LicenseApache 2.0Apache 2.0Apache 2.0SDK 开源,服务需 AWS 账号
适合谁QML 算法研发与混合建模团队IBM 硬件导向的量子开发谷歌硬件研究与调度实验云上弹性用量子资源的企业

选型建议:目标是把量子电路嵌进深度学习训练管道、需要解析梯度与框架原生集成,选 PennyLane;目标是做 IBM 量子硬件上的系统开发与运行时优化,选 Qiskit;目标是谷歌硬件上的电路调度与细粒度时序控制,选 Cirq;目标是零运维地按量使用多家云端量子硬件,选 Braket SDK。四者并非互斥——PennyLane 通过插件即可调用 Qiskit 与 Braket 的后端,可把它作为统一的算法层、将各厂商 SDK 作为执行层。

版本迭代

PennyLane 自 2018 年 0.1 版发布以来,演进主线是「可微性增强 → 设备生态扩张 → 与 ML 框架深度绑定 → 编译加速」四步。2023 年起,0.30 的 QNode 机制重构、0.35 的多设备并行、0.38 的新执行模式与 0.40 对 Python 3.13 的支持,逐步把框架从学术原型工具推向生产可用。约每季度一次 minor release,节奏稳定。

版本时间变化提升
v0.302023-05QNode 扩展机制重构统一 QNode 执行流程,提升与 JAX/TF 的互操作性
v0.322023-10梯度 transform 体系化引入统一的梯度变换接口,支持全局配置微分方法
v0.352024-05Python 3.12 支持新增多设备并行编排,弃用 TensorFlow 1.x 兼容路径
v0.382025-01新执行模式与 capture 机制为 Catalyst 动态编译铺路,统一模拟与硬件执行路径
v0.402025-06Python 3.13 支持VQE 默认优化器切换为 QNSPSA,梯度 transform 默认切换新接口
结论

版本迭代主轴是从「能用」走向「生产可用」——重构执行管道、拥抱 Python 新版本、以 QNSPSA 等更稳健的优化器替代默认选择,均指向训练稳定性与可维护性。选型建议:新项目直接用 0.40+;从旧版本升级时,务必以官方迁移指南为纲,重点检查梯度 transform 与执行模式的 breaking changes。

AI 应用场景

变分量子本征求解器(VQE)用于分子基态能量计算

阶段:量子-经典混合优化 / 科学计算

解决的问题:传统量子化学计算(如完全活性空间方法)随体系增大呈指数级开销;VQE 用参数化量子电路制备试探态、以经典优化器迭代逼近基态,把指数级希尔伯特空间压缩到多项式级电路深度。PennyLane 在此场景的价值是:qml.qchem 自动完成分子哈密顿量的二次量子化映射,QNode 提供解析梯度供优化器使用,无需手工推导导数。

具体案例:官方 qchem 教程演示了用 VQE 求解 H₂ 分子基态能量——构建 STO-3G 基组下的分子哈密顿量、以 Hardware-Efficient Ansatz 制备试探态、用参数移位梯度驱动优化,最终能量收敛到与精确对角化一致的化学精度(误差在约 1.6 kcal/mol 化学精度阈值内)。典型运行于 lightning.qubit 模拟器上,耗时从秒级到分钟级。

量子神经网络(QNN)嵌入经典分类管道

阶段:模型训练 / 端到端可微管道

解决的问题:经典分类器在特定小样本或高维特征任务上存在表达瓶颈;把量子电路层(如 Angle Encoding + 纠缠层)作为特征提取器嵌入经典模型尾部,理论上可探索更大的假设空间。PennyLane 让这一混合训练像搭积木一样简单——qml.qnn.TorchLayer 可直接把 QNode 包装为 nn.Module。

具体案例:官方 Variational Classifier 教程将缩样 MNIST 手写数字做二分类(如区分 0 与 1),经 Angle Embedding 将图像像素编码为旋转角、若干层强纠缠电路后接经典 Softmax,数十轮 Adam 训练内交叉熵损失降至 0.1 以下,测试准确率约 90%。整个训练循环与纯 PyTorch 模型无差异。

混合量子-经典大模型微调管线原型

阶段:模型微调 / 特征增强

解决的问题:把量子层作为传统 Transformer 或 CNN 的旁路特征增强模块,是当前 QML 与主流 AI 结合最活跃的探索方向。PennyLane 的可微性保证量子层可以直接参与反向传播,框架与 PyTorch/JAX 的原生张量兼容性免去了自定义 autograd Function 的工作。

具体案例:研究团队把单比特 RY 旋转构成的量子层嵌入小型 CNN 的瓶颈层,在图像分类任务上对比「有无量子层」的收敛曲线与最终精度;PennyLane 侧只需在模型 forward 中调用 QNode 并让输出参与损失计算,全程无梯度适配代码。该模式多用于验证量子增强的可行性,而非追求大规模 SOTA。

常见误区

误区PennyLane 只能在本机模拟器上跑电路,要跑真机得换 Qiskit 或 Cirq,这两个工具是互斥的。

正解PennyLane 的设备抽象层天然支持多种后端。官方插件 pennylane-qiskit、pennylane-braket、pennylane-ionq、pennylane-quantinuum 分别接入 IBM、AWS、IonQ、Quantinuum 的真实量子处理器。切换后端通常只改设备字符串(如 "qiskit.ibmq" 或 "braket.aws"),电路代码零改动。它不仅能跑模拟,而且是少数把「模拟 → 云真机」统一为同一接口的框架。

为何常见:PennyLane 上手默认使用 default.qubit 模拟器,官方教程前半部分也以模拟为主,容易让人误以为它不具备硬件能力;而 Qiskit 的市场声量容易造成「量子编程 = Qiskit」的刻板印象。

误区PennyLane 的梯度是数值近似出来的,和有限差分(Finite Difference)差不多,精度有限,多采样几次能减少误差。

正解参数移位规则给出的是解析精确梯度。对单参数门,∂f/∂θ 严格等于 [f(θ+π/2) − f(θ−π/2)]/2,无截断误差;对多参数纠缠门,广义参数移位规则同样精确。而有限差分(diff_method="finite-diff")是显式指定时才使用的近似方案,且有步长选择的数值误差问题。二者在结果的精确性上有本质区别。

为何常见:多数工程师熟悉的自动微分是反向传播,看到「两次求值做差分」的表述,本能地联想起数值微分——这是把「形式像差分」误当「本质是差分」。

误区`@qml.qnode` 装饰的函数就是电路对象,可以直接像 Qiskit 的 QuantumCircuit 那样操作、打印、拼接。

正解QNode 是「电路 + 设备 + 测量 + 梯度方法」四者的组合封装,是一个可调用对象;它内部确实维护电路,但你无法直接对它做门拼接或可视化。要拿到底层电路,需用 qml.draw(circuit) 绘制文本图或 qml.specs(circuit) 抽取统计信息;要构造可复用电路模板,应使用 qml.templates 或自定义 Operation 子类。

为何常见:不同框架的术语体系交错——Qiskit 的 Circuit 是显式对象,PennyLane 的 qnode 是装饰器产物,初学容易按 Qiskit 的心智模型套用。

误区训练量子电路只能用 `qml.AdamOptimizer` 或 `qml.GradientDescentOptimizer` 这些框架自带优化器,否则没法更新电路参数。

正解PennyLane 的输出张量兼容 PyTorch/TF/JAX,把 QNode 的返回值接进任意经典优化器(如 torch.optim.Adam、keras.optimizers)完全合法,且官方推荐在混合模型中直接使用经典优化器统一管理全部参数。内置优化器的意义在于维持「不依赖 ML 框架」的纯 PennyLane 工作流(如快速原型或仅用 NumPy),而非强制约束。

为何常见:早期教程大量使用 qml.AdamOptimizer 演示纯 PennyLane 流程,且框架文档把优化器作为一等公民展示,容易误解为「必须」。

误区QNode 是普通 Python 函数,里面用 for 循环、if 分支、列表推导式动态生成电路完全没问题,和写普通代码一样自由。

正解QNode 内的 Python 控制流在「解释执行」模式下确实能运行,但一旦开启 jax.jit、Catalyst 编译或硬件提交,电路结构必须是静态可追踪的。更关键的是,参数移位规则要求电路结构在梯度计算时保持一致——运行时依赖参数值改变电路结构(如 if theta > 0 插入不同门)会产生错误或不稳定的梯度。动态结构应改用 qml.cond 等受控构造,或把分支移到 QNode 之外。

为何常见:装饰器带来的「这就是个普通函数」的错觉,加上 0.30 之前教程对动态结构的容忍,让不少人踩过坑。

面试题

Q1. PennyLane 中定义「量子节点」(可微量子计算单元)的核心装饰器是?

单选题 · easy

  • A.@qml.qnode← 正确答案
  • B.@qml.circuit
  • C.@qml.quantum
  • D.@qml.device

答案:A。@qml.qnode(dev) 将普通函数包装为绑定设备与测量方式的 QNode,是框架最核心的 API。@qml.device 不存在——设备用函数 qml.device() 创建而非装饰器;@qml.circuit 与 @qml.quantum 均为干扰项,PennyLane 中没有这两个装饰器。

Q2. PennyLane 安装后默认自带的本地模拟器名称是?

单选题 · easy

  • A."default.qubit"← 正确答案
  • B."local.simulator"
  • C."qsim.simulator"
  • D."default.tensor"

答案:A。qml.device("default.qubit", wires=n) 是纯 Python 参考实现模拟器,随安装包自带,零额外依赖即可跑通全部基础教程。“qsim.simulator“ 是谷歌 Cirq 生态的概念,”local.simulator“ 与 ”default.tensor” 不存在于 PennyLane 设备列表中。

Q3. 通过 pip 安装 PennyLane 基础库的正确命令是?

单选题 · easy

  • A.pip install pennylane← 正确答案
  • B.pip install quantum-qml
  • C.conda install qml
  • D.npm install pennylane

答案:A。PyPI 上的正式包名为 pennylane,命令为 pip install pennylane。quantum-qml 是无关第三方包;PennyLane 未发布 conda 官方包(conda install qml 不存在);npm 是 JavaScript 包管理器,与 Python 库无关。

Q4. QNode 默认的梯度计算机制是?

单选题 · mid

  • A.参数移位规则(解析梯度)← 正确答案
  • B.有限差分法(数值梯度)
  • C.遗传算法随机搜索
  • D.强化学习回报估计

答案:A。默认 diff_method="best" 会优先选择参数移位规则,它通过两次平移电路求值得到解析精确梯度,无截断误差。有限差分(B)是显式指定的近似替代方案。C 与 D 是优化策略而非梯度计算机制,与框架默认行为无关。

Q5. PennyLane 直接支持与哪些深度学习框架集成?(多选)

多选题 · mid

  • A.PyTorch← 正确答案
  • B.TensorFlow← 正确答案
  • C.JAX← 正确答案
  • D.Caffe

答案:ABC。PennyLane 核心特性之一是与 PyTorch、TensorFlow、JAX 三类主流框架原生集成,QNode 输出可直接参与其反向传播,并提供 qml.qnn.TorchLayer、KerasLayer 等封装层。Caffe 不在官方支持列表中。

Q6. 在 QNode 中测量 1 号比特的泡利 Z 期望值,正确写法是?

单选题 · mid

  • A.return qml.expval(qml.PauliZ(wires=1))← 正确答案
  • B.return qml.sample(qml.PauliZ(wires=1))
  • C.return qml.expect(qml.PauliZ(wires=1))
  • D.return qml.measure(qml.PauliZ, 1)

答案:A。qml.expval 返回期望值(标量,可微),是变分算法的标准测量;qml.sample(B)返回原始采样样本序列,非期望值。qml.expect 和 qml.measure 都不是 PennyLane 的测量 API。

Q7. 下列哪些是 PennyLane 官方内置的量子机器学习算法/应用模块?(多选)

多选题 · mid

  • A.qml.qnn(量子神经网络层)← 正确答案
  • B.qml.qaoa(量子近似优化)← 正确答案
  • C.qml.qchem(量子化学)← 正确答案
  • D.qml.llm(大语言模型)

答案:ABC。qml.qnn 提供 TorchLayer/KerasLayer 等神经网络层封装,qml.qaoa 提供 QAOA 电路与哈密顿量工具,qml.qchem 提供分子哈密顿量构造与 VQE 支持,三者均为内置模块。qml.llm 不存在——量子机器学习框架目前不涉及大语言模型。

Q8. PennyLane 自动微分与经典 ML 框架自动微分(如 PyTorch autograd)的关键区别在于?

单选题 · hard

  • A.量子层依赖参数移位规则而非经典反向传播← 正确答案
  • B.量子电路参数无须任何梯度信息
  • C.自动微分仅对模拟器生效
  • D.自动微分仅对真机生效

答案:A。量子电路的测量过程本质是概率采样,无法直接沿计算图反向传播,因此 PennyLane 以参数移位规则在电路层计算解析梯度,再接入经典框架的反向传播。B 错误——变分算法正是靠梯度训练;C/D 错误——自动微分在模拟器和硬件后端均可用。

Q9. 关于 Catalyst(PennyLane 的编译框架),下列说法正确的有?(多选)

多选题 · hard

  • A.提供 JIT 编译能力,可加速混合量子-经典程序← 正确答案
  • B.能编译包含经典控制流的混合程序← 正确答案
  • C.仅能运行在本地模拟器上
  • D.与 JAX 生态存在集成← 正确答案

答案:ABD。Catalyst 是 PennyLane 生态的 JIT 编译框架,把量子电路与经典控制流联合编译为原生程序,可部署到模拟器与硬件,故 A、B 正确、C 错误。官方支持将 Catalyst 程序嵌入 JAX 工作流,D 正确。

Q10. 对单参数旋转门 RY(θ),其期望值函数 f(θ) 的参数移位梯度公式是?

单选题 · extreme

  • A.[f(θ+π/2) − f(θ−π/2)] / 2← 正确答案
  • B.[f(θ+π) − f(θ)] / 2
  • C.f(θ+π/2) − f(θ−π/2)
  • D.[f(θ+ε) − f(θ−ε)] / 2ε

答案:A。参数移位规则的标准形式为在原参数两侧各平移 π/2 并取差值的一半。C 缺了 1/2 系数,梯度幅值会放大一倍;B 移了 π 而非 π/2,不满足规则推导条件;D 是有限差分形式,只是数值近似而非解析梯度。