跳转至

QAOA-GPT工作流

一、QAOA‑GPT 的工作全流程(从数据生成到推理)

可以按时间顺序分成四大阶段:

  1. 用 ADAPT‑QAOA 生成高质量电路数据集(离线、合成)
  2. 把“图 + 电路”标记化,构建训练样本
  3. 训练一个条件 GPT(decoder‑only Transformer)
  4. 用训练好的 QAOA‑GPT 对新图“一次前向”生成 QAOA 电路与参数

阶段 1:用 ADAPT‑QAOA 生成合成训练数据(离线)

目标:得到很多“某个 MaxCut 图 → 高质量 QAOA‑风格电路(含参数)”的样本,用来教 GPT。

  1. 随机生成问题图(MaxCut 场景)
  2. 图模型:Erdős–Rényi \(G(n,s)\)
    • \(n\):结点数(如 10、12、14)
    • \(s\):边出现概率(如 0.3–0.9 多个取值)
  3. 约束:只保留连通图,没有孤立点和多组件
  4. 每条边赋权:\(w_{ij} \sim U(0,1)\)

  5. 对每个图运行 ADAPT‑QAOA 生成电路

  6. 任务:构造一条**问题特定的 QAOA‑样式电路**,并优化其参数,使 MaxCut 近似比足够高。
  7. 大致步骤:

    1. 选一个初始 \(γ_0 \in \{0.01,0.1,0.5,1\}\),构造初始 cost 相关单元;
    2. 给定一个**算符池** \(P\)
      • 例如标准 QAOA 池 \(P_{\text{QAOA}}\)(只含 cost/mixer 结构),
      • 或更丰富的 \(P_{\text{dual}}=\{B_i C_j \mid B,C\in\{X,Y,Z\}\}\cup P_{\text{single}}\)
    3. 在每一轮 iteration:
      • 对池中每个候选算符,计算其对 cost 函数的梯度大小;
      • 选取梯度最大的算符 \(O^{(k)}\) 加入电路作为第 \(k\) 层;
      • 重新优化所有已有参数 \(\{\gamma_1,\beta_1,\ldots,\gamma_k,\beta_k\}\)
    4. 当电路在该图上的**近似比** \(\alpha\) 达到目标阈值(如 \(\alpha\ge0.97\))或者深度达到上限,就停止。
  8. 记录“图 → 电路”的配对

  9. 对于每个图 \(G\),记录:
    • 图本身(边列表和边权);
    • 一条或多条满足 \(\alpha\ge0.97\) 的 ADAPT‑QAOA 电路: $$ \big{(o_k,\gamma_k,\beta_k)\big}_{k=1}^L $$ 其中:
    • \(o_k\):第 \(k\) 层选用的算符在算符池中的索引;
    • \(\gamma_k,\beta_k\):第 \(k\) 层的变分角。

这一阶段的直观理解:
用传统非常“贵”的自适应 QAOA,把很多问题图都“吃透”,抽取出高质量的电路和参数,作为后面教 GPT 的“标准答案”。


阶段 2:标记化与训练样本构造

目标:把“图 + 电路”都变成一维 token 序列,适配 GPT 的自回归训练。

  1. 图的标记化(Graph Tokens)

一个图 \(G\)(带权边)被编码为序列:

