首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >稀疏注意力如何泄密:SparLeak 重建提问与回答

稀疏注意力如何泄密:SparLeak 重建提问与回答

原创
作者头像
用户8534050
发布于 2026-10-05 10:15:40
发布于 2026-10-05 10:15:40
410
举报

一个没人算过的成本项

长上下文推理现在是靠"稀疏注意力"撑起来的:既然只有一小部分 token 对注意力输出有实质贡献,那就别全算。H2O 这类基于激活显著性的方法、Quest/MInference 这类块级打分方法、以及 SeerAttention 这类学习型预测器,都遵循同一个思路——先挑出重要 token,再只对它们做注意力。

问题恰恰出在"挑"这个动作上。挑谁,取决于当前 query;而 query 来自用户的输入和模型刚生成的 token。也就是说,稀疏注意力把一个秘密相关(secret-dependent)的决策,实现在了 KV cache 的访存行为里。这块 KV cache 存在 GPU 的 HBM 上,由页粒度的虚拟内存系统管理;同一张卡上只要还有别的进程在跑,缓存和 TLB 的竞争状态就可能被观测。

Shandong University 的 Fahao Chen、Linkang Du、Jinhao Zhou、Peng Li、Zhou Su 在 2026 年 9 月 30 日提交的论文把这个现象命名为 SIMA(Sparsity-Induced Memory Access),并给出了完整攻击框架 SparLeak。核心结论:在真实的 LLM 服务配置下,属性推断平均成功率 90.9%,逐 token 回答重建 87.3%。

SIMA:被"页"糊掉的信号

先理解为什么这件事在原理上说得通。

单个 token 每层的 KV 张量只有几 KB,论文引用的量级是 10–30 KB。而当代 NVIDIA GPU 的虚拟内存页固定在 64 KB 到 2 MB 这一档。结论很直接:一个页里会并排躺好几个 token 的 KV。稀疏注意力在 token 粒度上做选择,但真正落到内存子系统时,选择只能以页为单位体现——选中页里的某个 token,整页被拉进 L2,页里其他 token 的 KV 顺带被碰。

这带来两个后果,一个对攻击者不利,一个对攻击者有利:

  • 不利:攻击者看到的是页级访问轨迹,多个 token 的细粒度访问被折叠成一个事件,token 身份信息大量丢失。
  • 有利:稀疏注意力天然有空间局部性和分布规律(邻近 token 的重要性相关、跨层跨头的稀疏模式稳定)。所以不必精确还原,只要还原出"近似 token 级稀疏画像",判别力就够下游用了。

论文的消融实验量化了这一点:把真实 token 级稀疏模式聚合到 20 token/页时,如果不能做重建,Healthcare 数据集上的 PASR(prefill 阶段的查询属性成功率)会掉到 57.45%;开启重建后仍显著高于这个数。

SparLeak 的三段式做法

第一步:先分阶段

SparLeak 要区分 prefill 和 decoding,因为两个阶段的泄漏内容完全不同。判别依据是纯执行动力学,不依赖任何特权:

  • prefill 是一次前向吃掉整个上下文,表现为一段短促、密集的 compute-heavy kernel 突发,GEMatmul 主导,核时间密度高;
  • decoding 是逐 token 迭代,表现为一条长而近乎周期的执行轨迹。

论文提到可以用 Nsight Systems 的 kernel timeline 做独立参照(他们的环境里无需 root 即可访问),用一个 kernel-time 利用率代理 util(w) = τ/|w|(τ 是窗口 w 内累计 kernel 执行时间)来定位相位切换点。同样的切换也能直接从 L2/TLB 轨迹的强度与周期性里推出来。

第二步:两个侧信道原语

针对两个阶段,SparLeak 设计了两个不同的原语:

Prefill:基于 L2 的 INVALIDATE+COMPARE,拿"累计"足迹。 思路是把 prompt 侧每个被监控的 KV 页 p_i,在离线标定阶段配一组 cache-line 对齐的探针地址 s_i,让 s_i 的 L2 驱逐行为与 p_i 的访问相关。运行时 spy 先 WRITE_CACHE(s_i) 把探针行填进 L2,然后在 victim 跑 prefill 时用 READ_CACHE(s_i) 配合 INVALIDATE+COMPARE 反复测。访问 p_i 会引入竞争行,访问越频繁,对 s_i 的驱逐足迹越大。把整个 prefill 期间的足迹累加起来,就得到每个页的相对访问频率 c_i——不恢复页内容,也不恢复精确运行地址。

Decoding:基于 TLB 的 EVICT+RELOAD,拿"逐步"足迹。 decoding 阶段每个 step 只生成一个 token,注意力只落在 prompt token 的一个子集上。SparLeak 用 TLB 的 EVICT+RELOAD 来抽逐 step 的 SIMA 轨迹,刻画第 t 步的稀疏结构。

