跳转至

一、GQCO 的整体思路概览

一句话概括:
GQCO 用一个图编码器 + Transformer 解码器,在“问题实例作为条件”的前提下,直接生成用于求解该组合优化问题的量子电路(ansatz),并通过偏好优化(DPO/CPO)让模型更偏向生成能量更低的电路。

工作流可以分成 5 个阶段:

  1. 问题表示与图编码:把组合优化问题变成 Ising / QUBO 哈密顿量,再转为带特征的图。
  2. 图编码器(Graph Encoder):用图 Transformer 把这个问题图编码成上下文向量。
  3. Transformer 解码器生成电路:条件在该上下文上,自回归生成量子门序列(电路)。
  4. 量子评估与偏好构造:用生成的电路跑量子模拟/硬件,计算能量,构造“好 vs 坏”电路的偏好对。
  5. 偏好优化训练(DPO/CPO):用偏好优化损失更新模型,使其更倾向于生成优质电路;训练好后,用来对新问题“一键出电路和解”。

下面按时间顺序详细展开。


二、GQCO 的工作全流程(细节版)

阶段 1:从组合优化问题到图表示

  1. 问题形式化为 Ising / QUBO
  2. 对于 Max-Cut 等组合优化问题,先写成 Ising 哈密顿量: $$ H(x) = \sum_{i<j} J_{ij} Z_i Z_j + \sum_i h_i Z_i $$
  3. 其中 \(J_{ij}\)\(h_i\) 是问题实例的系数。

  4. 构造带特征的图

  5. 节点集合 \(V\):每个节点 \(v_i\) 对应一个自旋/变量 \(x_i\)
  6. 边集合 \(E\):每条边 \(e_{ij}\) 对应一个相互作用项 \(J_{ij} Z_i Z_j\)
  7. 节点特征 \(v_i\):由 \(h_i\) 构造(包括符号、相对大小等)。
  8. 边特征 \(e_{ij}\):由 \(J_{ij}\) 构造(包括正负号、归一化权重等)。
  9. 得到一个“带有物理语义特征的图”,是 GQCO 的核心输入表示。

这一阶段的意义:
把“问题实例”编码成一个结构化图数据,方便用图神经网络/图 Transformer 提取“问题结构”。


阶段 2:图编码器提取“问题上下文”

  1. 图 Transformer 编码
  2. 使用图 Transformer 卷积层(Graph Transformer Convolution):
    • 多层消息传递 + 自注意力(一般 12 层迭代),每层后接前馈网络(FFN)和激活(GELU)。
    • 中间表示维度约为 256,注意力头数约为 8。
  3. 输出:
    • 节点级嵌入(每个节点一个向量)。
    • 通过图级读出(如全局池化/特殊虚拟节点),得到一个**问题上下文向量 \(c\)**,表示整个实例。

这一阶段的意义:
学到一个“问题实例 → 向量表示”的映射,使得后续解码器可以**条件在不同问题上生成不同的电路**。


阶段 3:Transformer 解码器生成量子电路

  1. 定义门池(Operator Pool)与 token
  2. 预先定义一组可用的量子门 \(\{U_\ell\}_{\ell=1}^L\),例如:
    • 单比特门:Hadamard \(H\)、旋转门 \(R_x(\pi/2)\)\(R_z(\theta)\) 等;
    • 双比特门:CNOT、RZZ(QAOA 风格的 ZZ 交互门)等;
    • 加上 identity 门和“结束 token”。
  3. 每个门(含其目标/控制比特索引)对应一个离散 token ID
  4. 对不同 qubit 数 \(n\),不适用的门通过掩码(mask)屏蔽。

  5. 解码器结构

  6. 使用标准 decoder-only Transformer
    • 12 层,自注意力 + FFN,8 个注意力头,隐藏维度 256;
    • 输入是“前缀 token 序列 + 问题上下文 \(c\)(通过某种方式注入,如 cross-attention 或拼接)”;
    • 输出每个位置的 logits 向量 \(w^{(k)} \in \mathbb{R}^{|V|}\)(候选门池大小)。
  7. 使用**Mixture-of-Experts (MoE)** 机制:

    • 以 qubit 数为条件,为不同规模问题启用不同专家子网络,提高可扩展性;
    • 训练时,通过 curriculum learning 逐步增加 qubit 数(从 3 到 10 等)。
  8. 自回归采样生成电路

  9. 对于给定问题实例 \(x\)
    1. 输入起始 token(例如 <BOS>)+ 上下文 \(c\),得到位置 1 的 logits \(w^{(1)}\),softmax 后采样得到第一个门 token \(j_1\)
    2. 再输入 \(\{j_1\} + c\),得到 \(w^{(2)}\),采样 \(j_2\)
    3. 如此迭代,直到采到“结束 token”或达到最大长度 \(2n^2\)
  10. 得到完整的 token 序列 \(\vec{j} = (j_1, \dots, j_N)\),代表一条电路: $$ U(\vec{j}) = U_{j_N} \cdots U_{j_1} $$