\[ \texttt{<bos>, (i_1,j_1), w_{i_1j_1}, \dots, (i_m,j_m), w_{i_mj_m}, <end\_of\_graph>} \]
  • \((i_\ell,j_\ell)\):第 \(\ell\) 条边连接的两个结点的索引(0 ~ \(n-1\)
  • \(w_{i_\ell j_\ell}\):对应的边权,实数截断到小数点后两位,并限制在 \([-10,10]\)

  • 电路的标记化(Circuit Tokens)

一条 ADAPT‑QAOA 电路被编码为一串“层块”:

\[ \texttt{<new\_layer\_p>, } o_k, \gamma_k, \beta_k \quad (k=1,\dots,L) \]
  • <new_layer_p>:新一层的起始标记(包含层号等信息)
  • \(o_k\):这一层使用的算符在池中的索引(离散 token)
  • \(\gamma_k,\beta_k\):该层的 cost / mixer 参数(连续值也离散化为标记,上界截断到 [-10,10],并四舍五入两位小数)

  • 构造训练序列与样本

  • 对“图标记 + 电路标记”组成的长序列,采取“滑动窗口”方式截取长度为 \(b_i\) 的子序列:

  • 每个训练样本是一段 token 子序列 \(x_{1:T}\)
  • 目标是预测下一个 token(标准 GPT 自回归目标)。
  • 不把不同图的序列拼接在一起,保持“一个样本只属于一个问题实例”的语义边界,避免跨实例信息泄露。

阶段 3:训练 QAOA‑GPT 模型

  1. 模型架构:条件 GPT(decoder‑only Transformer)

  2. 模型结构:

  3. GPT‑2 风格 decoder‑only Transformer;
  4. 多层 masked self‑attention + 前馈网络;
  5. 约 1200 万参数,类似 nanoGPT 规模。
  6. 输入嵌入: $$ X = E_{\text{tok}}(x_{1:T}) + E_{\text{pos}} + e_G \otimes \mathbf{1}_{1\times T} $$ 其中:
  7. \(E_{\text{tok}}\):token embedding;
  8. \(E_{\text{pos}}\):位置编码;
  9. \(e_G\):通过 FEATHER 计算出的**图嵌入向量**,在每个位置上都相同(相当于对整条序列进行条件化)。

  10. 训练目标(loss)

  11. 标准自回归损失:
    给定前缀 token,预测下一个 token 的交叉熵损失: $$ \mathcal{L} = -\sum_t \log p_\theta(x_{t+1} \mid x_{\le t}, G) $$

  12. 训练时监控的指标:
  13. 在验证集图上的**平均近似比**(AR);
  14. 生成电路的**结构有效性**(例如参数是否越界、算符是否可用)。

  15. 训练策略

  16. 从零开始训练(而不是微调现有 GPT),完全针对这一任务;

  17. 使用大规模 CPU+GPU 集群先生成合成数据,再在 GPU 上训练 Transformer;
  18. 提前停止:若验证 AR 不再提升、或无效电路比例上升,则停止训练。

阶段 4:推理阶段——对新问题“一次生成” QAOA 电路

当模型训练好之后,用法非常简单:

  1. 输入一个新图实例
  2. 用户给出一个 MaxCut 图(或更一般的 QUBO 图):节点集 + 带权边集;
  3. 计算其 FEATHER 图嵌入 \(e_G\)
  4. 按前述规则标记化为 Graph Tokens。

  5. 自回归生成电路

  6. 将图标记和嵌入送入 GPT;
  7. 模型自回归地输出电路 token 序列: $$ \texttt{, } o_1, \gamma_1, \beta_1,\quad \texttt{, } o_2, \gamma_2, \beta_2, \dots $$
  8. 直到生成结束标记或达到最大层数上限。

  9. 得到可直接执行的 QAOA 电路

  10. 把 token 序列翻译成实际电路:
    • 算符 \(o_k\) → 对应的门(如某个 Z_i Z_j 交互或者 mixer 门);
    • 参数 \(\gamma_k,\beta_k\) → 旋转角度;
  11. 可在模拟器或真实量子硬件上直接运行,无需再做梯度优化。

推理阶段关键特征:
一次前向传播 + 自回归采样就得到“结构+参数”齐全的 QAOA 电路,不需要任何梯度计算或参数优化循环。


二、QAOA‑GPT 的输入 / 输出总结

可以从“训练阶段”和“推理阶段”分别看。

1. 训练阶段

  • 输入
  • 序列形式:
    • 图标记:<bos>, (i,j), w_ij, ..., <end_of_graph>
    • 电路标记:<new_layer_p>, o_k, γ_k, β_k, ...
  • 条件信息:

    • FEATHER 图嵌入 \(e_G\),在所有时间步作为额外偏置加入。
  • 输出(模型要学会生成的东西)

  • 对于每个位置 \(t\),预测下一个 token 的分布;
  • 实际上就是学会“给定图和已有电路前缀 → 下一个门/参数是什么”。

2. 推理阶段

  • 输入(从用户角度)
  • 一个组合优化问题实例的图:
    • 节点集合;
    • 带权边列表 \((i,j,w_{ij})\)
  • 模型内部会:

    • 计算图嵌入;
    • 把图转为 Graph Tokens 作为 context。
  • 输出(从用户角度)

  • 一条完整的 QAOA‑风格电路
    • 一系列层: $$ {(o_k,\gamma_k,\beta_k)}_{k=1}^L $$
    • 可转成实际量子门:某种顺序的 cost unitary 与 mixer unitary。
  • 隐含输出:已参数化的 QAOA 程序
    • 不仅给出电路结构(哪些门、几层),还给出了优化过的参数 \(\{\gamma_k,\beta_k\}\)
    • 可以直接用来估计 MaxCut 近似或寻找最优 cut bitstring。

三、训练数据是什么?如何构造?

1. 数据来源与本质

  • 全部是合成数据,不是人工标注:
  • 图:随机生成的 MaxCut 图(ER 图为主,可混 BA/REG/WS 等);
  • 电路:由 ADAPT‑QAOA 自动搜索和优化出来。
  • 每条数据本质是一个三元组: $$ (\text{图 }G, \text{电路结构 }{o_k}, \text{电路参数 }{\gamma_k,\beta_k}) $$
  • 只保留那些在该图上达到较高近似比(例如 \(\alpha\ge0.97\))的电路,保证数据质量。

2. 数据规模和覆盖范围(论文给出的典型设置)

  • 图数量:> 50,000
  • 图类型和参数:
  • ER 图不同边密度 \(s\in\{0.3,\dots,0.9\}\)
  • 也可以混合 BA、REG、WS 等图来提升泛化;
  • 结点数:典型实验是 \(n=10,12,14\) 不同规模;
  • ADAPT‑QAOA 生成:
  • 对每个图运行多次,以不同初始参数/算符池生成多样化电路;
  • 目标近似阈值越高,生成的数据越难、质量越高。

3. 数据的用途

  • 对 GPT 来说,这就是一个**监督序列预测任务**的数据集:
  • 学到“在某类图结构上,好的电路长什么样、参数大致落在哪个分布”;
  • 把原本“求解问题 + 优化电路”的过程压缩成“条件生成电路”。

四、QAOA‑GPT 的作用与价值

可以从“算法层面”和“工程层面”分别看它的作用。

1. 替代 / 加速 QAOA 电路设计和参数优化

传统流程(ADAPT‑QAOA / 标准 QAOA):

  1. 对每个新图:
  2. 先选一个 ansatz 结构或逐层构造(ADAPT‑QAOA);
  3. 然后进行大量经典优化(梯度评估、迭代搜索 \(\gamma,\beta\))。
  4. 计算成本主要在:
  5. 多次量子线路仿真;
  6. 大量梯度计算和参数更新。

QAOA‑GPT 之后:

  • 只需一次前向生成:
  • 输入图 → GPT 直接给出一条“已经训练好风格”的 QAOA‑样式电路 + 参数;
  • 后续可以选择“直接用”或者再做少量微调。
  • 因而:
  • **大幅减少**每个新实例的经典优化时间和量子仿真调用;
  • 极大适合“有大量问题实例要解”的场景(比如图优化基准测试)。

2. “问题 → 电路”自动映射器(problem‑to‑circuit mapper)

  • QAOA‑GPT 本质上学的是一个映射: $$ G \longmapsto \text{量身定制的 QAOA 电路(结构+参数)} $$
  • 这和你之前看到的 GPT‑QE / GQCO 思路一脉相承,只是:
  • GPT‑QE 针对分子电子结构(哈密顿量 → ansatz);
  • GQCO 针对更一般的组合优化(问题图 → 通用量子 ansatz);
  • QAOA‑GPT 专门针对 QAOA 这一类结构化变分算法,生成“更紧凑、更开箱即用”的 QAOA 电路。

3. 生成**紧凑、浅层**的高质量电路(对 NISQ 友好)

  • 数据来源本身(ADAPT‑QAOA)已经偏向寻找**资源高效**的电路;
  • GPT 学到的分布倾向重复这种模式,结果是:
  • 电路深度通常比同样精度的标准 QAOA 更浅;
  • 在噪声存在时表现更好,更利于在真实 NISQ 硬件上运行。

4. 提供“零/少调参”的 QAOA 方案(out‑of‑the‑box)

  • 由于 QAOA‑GPT 同时输出电路结构和参数:
  • 有些实例上可以**直接使用这些参数**就达到不错近似比;
  • 某种意义上,相当于为 QAOA 提供了一个“从大规模历史问题中学来的初始化与结构搜索经验”。
  • 若你愿意,还可以把 QAOA‑GPT 输出作为**warm‑start**,再做少量本地优化,进一步提升结果。

五、总结(对应你的四个问题)

  1. 工作全流程是什么?
  2. 离线:用 ADAPT‑QAOA 大量生成“图 → 高质量 QAOA 电路(含参数)”样本;
  3. 标记化:把图和电路统一编码成 token 序列;
  4. 训练:以图嵌入为条件,训练 decoder‑only Transformer 做自回归预测电路 token;
  5. 推理:给新图,模型一次前向就自回归输出电路层结构和参数,无需再做梯度优化。

  6. 输入输出是什么?

  7. 训练时:
    • 输入:图标记 +(作为监督的)电路标记(以及内部使用的图嵌入);
    • 输出:下一 token 概率分布(从而学会生成完整电路)。
  8. 推理时:

    • 输入:一个新图(边列表 + 权重),内部转为图嵌入 + 图 token;
    • 输出:一条完整 QAOA‑样式电路,即一串 \((o_k,\gamma_k,\beta_k)\) 层,可直接在模拟器或量子机上执行。
  9. 训练数据是什么?

  10. 完全由**自适应 QAOA(ADAPT‑QAOA)+ 随机图生成**自动构造的合成数据;
  11. 每个样本是“随机图 + 在该图上达到高近似比(\(\alpha\ge0.97\))的 QAOA‑式电路(结构+参数)”;
  12. 图类型覆盖 ER 等多种图族、不同边密度和规模(如 10–14 qubits)。

  13. 作用是什么?

  14. 算法层面:把原本昂贵的“为每个问题单独做人肉/迭代 QAOA 优化”的过程,压缩成“一个大模型 + 一次前向推理”;
  15. 工程层面:显著降低 QAOA 在大批量问题上的经典优化成本,生成更浅、更 NISQ 友好的电路;
  16. 方法论层面:证明“用 GPT 类大模型做问题 → 量子电路/参数 的映射”在组合优化场景下是可行且高效的,为更通用的 AI‑for‑QC 电路生成提供了模板。

如果你接下来想做实现层面的练习,我可以帮你把上面的流程进一步拆成“最小可行版本”,例如:只用小规模 ER 图 + 简化算符池,在 PennyLane/Qiskit 上复现一个 toy 版 QAOA‑GPT。


References

[1] Artificial intelligence for quantum computing. s41467-025-65836-3.pdf.
[2] QAOA-GPT: Efficient Generation of Adaptive and Regular Quantum Approximate Optimization Algorithm Circuits. https://arxiv.org/pdf/2504.16350.pdf.