第三步:页级 → token 级重建 + 学习映射

得到页级轨迹后,用稀疏注意力的空间局部性和分布规律做轨迹重建,逼出近似 token 级稀疏画像。然后把这些画像当隐结构信号,通过离线 profile 学一个映射:轨迹 → 私有信息。运行时攻击者只做前向推理,不需要 victim 的模型、prompt 或输出。

在这套映射之上,论文实现两个端到端攻击:

  • QAI(Query Attribute Inference):从 prefill 轨迹推用户提问的高层语义属性;
  • ATR(Autoregressive Token Recovery):从 decoding 轨迹重建模型生成的 token。

数据与代价

评估覆盖 3 个模型架构(LongChat-7B、LLaMA3-8B、Qwen3-8B)、3 类稀疏注意力(激活显著性、块级打分、学习型预测器)、3 个隐私敏感数据集(Healthcare、Financial QA、Legal QA)。

维度

结果

QAI 平均成功率

90.9%

ATR 平均成功率

87.3%

有噪声 / 模型演进后

保留 >90% 原有效果

各模型 prefill PASR

LongChat-7B ≈90.6%,LLaMA3-8B ≈89.4%,Qwen3-8B ≈92.7%

无模型权重时的交互式 profile

PASR 90.97%,DASR 86.65%

注意最后一行:即使攻击者拿不到权重、tokenizer 和稀疏注意力实现,也可以改用"目标交互式 profile"——自己发查询,同卡 spy 记录真实页级轨迹,用自己已知的属性和返回的 token 当标签。相比跑一份插桩复刻版,PASR/DASR 最多只降 1.28 和 1.54 个百分点。

离线成本也被量化了:QAI 每个模型用 5,000 条查询,成本约 0.82–1.10 小时;ATR 平均响应长度 300–500 token、样本 2,000–3,000 条。这个一次性开销可以在同一套配置下被反复摊薄,predictor 训练本身开销可忽略。

论文的解读是:Qwen3-8B 的稀疏模式在层和头之间更稳定、更有辨识度,所以 SIMA 信号更干净,decoding 阶段的 DASR 也最高。

和已有攻击比,它站在什么位置

同一篇论文的 Related Work 里给了一张部署假设对比表,值得单独看,因为它说明了 SparLeak 的"门槛"在哪:

攻击

泄漏源

依赖条件

Spill the Beans / IKWYS

token embedding 表

需要非默认 CUDA 统一内存配置,或 embedding 查表走 CPU;模型全驻 GPU 时该通道消失

MoEcho

MoE 路由的专家激活模式

需要 GPU 性能计数器或共享专家数据页;本质是 MoE 机制泄漏,不适用于 dense 模型

KV-cache 计时类

前缀缓存命中导致的 TTFT 下降

应用层计时即可,但需要共享缓存;属"共享服务状态"通道

SpliceLeak

RAG 场景下非前缀 chunk 融合的时序指纹

依赖 KV cache 去重策略,配套 SpliceDefense(量化 chunk padding)

SparLeak

稀疏注意力的 KV 访存足迹(L2/TLB)

只要 GPU 是共享的、且用了稀疏注意力;对模型架构无假设,对模型权重无假设

差异点在于:前面几条要么依赖特定模型结构(MoE)、要么依赖特殊内存配置(统一内存)、要么依赖应用层可观测的缓存命中(前缀共享)。SparLeak 抓住的是部署默认就存在的共享微架构资源——L2 缓存和 TLB——配上一条越来越多的服务商默认打开的优化(稀疏注意力)。这就是为什么它的适用面更宽。

不过代价也真实存在:L2/TLB 争用信号比"直接计时"弱得多,需要离线标定、需要页粒度聚合后的重建、需要 profile 训练。Aalto 的一篇实证研究(基于 Invalidate+Compare 的完整攻击管线)给出的结论偏保守——L2 活动能稳定识别模型架构、参数规模、推理相位、输入输出长度,但仅靠 L2 观测难以可靠恢复单个 token。SparLeak 的贡献正是在这个"难以"上往前推了一步:它不是恢复 token,而是恢复稀疏结构再映射语义。

防御:目前没有免费午餐

论文评估的缓解手段是往稀疏模式里注入与输入无关的随机性。结果是双向的:

  • 有效:攻击成功率确实下降;
  • 有代价:推理质量随之退化。

这个取舍并不是意外——稀疏注意力的收益本来就来自"选得准",一旦给选择过程加噪声,等于同时削弱了它加速的前提。论文同时引用的相关方向还包括缓存分区(如 page coloring)、随机化缓存索引/驱逐的硬件机制等,这些属于系统与硬件层思路,收益与兼容性代价需要单独评估。