这一阶段的意义:
把“问题上下文向量”直接翻译成“量子门序列”,实现 问题实例 → 量子电路 ansatz 的条件生成。


阶段 4:量子电路评估与偏好构造

  1. 量子评估:计算期望值/能量
  2. 固定初态 \(|\phi_{\text{ini}}\rangle = |0\rangle^{\otimes n}\)
  3. 对每条生成电路 \(U(\vec{j})\),执行: $$ |\psi\rangle = U(\vec{j})|\phi_{\text{ini}}\rangle $$
  4. 计算可观测量期望值(即问题的 cost / 能量): $$ E(x,\vec{j}) = \langle\psi| O(x) |\psi\rangle $$ 其中 \(O(x)\) 是由问题实例 \(x\)(Ising 系数)定义的可观测量。

  5. 构造偏好对(“谁更好”)

  6. 对每个问题实例 \(x\),从当前模型中采样 \(M\) 条电路: \(\{U_1,\dots,U_M\}\),计算各自能量 \(\{E_1,\dots,E_M\}\)
  7. 针对这些结果构建**偏好样本**:
    • 例如:选择能量最小的电路 \(U^+\),再随机选取若干其他电路 \(U^-\),组成对 \((U^+, U^-)\),认为 \(U^+\) “更优”。

这一阶段的意义:
不需要真实“标签电路”,只需要比较“哪个生成电路更好”,即通过能量值自动产生训练信号,实现无数据集(dataset-free)训练


阶段 5:偏好优化训练(DPO / CPO)

  1. DPO(Direct Preference Optimization)损失
  2. 用类似 DPO 的公式,让模型在给定问题实例 \(x\) 时,更倾向生成优电路 \(U^+\) 而非次优电路 \(U^-\)
  3. 形式上会用到:
    • 当前模型分布 \(\pi_\theta(U|x)\):通过解码器得到的 token 序列概率;
    • 一个参考分布 \(\pi_{\text{ref}}(U|x) \propto \exp(-E(x,U))\)
    • 目标是最大化: $$ \log \sigma\left(\beta \log \frac{\pi_\theta(U+|x)}{\pi_{\text{ref}}(U+|x)} - \beta \log \frac{\pi_\theta(U-|x)}{\pi_{\text{ref}}(U-|x)}\right) $$
  4. 直观含义:在考虑能量信息的基础上,让模型概率分布 \(\pi_\theta\) 更接近“低能量优先”的行为。

  5. CPO / BvO 等辅助损失

    • 当采样出的电路过于相似、区分度低时,引入**对比偏好优化(CPO)**:
    • 加入负对数似然项,直接最大化最佳电路的生成概率;
    • BvO(Best-vs-Others)策略:用“最佳电路 vs 若干其他电路”的多对比学习。
    • 这些损失共同作用,既利用能量评估,又保持训练稳定性。
  6. 参数更新与训练策略

    • 优化器:通常使用 Adam。
    • 训练策略:
    • curriculum learning:先在 3 qubit 训练,再逐步加入 4、5、…、10 qubit 问题;
    • 每增加一个规模,就为 MoE 添加新的专家模块;
    • 维持一部分小规模样本,避免遗忘。
    • 训练资源:
    • 多张 NVIDIA V100 GPU,数据并行;
    • 哈密顿量生成与梯度汇总分布式执行;
    • 训练耗时约几十 GPU 天量级。

