量子计算机可以利用叠加、纠结和干扰的量子属性,从数据中推广学习和见解。这种量子机器学习(QML)技术最终将在量子加速超级计算机上运行,这些计算机结合了CPU、GPU和QPU的处理能力,以解决世界上一些最复杂的问题。
许多 QML 算法提供了理论加速,假设经典数据可以使用所谓的 Quantum Random Access Memory (QRAM) 在叠加中高效加载。缺乏任何高效的方法来实现 QRAM 意味着早期的量子计算机可能会擅长计算,而不是数据密集型任务
在实践中,在近期和中期硬件上有效的 QML 算法必须专注于计算密集型启发式算法,以便在没有 QRAM 的情况下分析数据。
本文重点介绍了副教授 Dr. Petros Wallden 及其团队在 Quantum Software Lab(爱丁堡大学信息学学院的一部分)的近期研究。Dr. Petros Wallden 是量子信息学专家,其研究范围从量子算法和量子密码学到量子信息学的基础。
Petros 的团队使用 NVIDIA CUDA-Q(以前称为 CUDA Quantum)平台来开发和加速新 QML 方法的模拟,从而显著减少研究大型数据集所需的量子位数量。
Petros 的团队扩展了 Harrow 的工作,该团队使用核心集的概念为 QML 应用程序提供了一种新的构建逼真的预言机的方法,而无需使用 QRAM。
什么是核心集?
核心集通过获取完整的数据集并以最佳方式将其映射到较小的加权数据集来形成(图 1)。然后,无需直接处理完整的数据集,即可分析核心集,以近似完整数据集的特征。
核心集是经典降维方法的成果,该方法在集群应用之前对数据进行预处理。通过采用核心集,数据密集型 QML 任务可以减少几个数量级的量子位来实现近似,并成为近期量子计算的更逼真应用。
标准的经典核心集构建技术通常从数据集和目标误差开始,然后确定核心集的最佳大小以满足此误差要求。由于实验限制,Petros’ 团队根据可用的量子位数选择核心集大小,然后根据量子计算评估此选择产生的误差。
使用核心集进行聚类的量子方法
将输入数据简化为大小可控的核心集后,Petros 的团队可以探索三种量子聚类算法。
聚类是一种无监督式学习技术,描述了一系列以有意义的方式对类似数据点进行分组的方法。然后,这些组或聚类可用于在实际应用中做出明智的决策,例如确定肿瘤是恶性还是良性。
Petros 的团队使用 CUDA-Q 实现了以下聚类技术:
- 分割聚类:一种方法,其中核心设置点始于一个集群,并连续进行二分划分,直到每个数据点都位于自己的集群中。在这种方法中,该过程可以在第K次迭代时停止,以了解如何将数据划分为K个集群(图2)。
- 3-means 聚类:根据每个点与 K 演进质心(质心)的关系,将数据点划分为 K 个聚类(在本例中为 3 个)。当三个聚类收敛且不再随着新的迭代而变化时,此过程结束。
- 高斯混合模型(Gaussian Mixture Model, GMM)聚类:潜在核心集点位置的分布表示为 K 个高斯分布的混合。根据每个核心集点最可能来自的高斯分布,将数据分为 K 个集。
每种聚类技术都会输出一组核心集以及从原始数据集中每个点到其中一个核心集的映射,从而对初始的大型数据集实现近似聚类和维度缩减。
通过使用变分量子算法(VQA)框架,每种技术都以可以使用 QPU 的方式表示。Petros 和团队通过推导加权量子位哈密顿量(受最大切问题的启发)为前面描述的每个聚类方法编码各自的成本函数,从而实现了这一点。拥有这样的哈密顿量使迭代 VQA 过程能够反复调用 QPU(真实或模拟),以高效计算每个聚类例程中所需的成本最小化。
使用 CUDA-Q 克服可扩展性问题
探索这些 QML 聚类方法的有效性需要能够运行每种算法的执行模拟,以了解它们在不同场景下的性能。
NVIDIA CUDA-Q 模拟工具包可针对高达 25 个量子位的问题对每种聚类方法进行全面模拟。CUDA-Q 通过提供对 GPU 硬件的轻松访问来加快这些模拟的速度。它还提供了开箱即用的基元,例如用于参数化基于哈密顿优化过程的硬件高效型 ansatz 内核,以及可轻松适应聚类算法成本函数的旋转哈密顿量。
事实上,只有借助 NVIDIA 的 CUDA-Q 提供的 GPU 加速,才能在小型量子计算机论文上执行 Petros 团队在其大数据应用程序中展示的规模模拟。
最初的实验仅在 CPU 硬件上模拟了 10 个量子位,但内存限制使得感兴趣的 25 个量子位实验无法做到这一点。在 CUDA-Q 中实施意味着最初的 10 个量子位模拟代码也可以立即兼容,当 Petros 的团队需要为 NVIDIA DGX H100 GPU 系统切换 CPU 硬件时,无需修改即可运行。
这种代码可扩展性是一个巨大的优势。通过将多个 GPU 的内存与 NVIDIA mgpu 后端的内存池化(图 3),Petros 和团队此后通过更改后端目标进一步扩展了模拟,而无需显著更改原始模拟代码。
这项研究的首席开发者 Boniface Yogendran 表示,“CUDA-Q使我们无需担心量子位可扩展性限制,从一开始就支持HPC。”
Yogendran 的代码可以让工作超越模拟,因为 CUDA-Q 本身也支持 QPU,支持在所有主要 QPU 模式上部署。
CUDA-Q 模拟的价值
由于能够轻松模拟所有三种聚类算法,Petros 及其团队得以针对 Brute Force 方法对每种算法进行基准测试,从而找到全局最优解决方案和经典启发式方法(即Lloyd’s 算法)。结果表明,量子算法在 GMM(K=2)中表现最佳,而分割聚类方法可与Lloyd’s 算法媲美。
基于这项工作的成功,Petros 的团队计划继续与 NVIDIA 合作,继续使用 CUDA-Q 开发和扩展新型量子加速超级计算应用程序。
探索 CUDA-Q
CUDA-Q使Petros和团队能够轻松开发新型QML实现,并通过加速计算对其进行模拟。在CUDA-Q中实施,使代码能够可移植,以便在物理QPUs上进行进一步的大规模模拟或部署。
有关 CUDA-Q 量子的更多信息或要立即开始使用,请参阅分割聚类 Jupyter notebook,其中探讨了本文中描述的核心集支持的分割聚类方法,该教程展示了使用 GPU 扩展代码和运行 34 量子位实例是多么容易。
使用 CUDA-Q 快速入门指南中提供的任何方法下载 CUDA-Q,并在 CUDA-Q 教程页面上查找其他教程。