#诺奖得主哈萨比斯新作登Nature,AlphaQubit解码出更可靠量子计算机
谷歌「Alpha」家族又壮大了,这次瞄准了量子计算领域。
今天凌晨,新晋诺贝尔化学奖得主、DeepMind 创始人哈萨比斯参与撰写的新论文登上了 Nature,主题是如何更准确地识别并纠正量子计算机内部的错误。
我们知道,量子计算机有潜力彻底改变药物发现、材料设计和基础物理学。不过前提是:我们得让它们可靠地工作。
虽然对于传统计算机花费数十亿年才能解决的某些问题,量子计算机在几小时内就可以搞定。然而,量子计算机比传统计算机更容易受到噪声的影响。如果想要量子计算机更可靠,尤其是在大规模情况下,则需要更准确地识别和纠正内部的错误。
因此,谷歌 DeepMind 联合谷歌量子 AI 团队发表了一篇论文,推出了 AI 解码器 AlphaQubit,它能够以 SOTA 准确性识别并纠正量子计算的错误。据介绍,这项工作汇集了谷歌 DeepMind 的机器学习知识和谷歌量子 AI 的纠错专业知识,从而加速构建可靠量子计算机的进程。
两支团队表示,准确识别量子计算机错误是促使它们能够大规模执行长时间计算的关键一步,将为科学突破和更多新领域的发现打开大门。
Nature 论文的标题为《Learning High-accuracy Error Decoding for Quantum Processors》,即《学习量子处理器的高准确性错误解码》。
- Nature 地址:https://www.nature.com/articles/s41586-024-08148-8
谷歌 CEO 桑达尔・皮查伊表示,「AlphaQubit 使用了 Transformers 解码量子计算机,从而达到量子纠错准确性新 SOTA。这是 AI + 量子计算的激动人心的交集。」
我们接下来看 AlphaQubit 的技术细节和实验结果。
量子计算纠错的原理
量子计算机利用最小尺度上物质的独特属性,例如叠加和纠缠,以比传统计算机少得多的步骤解决某些类型的复杂问题。该技术依赖于量子比特,它们可以利用量子干涉筛选大量可能性以找到答案。
不过,量子比特的自然量子态很脆弱,可能受到各种因素的干扰,包括硬件中的微观缺陷、热量、振动、电磁干扰甚至宇宙射线,可以说无处不在。
量子纠错通过使用冗余提供了一种解决方案:将多个量子比特分组为单个逻辑量子比特,并定期进行一致性检查。AlphaQubit 解码器通过利用这些一致性检查来识别逻辑量子比特中的错误,从而保留量子信息,并进行纠错。
如下动图展示了边长为 3(码距离)的量子比特网格中 9 个物理量子比特(小灰色圆圈)如何形成逻辑量子比特。
其中,在每个步骤中,另外 8 个量子比特在每个时间步骤执行一致性检查(正方形和半圆形区域,失败时为蓝色和品红色,否则为灰色),以通知神经网络解码器(AlphaQubit)。在实验结束时,AlphaQubit 确定发生了哪些错误。
谷歌构建了一个神经网络解码器
AlphaQubit 是一个基于神经网络的解码器,基于 Transformers 构建,而该架构也是当今许多大型语言模型的基础。
下图为 AlphaQubit 的纠错和训练流程。a 为表面码的一轮纠错。b 为解码训练阶段。预训练样本要么来自数据无关的 SI1000 噪声模型,要么来自使用 p_ij 或 XEB 方法从实验数据得出的误差模型。
AlphaQubit 使用一致性检查(consistency checks)作为输入,旨在预测逻辑量子比特在实验结束时的状态是否与初始准备状态发生了翻转。通过一致性检查,可以识别并纠正计算过程中出现的错误,确保逻辑量子比特状态保持正确。
最终,AlphaQubit 可以报告其预测的置信度,从而有助于提高整体量子处理器的性能。
实验及结果
实验测试了 AlphaQubit 对量子处理器 Sycamore 中的逻辑量子比特的保护效果。谷歌使用量子模拟器在各种设置中生成了数亿个示例。然后,通过为 AlphaQubit 提供来自特定 Sycamore 处理器的数千个实验样本,针对特定解码任务对其进行微调。
在对 Sycamore 量子处理器的新数据进行测试时,AlphaQubit 在准确率方面设立了新的标准。在规模最大的 Sycamore 实验中,AlphaQubit 的错误率比张量网络方法低 6%。此外,AlphaQubit 的错误率比相关匹配方法低 30%。
在 Sycamore 量子处理器的实验中,解码准确性因实验规模而异。对于小规模实验(距离 3,对应 17 个物理量子比特)和大规模实验(距离 5,对应 49 个物理量子比特),AlphaQubit 的解码准确性均优于其他方法。
具体而言,AlphaQubit 的表现超过了张量网络(TN)方法,后者在大规模实验中难以扩展。同时,AlphaQubit 也优于相关匹配方法,尽管该方法在准确性和扩展性方面表现良好,但在解码准确性上仍不及 AlphaQubit。
在一系列实验中,解码器 AlphaQubit 犯的错误最少。
良好的泛化能力
为了评估 AlphaQubit 在更大规模且错误率更低的量子计算机上的适应性,研究人员使用模拟的量子系统数据对其进行了训练,规模达到 241 个量子比特,超出了 Sycamore 平台的现有能力。
结果显示,AlphaQubit 的性能优于现有的主要算法解码器,表明其在未来中型量子设备上也将具备良好的适用性。
在不同规模的实验中,即从距离 3(17 个量子比特)到距离 11(241 个量子比特)的实验中,AlphaQubit 的解码准确性始终优于相关匹配方法。需要注意的是,张量网络解码器由于在大规模实验中运行速度过慢,未在此图中显示。
最后,该系统还展示了一些高级功能,例如能够接收和报告输入和输出的置信度。这些信息丰富的界面有助于进一步提高量子处理器的性能。
当谷歌研究员在包含多达 25 轮纠错的样本上训练 AlphaQubit 时,它在多达 100,000 轮的模拟实验中保持了良好的性能,表明它能够泛化到训练数据之外的场景。
迈向更实用的量子计算
AlphaQubit 在利用机器学习进行量子误差纠错方面取得了重要的里程碑。但谷歌表示他们仍然面临速度和可扩展性方面的重大挑战。
例如,在一个快速的超导量子处理器中,每秒需要进行上百万次一致性检查。虽然 AlphaQubit 在准确识别错误方面表现出色,但目前还无法实时纠正超导处理器中的错误。谷歌还需要找到更高效的数据训练方法,用于支持基于 AI 的解码器。
目前,谷歌正在结合机器学习和量子误差纠错的前沿技术,努力克服这些挑战,为实现可靠的量子计算机铺平道路,这些技术将有能力解决世界上一些最复杂的问题。
参考链接:
https://blog.google/technology/google-deepmind/alphaqubit-quantum-error-correction/
https://x.com/GoogleDeepMind/status/1859273143157657735
#Inevitable Trade-off between Watermark Strength and Speculative Sampling Efficiency for Language Models
本文第一作者为毕业于马里兰大学计算机系的博士胡正冕,其导师为 Heng Huang。他的主要研究方向是采样与机器学习理论,曾在 ICML、NeurIPS、ICLR、EMNLP 等顶会上发表多篇论文。邮箱: huzhengmian@gmail.com
近日,DeepMind 团队将水印技术和投机采样(speculative sampling)结合,在为大语言模型加入水印的同时,提升其推理效率,降低推理成本,因此适合用于大规模生产环境。这项研究发表在了 Nature 杂志上,给出了两种具体的结合方法,分别在水印检测效果和生成速度上达到了现有最优水平,但无法同时兼顾两者。
无独有偶,另一组来自马里兰大学的研究人员针对同一个问题进行了理论角度的深入分析。他们发现了一个「不可行」定理,证明了不存在一个算法可以同时达到最优的推理效率和最高的水印强度。因此,任何水印系统都必须在这两个目标之间进行权衡。这项名为「Inevitable Trade-off between Watermark Strength and Speculative Sampling Efficiency for Language Models」的研究已被 NeurIPS 2024 会议接收。
- 论文地址: https://arxiv.org/pdf/2410.20418
- 代码仓库: https://github.com/xiaoniu-578fa6bff964d005/AcceleratedUnbiasedWatermark
无偏水印与投机采样方法
无偏水印方法 [1] 是一种将水印嵌入到生成文本的技术,它在理论上保证不影响生成文本的质量和多样性,并让水印无法被人察觉。这种水印方法可用于版权保护和来源追踪。其核心思想是在生成过程中对候选 token 的概率进行重新加权,并要求调整后的概率分布在对水印的随机私钥进行平均后,在数学期望上与原始分布相同,从而避免引入偏差。
投机采样方法 [2,3] 是一种加速大语言模型推理的技术。此方法利用较小的草稿模型快速生成草稿序列,再通过目标模型对这些草稿进行验证和修正。草稿模型规模较小,生成速度更快但质量较低;目标模型并行进行验证,接受符合条件的部分。这种方法可以在保持生成质量的同时,显著提升推理效率,降低计算成本,已成为大规模应用中不可或缺的工具。
「不可行」定理
研究者提出了一个两次重加权框架,分别对草稿模型和目标模型的输出分布进行重加权。这个框架具有很高的自由度,两次重加权函数可以不同,验证算法也可以任意选择,只要满足最终算法保持输出概率分布,从而维持输出质量即可。
在此框架下,研究者严格描述并证明了一个「不可行」定理:当词汇表大小大于 2 时,任何试图同时保持水印强度和加速效果的方法都必然使用两个平凡的重加权函数。
这个定理揭示了水印强度和投机采样效率之间存在一个不可避免的权衡,必须在两者之间做出选择。任何潜在的方法都无法同时达到在不考虑加速情况下最好的水印技术的检测效率,和在不考虑水印情况下最好的投机技术的加速效果。此结果也为未来的研究指明了方向:在设计新算法时研究者需要考虑这个理论限制,根据应用需求在两个目标之间进行平衡。
两种结合方法
即便「不可行」定理揭示了水印强度和采样效率之间存在不可避免的权衡,此研究给出了两种具体的结合水印和投机采样的方法,使得其分别满足以下两点性质:
1. 保持水印强度的方法优先确保水印的可检测性,即使这可能会牺牲一定的采样效率。这种方法首先对目标模型和草稿模型的输出概率分布进行重加权并从中采样,然后基于两个重加权分布进行投机采样。
2. 保持采样效率的方法优先保证生成速度,即使水印的强度可能有所降低。这种方法仍然对目标模型和草稿模型的输出概率分布进行重加权并从中采样,但接下来基于两个未经过重加权的分布进行投机采样。
这两种方法体现了不同的取舍,使用者可以根据具体应用场景和需求进行选择。
实验结果
研究人员在多种文本生成任务以及多种语言模型上进行了实验。他们引入了两个指标:平均每步接受的 token 数(AATPS)衡量投机采样效率,每个 token 的平均负对数 P 值(ANLPPT)衡量水印强度。
实验结果验证了理论分析的正确性,证实了水印强度和采样效率之间确实存在权衡。保持水印强度的方法在水印强度上与传统无偏水印方法相当,但采样效率相比原始投机采样方法有所下降;保持采样效率的方法在采样效率上与原始投机采样方法相当,但水印强度有明显降低。这表明根据实际需求,可以选择优先保证水印强度或采样效率的策略。
总结
此研究从理论角度证明了水印可检测性和投机采样效率之间存在根本冲突,这种冲突并不仅限于现在已有的方法,而是一个普遍规律。鉴于投机采样已经成为降低推理成本不可或缺的工具,高可检测水印系统带来的推理成本增加在未来将持续存在。
将水印技术与投机采样结合这个行为虽然可以让水印更接近实用,但同时也可能带来一些伦理问题,如未经披露的跟踪行为。在实际应用中,人们应当谨慎、合乎伦理地应用无偏水印方法,并向用户明确说明其存在,工作原理和意义。
#神级项目训练GPT-2仅需5分钟
租用 H100 的钱只需 233 美元。
还记得 Andrej Karpathy 纯 C 语言复现 GPT-2 大模型的项目吗?
今年 4 月,AI 领域大牛 Karpathy 一个仅用 1000 行代码即可在 CPU/fp32 上实现 GPT-2 训练的项目「llm.c」曾经引发机器学习社区的热烈讨论。
llm.c 旨在大幅简化大模型的训练,ta 使用纯 C 语言 / CUDA,不需要 245MB 的 PyTorch 或 107MB 的 cPython。不过即使是这样的优化,复现 GPT-2 级别的模型也需要在 8 块 H100 上花费 45 分钟进行训练。
没想到几个月过去,业界水平居然有了指数级的提升,让 Karpathy 本人都感到惊叹:
在 GitHub 上出现了一个新项目「Modded-NanoGPT」,对技术进行了大幅度的迭代,现在实现相同的结果只需要 5 分钟。该研究的作者 Keller Jordan 曾在 Hive AI 工作,一直以来的研究方向都着重于模型训练的优化。他在本周三表示,利用具有大序列长度的 FlexAttention,他已把速度的记录从 7.2 分钟提升到了 5 分钟。
现在有了 FlexAttention 和较大的 seqlen,文档的拆分更少了,因此语言建模在训练和验证时都变得更容易。该记录在 HellaSwag 上的准确率略有降低,约为 29%,而之前的记录和 Andrej Karpathy 的原始训练准确率约为 30%。
让我们看看他是怎么做的:
项目链接:https://github.com/KellerJordan/modded-nanogpt/tree/master
Modded-NanoGPT
该项目名为「Modded-NanoGPT」,它是 llm.c 存储库的 PyTorch GPT-2 训练器的改进变体:
- 10B tokens-->1B tokens
- 8xH100 上花 45 分钟训练 -->8xH100 上花 5 分钟训练
Modded-NanoGPT 采用如下技术:
- 先进的架构:旋转嵌入、QK-Norm 和 ReLU^2;
- 新优化器:Muon;
- 嵌入中的 Untied Head;
- 投影和分类层初始化为零(muP-like);
- 架构 shortcut:值残差和嵌入 shortcut(部分遵循论文《Value Residual Learning For Alleviating Attention Concentration In Transformers》);
- 动量(Momentum)warmup;
- Tanh soft logit capping(遵循 Gemma 2);
- FlexAttention。
要进行训练,请运行以下三个命令:
pip install -r requirements.txt
pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu124 —upgrade # install torch 2.6.0
python data/cached_fineweb10B.py 10 # downloads only the first 1.0B training tokens to save time
./run.sh
在网络连接良好的 8xH100 上,训练应在 20 分钟内完成。
结果将是一个具有 124M 活跃参数的 transformer,在 10 亿 Fineweb tokens 上训练了 1875 steps,实现了约 3.278 的验证损失。相比之下,默认的 llm.c PyTorch 训练器在 100 亿 tokens 上训练了 19560 steps 后,验证损失 >3.28。
值得一提的是,要在更少的 GPU 上运行 Modded-NanoGPT,只需修改 run.sh 以获得不同的 --nproc_per_node。如果内存不足,只需在 train_gpt2.py 中将 device_batch_size 缩小到 16 或 32。
这里有一个适用于全新 8xH100 实例的启动脚本:
sudo apt-get update
sudo apt-get install vim tmux python3-pip python-is-python3 -y
git clone https://github.com/KellerJordan/modded-nanogpt.git
cd modded-nanogpt
tmux
pip install numpy==1.23.5 huggingface-hub tqdm
pip install --upgrade torch &
python data/cached_fineweb10B.py 18
如果 CUDA 或 NCCL 版本与你当前的系统设置不兼容,Docker 可以成为一种有用的替代方案。这种方法标准化了 CUDA、NCCL、CUDNN 和 Python 的版本,减少了依赖性问题并简化了设置。注意:系统上必须已安装 NVIDIA 驱动程序。
sudo docker build -t modded-nanogpt .
sudo docker run -it --rm --gpus all -v $(pwd):/modded-nanogpt modded-nanogpt python data/cached_fineweb10B.py 18
sudo docker run -it --rm --gpus all -v $(pwd):/modded-nanogpt modded-nanogpt sh run.sh
有一个问题在于,NanoGPT 训练很快是很好,但它可能无法扩展,只是过拟合了 val 损失?Keller Jordan 表示,这很难反驳,因为「按规模」是一个无限类别(如果这些方法对 >100T 的模型就不奏效了怎么办?),因此无法完全证明。此外,作者也同意快速运行中使用的一些方法不太可能扩展。但如果读者关心 1.5B 模型,他们可能会被这个结果说服:
直接将快速运行(10/18/24 版本)扩展到 1.5B 参数可以得到一个具有 GPT-2(1.5B)级 HellaSwag 性能的模型,它要比 Karpathy 的基线便宜 2.5 倍(233 美元对比 576 美元):
Muon optimizer
除了在前人的肩膀上探索,新项目也使用了 Keller Jordan 自研的优化方式。比如这个 Muon 优化器,据他所说是目前已知最快的优化器,适用于包括 CIFAR-10 和 GPT-2 规模语言建模在内的各种训练场景。
Muon 的定义如下:
其中 NewtonSchulz5 是 Newton-Schulz 之后的迭代,它近似地用 U @ V.T 替换 G,其中 U, S, V = G.svd ()。
@torch.compile
def zeroth_power_via_newtonschulz5 (G, steps=5, eps=1e-7):
assert len (G.shape) == 2
a, b, c = (3.4445, -4.7750, 2.0315)
X = G.bfloat16 () / (G.norm () + eps)
if G.size (0) > G.size (1):
X = X.T
for _ in range (steps):
A = X @ X.T
B = b * A + c * A @ A
X = a * X + B @ X
if G.size (0) > G.size (1):
X = X.T
return X.to (G.dtype)
对于这种训练场景,Muon 具有以下有利特性:
- 内存使用量比 Adam 低
- 采样效率提高约 1.5 倍
- 挂钟开销小于 2%
总结
作者表示,生成此优化器的许多选择都是通过追求 CIFAR-10 快速运行而通过实验获得的。其中值得一提的经验包括:
- 在更新中使用 Nesterov 动量,在动量之后应用正交化。
- 使用特定的五次 Newton-Schulz 迭代作为正交化方法。
- 使用五次多项式的非收敛系数以最大化零处的斜率,从而最小化必要的 Newton-Schulz 迭代次数。事实证明,方差实际上并不那么重要,因此我们最终得到一个五次多项式,它在重复应用后(快速)收敛到 0.68、1.13 的范围,而不是到 1。
- 在 bfloat16 中运行 Newton-Schulz 迭代(而 Shampoo 实现通常依赖于在 fp32 或 fp64 中运行的逆 pth 根)。
使用 Newton-Schulz 迭代进行正交化的方法可以追溯到 Bernstein & Newhouse (2024),他们建议将其作为计算 Shampoo 预处理器的方法,并从理论上探索了没有预处理器累积的 Shampoo。Keller Jordan 特别感谢了论文作者之一 Jeremy Bernstein 的协助。
如果我们在这里使用 SVD 而不是 Newton-Schulz 迭代,那么这个优化器就会因为太慢而无法使用。Bernstein & Newhouse 还指出,没有预处理器累积的 Shampoo 相当于谱范数中的最陡下降,因此 Shampoo 可以被认为是一种平滑谱最陡下降的方法。所提出的优化器可以被认为是平滑谱最陡下降的第二种方法,与 Shampoo 相比,它具有不同的内存和运行时权衡。