Quantamination: Dynamic Quantization Leaks Your Data Across the Batch
本文介绍了“量化注入”,这是动态量化中的一种关键漏洞,流行机器学习框架中的不当实现会创建侧信道,使攻击者能够从同一处理批次中的其他输入窃取敏感用户数据。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象你正身处一家繁忙的咖啡店,那里的咖啡师(即 AI 服务器)为了节省时间,必须同时为两位顾客制作饮品。为了加快速度,咖啡师使用了一种特殊的“快速量杯”,而不是精确的秤。这被称为动态量化。
然而,这篇论文发现了一个问题:咖啡师并非单独测量每一杯饮品,而是同时观察两位顾客的饮品,以此决定那一刻该使用多大尺寸的“快速量杯”。
“共享量杯”问题
在 AI 世界中,当两个人在同一时刻(一个“批次”)请求计算机处理他们的数据时,计算机通常会基于混合数据堆中出现的最大数值,为这两人计算出一个统一的设置。
- 受害者:一位发送秘密消息的普通用户。
- 攻击者:一位在受害者旁边发送虚假消息的狡猾用户。
由于计算机是基于混合数据来计算“量杯尺寸”的,受害者的秘密数值实际上会改变用于攻击者数据的量杯大小。这就像咖啡师不得不为受害者巨大的订单端出一个巨大的桶,而这个桶大到足以让攻击者原本微小的浓缩咖啡尝起来与往常略有不同。
“泄露”(量化污染)
论文将这种现象称为**“量化污染”(Quantamination)**(是“量化”与“污染”的组合词)。
攻击者确切地知道自己的饮品应该是什么味道。但由于“量杯尺寸”被受害者的秘密数据改变了,攻击者的饮品尝起来会有些许怪异。通过品尝这种怪异,攻击者可以逆向推算出受害者的秘密数据是什么。
攻击者能做什么
研究人员在两个主要场景中测试了这种攻击:
读取秘密消息(大语言模型):
想象受害者正在逐字输入一句秘密句子,而攻击者将自己的词语与受害者的词语一起发送。- 结果:攻击者能够以**99.6% 到 100%**的准确率猜出受害者的秘密词语。这就像攻击者能够透过墙壁听到受害者低语密码,仅仅是通过聆听自己声音的回声。
- 速度如何? 猜出第一个词需要几百次尝试,但一旦知道了第一个词,接下来的词就变得更容易猜测,就像解填字游戏时你已经有了前几个字母。
识别图像(分类):
想象受害者上传了一张猫的秘密照片,而攻击者上传了一张狗的照片。- 结果:如果攻击者拥有一个包含 10,000 张照片的库可供选择,他们几乎总能挑出受害者上传的确切照片。
- 局限性:如果攻击者的库中没有受害者的确切照片,他们只能猜测类别(例如:“这很可能是一只猫”),且准确率较低。计算机产生的“噪声”太强,在没有直接匹配的情况下无法精确定位到具体图像。
为什么会发生(咖啡店的“原因”)
大多数现代 AI 系统旨在实现超高效能。它们通常使用一种称为**“每张量”(Per-Tensor)*的量化方法来提升速度。这意味着它们会查看整个*数据批次来设定规则。
论文发现,流行的工具如vLLM、SGLang、ONNX Runtime和PyTorch,通常默认或作为便捷选项采用这种“查看整个批次”的方法。这创造了一个隐藏通道,使得一个人的数据泄露到另一个人的结果中。
好消息
论文也指出了一个简单的修复方案。如果系统使用**“每词/每令牌”(Per-Token)**量化(即在混合之前单独测量每个词或项目),泄露就会消失。这就像给每位顾客都提供他们自己精确的秤,这样另一位顾客的大桶就不会影响到他们。
许多现代系统已经为标准文本模型使用了这种更安全的方法,但这种危险的“整个批次”方法仍然是某些特定高速设置(如 FP8)和通用工具的默认选项。
现实世界的障碍
论文承认,在现实世界中,这种攻击比在实验室中更难实施。
- “静态”噪声:现实中的服务器并非绝对安静。有时计算机的硬件或软件的随机选择,即使没有泄露,也会使饮品的“味道”产生轻微变化。
- “温度”问题:即使用户要求“完全确定性”(无随机性)的结果,服务器提供商也可能添加自己的秘密配方或采样方法,从而破坏攻击者需要看到的完美模式。
总结
动态量化是一种为 AI 公司节省金钱和时间的速度技巧。然而,当它混合两个人的数据来设定规则时,会意外地创建一个侧信道。一个狡猾的用户可以监听自己的数据如何因陌生人的秘密数据而发生变化,从而窃取该秘密。修复方法是停止混合测量,改为单独测量每个人的数据。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。