这一阶段的意义:
通过偏好优化,把“量子评估给出的好坏排序”转化为“模型生成分布的偏好”,最终学会:对不同问题,直接给出接近最优的电路结构


阶段 6:推理与使用方式

  1. 对新问题实例的使用流程
  2. 输入:一个新的组合优化问题(给出 \(J_{ij}, h_i\))。
  3. 步骤:
    1. 把问题转换为图 + 节点/边特征;
    2. 用图编码器得到上下文向量 \(c\)
    3. 用解码器在条件 \(c\) 下多次采样电路(例如 100 条);
    4. 对这批电路分别评估能量,选出能量最低的一条;
    5. 该电路既是本问题的量子求解器(可在真实量子机上运行),内部测量得到最可能的 bitstring,即问题解。
  4. 也可以:只用一次采样 + 少量采样就能得到高质量解(在实际实验中,10-qubit Max-Cut 在 IonQ Aria 上很多情况下**一次测量就能命中最优解**)。

这一阶段的意义:
训练结束后,求解新问题只需做一次“前向生成 + 少量量子评估”,不再需要对每个问题做长时间变分优化。


三、GQCO 的输入 / 输出 总结

1. 训练/推理时的“输入”是什么?

  • 主要输入(问题实例):
  • Ising / QUBO 哈密顿量的系数集合 \(\{J_{ij}, h_i\}\)
  • 经处理后形成的图:
    • 节点特征 \(v_i\)(由 \(h_i\) 构造);
    • 边特征 \(e_{ij}\)(由 \(J_{ij}\) 构造)。
  • 隐含条件信息
  • 问题规模(qubit 数 n)→ 决定使用哪些门、MoE 中启用哪些专家、最大序列长度 \(2n^2\)

2. 训练/推理的“输出”是什么?

对给定实例 \(x\),GQCO 可以输出多层次结果:

  1. 主输出:量子电路
  2. 形式:token 序列 \(\vec{j} = (j_1,\dots,j_N)\)
  3. 对应的门序列 \(U(\vec{j}) = U_{j_N}\cdots U_{j_1}\)

  4. 物理量输出:能量/期望值

  5. 通过模拟/测量得到的 \(\langle O(x)\rangle_{U(\vec{j})}\)

  6. 问题解(比特串)

  7. 在电路作用于 \(|0\rangle^{\otimes n}\) 后测量:
    • 统计测量结果的分布;
    • 取概率最大的 bitstring 作为该实例的最优/近似最优解。

概括成一句话:

输入:组合优化问题(Ising/QUBO 系数 → 图),
输出:一条(或多条)适配该问题的量子电路,以及由此得到的能量和最优解 bitstring。


四、GQCO 的训练数据是什么?

1. 数据来源:无预制数据集(dataset-free)

  • 训练过程中,问题实例(哈密顿量)是**在线随机生成**的:
  • 对每个 qubit 数 \(n\),随机生成 \(J_{ij}, h_i\)
  • 不需要预先存储庞大数据集;
  • 实际训练时也不保存这些样本,只依靠随机种子保证可复现。

2. 数据形式:偏好对而非“真标签”电路

  • 对每个问题实例:
  • 从当前模型中采样 M 条电路;
  • 计算每条电路的能量;
  • 选出“更好”的电路 \(U^+\) 和“较差”的电路 \(U^-\),形成偏好对 (x, U^+, U^-)。
  • 训练使用的“数据”实质上是:
  • \(\{(x, U^+, U^-)\}\) 加上对应的能量差;
  • 不需要任何“人工标注的最优电路”。

3. 训练信号:基于能量的偏好优化

  • 损失函数依赖于:
  • 模型生成概率 \(\pi_\theta(U|x)\)
  • 能量 \(E(x,U)\)
  • 基于能量构造的参考分布 \(\pi_{\text{ref}}(U|x) \propto \exp(-E)\)

