GQCO作用分析
1. GQCO 的作用?¶
训练好的 GQCO 本质上是一个**“从问题到量子电路”的条件生成模型**,具体作用是:
给定一个组合优化问题(已经写成伊辛哈密顿量形式),GQCO 直接生成一个量子电路,该电路在 \(|0\rangle^{\otimes n}\) 上作用后,通过测量即可**以较高概率得到该问题的近似最优解(基态比特串)**。
使用方式可以概括为:
- 你准备一个优化问题的伊辛哈密顿量 \(H=\sum_{i<j} J_{ij}\sigma_i^z\sigma_j^z + \sum_i h_i\sigma_i^z\);
- 把 \(\{h_i, J_{ij}\}\) 送入已经训练好的 GQCO 编码器;
- 解码器按条件分布 \(p_\theta(U|x)\) 生成门序列(即量子电路 \(U\));
- 在模拟器或真实量子设备上运行 \(U|0...0\rangle\),测量若干次,从结果分布中挑选概率最高的比特串,作为该优化问题的解。
因此,训练完的 GQCO 就是一台“问题 → 量子电路 → 近似解”的自动求解器,不再需要为每个新问题单独做 VQA 式的参数优化。
2. GQCO 的输入可以是什么?¶
在该工作中,输入限定为:
伊辛形式的组合优化问题参数:
也就是每个比特的外场 \(h_i\) 和每条边的耦合 \(J_{ij}\)。
具体实现上,它们被组织为一个图:
- 节点:对应自旋/比特 \(i\),节点权重为 \(h_i\);
- 边:若 \(J_{ij}\neq 0\),则在节点 \(i,j\) 之间连一条边,边权重为 \(J_{ij}\)。
然后论文对节点、边做了特征工程(你如果要自己实现,需要遵守同样的编码方式):
- 节点特征 \(v_i\):包含
- 本身的场强 \(h_i\);
- 与邻居场强的符号关系 \(\text{sgn}(h_i-h_j)\);
- 与 \((h_j, J_{ij})\) 的乘积符号等;
- 边特征 \(e_{ij}\):包含
- \(\text{sgn}(J_{ij})\)、\(\text{sgn}(J_{ij}-h_i)\)、\(\text{sgn}(J_{ij}-h_j)\)、\(\text{sgn}(h_i h_j J_{ij})\)。
编码器是 Graph Transformer,直接吃的就是这样的**图结构 + 特征**。
从应用角度看,你可以输入的就是:
- 任意可以被写成伊辛模型的**二值组合优化问题**(如 Max-Cut、某些 0/1 规划的 Ising 化版本);
- 给出它的 \(h_i, J_{ij}\),按论文格式构造图特征后送入模型。
3. 对输入有哪些重要限制?¶
可以分为四类限制:问题类型、规模、分布/编码、门池/结构。
3.1 问题类型限制¶
- 必须能写成**伊辛哈密顿量**:
- 变量是二值 \(\pm 1\)(或 \(|0\rangle, |1\rangle\));
- 目标函数能映射到 \(\{h_i\}, \{J_{ij}\}\)。
- 非二值、连续变量优化题不在本文设定范围内。
3.2 规模限制(qubit 数)¶
- 模型结构上:门池最多支持 20 个量子比特 的电路;
- 实际训练与评测:只在 3–10 qubit 随机实例上训练和测试;
- MoE 和课程学习都是围绕 3–10 qubit 设计的。
因此,如果你把一个 >10 qubit 的伊辛问题直接丢给这版已训练模型,其行为并没有经过实验验证,很可能不可靠;>20 qubit 在门池定义上都不被支持。
3.3 分布与编码限制¶
- 训练数据是**随机生成**的伊辛实例(具体分布由作者设定),因此:
- 如果你输入的伊辛系数分布与训练分布差异很大(比如极端稀疏/极端强耦合结构),性能可能显著衰减;
- 必须遵循文章定义的**图特征工程**(节点/边的符号特征等)。
如果你用完全不同的编码方式(例如单纯把 \(h_i, J_{ij}\) flatten 成一个向量),那就不是这篇论文训练出的模型了,需要重新训练对应的编码器。
3.4 电路结构与长度限制¶
- 最大电路深度:生成的门数上限是 \(2n\)(\(n\) 为比特数),并在生成到 4 个以上门时,如果采样到结束 token 就提早截断;
- 解码器词汇表是固定的门池(后面会提),因此:
- 只能生成**由这些门构成**的电路;
- 不支持任意连续角度,只支持设定的那些离散角度。
4. 想加入更多“可训练的量子门”,需不需要重新训练?¶
需要,原则上必须重新训练(至少要重训/微调解码器部分)。
原因可以从模型结构上严格说明:
4.1 门池 = token 词表,是模型定义的一部分¶
- 这篇工作中,作者事先定义了一个**固定的门池**:
- 基本 ½ 比特门:Hadamard、旋转门 \(R_X,R_Y,R_Z\)、CNOT、QAOA 式 \(R_{ZZ}\) 等;
- 每个门的目标/控制比特允许各种配置;
- 旋转角只允许 6 个离散值:\(\{\pm\pi/3,\pm\pi/4,\pm\pi/5\}\);
- 总计得到 1,901 个候选门(包括恒等门)。
- 这 1,901 个门在解码器侧就是**1,901 个 token**,和自然语言里的词表是一回事:
- 解码器的 embedding 矩阵和输出层的 logit 都是以这套词表为索引训练出来的。
一旦你“加新门”,就相当于:
- 扩张词表维度;
- 原有 embedding / 输出层尺寸都变了;
- 旧模型参数与新词表结构不再一一对应。
因此,不能简单在推理阶段“添加门”而不改模型。
4.2 训练目标与门空间强绑定¶
GQCO 是通过 DPO / CPO 优化
在**给定门池定义的电路空间**上,使得采样到低能量电路的概率变大。你变更门池,相当于变更了整个搜索空间:
- 原有分布 \(p_\theta(U|x)\) 学的是“在旧门池上哪些门序列好”;
- 加新门后,旧分布既无法为新门赋予合理概率,也无法保证原有“好电路”依然占优势。
这在数学上等价于「换了优化变量的定义域」,原解不再是新问题的解,自然需要重新优化(训练)。
4.3 实际上可以怎么做?¶
- 想增加新的门类型/角度(例如加 Toffoli、不同的 \(R_Z\) 角度):
- 需要用新的门池重新定义 token 词表;
- 重新训练解码器,最好同时微调整个模型(尤其是解码器和 MoE 专家)。
- 想适配特定硬件的原生门集:
- 最优做法是**一开始就用“硬件原生门”定义门池**,然后从头训练;
- 或在现有模型上,替换门池 + 重训解码器(可能可以部分继承编码器参数作为初始化,但仍需做大量训练)。
- 仅想在同一门池下加约束(比如限制 CNOT 数量、更浅电路):
- 这不需要改门池,只需要在损失函数或采样策略中加上惩罚项/约束,可以在原模型基础上做一次额外微调。
所以,“加更多可训练量子门”本质是改变门池定义,必须重新训练;而“在相同门池下改变目标(如深度惩罚)”可以通过继续训练来实现。
5. 小结(给你做实现/改进时的要点)¶
-
训练后作用:
GQCO = “伊辛问题 → 量子电路”的条件生成器,用来快速给出求解该问题的量子电路,并通过测量得到近似最优解。 -
可接受输入:
任何能写成伊辛哈密顿量的二值组合优化问题,输入为 \(\{h_i,J_{ij}\}\) 及其构成的图特征。 -
输入限制:
- 类型:必须是伊辛型二值组合优化;
- 规模:当前已训练模型可靠范围是 3–10 qubit(结构上支持到 20 qubit,但未验证);
- 编码:必须按论文给定的图特征形式;
-
电路:由固定 1,901 门池产生,旋转角为 6 个离散值,电路深度 \(\leq 2n\)。
-
增加量子门是否要重训:
- 是,因为门池就是 token 词表,改变它就改变了模型的输入/输出空间;
- 实践上,可以复用部分参数做迁移学习,但解码器至少要重新训练一轮才能学会合理使用新门。
如果你接下来打算自己实现/扩展 GQCO,可以先明确:
是要**换门池**(那就接受重训成本),还是**在现有门池上加约束/改任务**(那只需微调即可)。