对工程团队来说,可落地的判断顺序大致是:

  1. 先确认威胁模型是否成立:如果推理跑在独占 GPU 上(单租户、无同卡共存进程),SIMA 通道的可观测性被大幅削弱,优先级可以下调。多租户共享卡、且开了稀疏注意力,才需要认真对待。
  2. 确认你用的是哪一类稀疏注意力:基于激活显著性、块级打分、学习型预测器这三类里,论文对三类都做了评估,没有哪一类"天生安全"。
  3. 把隔离当成主防线:MIG 严格分区、进程级独占、避免不必要的同卡共存,比在注意力层加噪声更干净。
  4. 如果必须加噪声,用量化指标定预算:不要拍脑袋定随机化强度,而是固定一个可接受的质量退化阈值(如 LongBench 或 RULER 上的得分下限),反推可注入的随机性上限。

一个示意性的噪声注入形状(伪代码,用于说明"在哪里加"而非可直接运行):

代码语言:javascript
复制
def select_pages(query, kv_pages, top_k, eps):
    scores = estimate_page_criticality(query, kv_pages)  # 与原实现一致
    # eps=0 时退化为正常稀疏注意力
    noise = torch.rand_like(scores) * eps
    idx = torch.topk(scores + noise, top_k).indices
    return idx  # 页粒度选择,落回 L2/TLB 时即是可观测足迹

这段代码想表达的是:泄漏发生在 topk 的结果上,所以任何防御都必须作用在选择结果的空间局部性上,而不是作用在 KV 内容上(攻击者本来就读不到 KV 内容)。这也解释了为什么"加密 KV"这类方案对 SIMA 无用——它防的是内容泄漏,不是访问模式泄漏。

谁该读这篇

  • 推理引擎/服务框架的维护者:稀疏注意力正在从"研究特性"变成"默认开关",SparLeak 提示这个开关附带了一条此前没被计入的隐私成本。
  • 多租户 GPU 平台的运维:MIG 和调度隔离的优先级值得重新评估,尤其是共享卡上混跑不同租户推理负载的场景。
  • 长上下文应用的安全评审:Healthcare / Financial / Legal 这类数据集上的高成功率(属性级别 90%+)说明,即使攻击者读不到原文,属性推断已经足以构成合规风险。
  • 稀疏注意力研究者:论文指出了一个此前被忽视的评估维度——除了精度与加速比,稀疏模式本身的"可区分性"也是一个安全属性。

论文提供了匿名化的 SIMA 轨迹、训练好的攻击模型、评估脚本和文档作为复现工件。需要留意的边界是:SparLeak 的完整评估仍建立在攻击者能同卡共存并做离线标定的前提下,跨卡、跨 MIG 分区、或是禁用相关 GPU 指令后的效果,论文没有给出同等详细的数字。这个空白,恰恰是防御方可以做文章的地方。

参考链接

  1. Fahao Chen, Linkang Du, Jinhao Zhou, Peng Li, Zhou Su. SparLeak: Privacy Leakage from Sparse Attention in LLM Inference on Shared GPUs. arXiv:2609.38830 (cs.LG, cs.CR), 2026-09-30. https://arxiv.org/abs/2609.38830
  2. SparLeak 全文 HTML 版(含攻击工作流图、离线 profile 开销表、消融实验). https://arxiv.org/html/2609.38830v1
  3. scirate 论文条目(提交与发布日期、分类信息). https://scirate.com/arxiv/2609.38830
  4. papers.cool 摘要与工件地址(anonymous.4open.science/r/Janus_artifacts). https://papers.cool/arxiv/2609.38830
  5. I Know What You Asked: Prompt Leakage via KV-Cache Sharing in Multi-Tenant LLM Serving. NDSS 2025. https://www.ndss-symposium.org/wp-content/uploads/2025-1772-paper.pdf
  6. Quest: Query-Aware Sparsity for Efficient Long-Context LLM Inference(块级打分稀疏注意力,页内 min/max Key 估计关键性). MIT HAN Lab. https://hanlab.mit.edu/projects/quest
  7. SeerAttention(学习型稀疏预测器,AttnGate 自蒸馏). OpenReview. https://openreview.net/pdf?id=Nf8yfPDFTl
  8. An empirical study of GPU cache side-channel leakage in large language model inference. Aalto University. https://aaltodoc.aalto.fi/items/861b8b37-d909-4b9a-beb8-ca765eb3e59a

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一个没人算过的成本项
  • SIMA:被"页"糊掉的信号
  • SparLeak 的三段式做法
    • 第一步:先分阶段
    • 第二步:两个侧信道原语
    • 第三步:页级 → token 级重建 + 学习映射
  • 数据与代价
  • 和已有攻击比,它站在什么位置
  • 防御:目前没有免费午餐
  • 谁该读这篇
  • 参考链接
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档