所以可以总结为:

训练数据 = 随机生成的问题哈密顿量 + 模型自己生成的电路 + 这些电路的能量评估结果。
模型通过“比较自己生成的不同电路谁好谁坏”来学习,而不需要人工提供“标准答案电路”。


五、GQCO 的作用与优势

1. 作为 “问题到电路” 自动映射器

  • 对每个组合优化问题实例 \(x\),GQCO给出一个**专属量子电路 ansatz**:
  • 不再需要人手设计 QAOA 层数和结构;
  • 电路是“问题条件化”的(context-aware)。

2. 替代/增强 QAOA 等变分算法

  • 和标准 QAOA 对比:
  • 对 3–10 qubit 的随机问题,GQCO 在准确率上接近 99%,而 QAOA 随规模上升表现明显下降;
  • 在 IonQ Aria 上的实验表明:GQCO 生成的电路往往在**极少 shot**(甚至单 shot)下就高概率给出正确解,而 QAOA 需要大量 shot 才能把最优解从噪声中“挖出来”。

3. 电路更紧凑、更硬件友好

  • 相比一层或多层 QAOA:
  • 门数更少,尤其是 CNOT 等双比特门数量减少明显;
  • 电路深度更浅,更适合 NISQ 器件,噪声影响减轻。
  • 部分电路剔除某些门后甚至可归类为 Clifford 电路,经典可模拟性更好,有利于调试和分析。

4. 训练一次,多问题通用

  • 模型是 条件生成器
  • 一次训练好后,可以对同分布下的大量新问题直接使用;
  • 不需要像传统 VQE/QAOA 那样对每个新实例重新做漫长的参数优化。
  • 这使 GQCO 非常适合作为**“量子求解服务的前端”**:用户给问题,后端直接生成电路和解。

5. 可迁移到其他任务的通用框架

  • 尽管论文重点在组合优化,但框架本质上是:
  • 输入:任务上下文 \(x\)(可以是图、分子结构、PDE 参数等);
  • 输出:使 \(\langle O(x)\rangle_U\) 最小的电路 \(U\)
  • 因此原则上可以扩展到:
  • 分子基态能量求解(即 GPT-QE 的条件化版本);
  • 量子机器学习模型 ansatz 生成;
  • PDE 相关的量子求解器等。

六、小结:用一句话回答你的 4 个问题

  1. GQCO 的工作全流程
    将组合优化问题转成带特征的图 → 用图 Transformer 编码为上下文 → 用条件 Transformer 解码器自回归生成量子门序列 → 用量子模拟/硬件评估能量 → 通过 DPO/CPO 偏好优化训练模型,使其越来越倾向于为不同问题生成低能量电路 → 训练好后,对新问题“一键”生成高质量电路和解。

  2. 输入 / 输出是什么

  3. 输入:问题哈密顿量系数(或其图表示 + 节点/边特征)和问题规模 n。
  4. 输出:一条(或多条)针对该问题定制的量子电路(门序列),以及对应的能量和求得的最优 bitstring 解。

  5. 训练数据是什么

  6. 随机生成的 Ising/QUBO 问题实例(在线生成,不存数据集);
  7. 模型当前生成的多条电路及其能量评价;
  8. 通过能量排序自动形成的“优劣电路偏好对”,作为 DPO/CPO 的训练信号。

  9. 作用是什么

  10. 作为 “组合优化问题 → 量子电路 ansatz” 的自动映射器;
  11. 在给定分布上,替代/增强 QAOA 等变分算法,提供更高成功率、更浅电路、对新问题零/少调参的“开箱即用”量子电路;
  12. 为 NISQ 时代的实际量子求解提供一个高效、通用、可扩展的 AI-驱动电路生成框架。

References

[1] Generative quantum combinatorial optimization by means of a novel conditional generative quantum eigensolver. https://arxiv.org/html/2501.16986v1
[2] Artificial intelligence for quantum computing (包含 GPT-QE 与 GQCO 概述). s41467-025-65836-3.pdf.