跳转至

MPCache: MPC-Friendly KV Cache Eviction for Efficient Private LLM Inference

会议: NeurIPS 2025
arXiv: 2501.06807
代码: GitHub
领域: 安全
关键词: 隐私推理, 安全多方计算, KV缓存淘汰, LLM效率, 稀疏注意力

一句话总结

本文提出MPCache,一个面向安全多方计算(MPC)的KV缓存淘汰框架,结合一次性静态淘汰和查询感知的动态选择,配合层次化聚类、线性化相似度近似和跨层索引共享等优化,在不牺牲LLM性能的前提下实现最高2.01倍延迟降低和8.37倍通信量削减。

研究背景与动机

LLM即服务(MLaaS)中,用户需上传含敏感信息的prompt到云端,而服务商不愿公开模型权重。MPC能在保护双方隐私的同时完成推理,但面临严重的效率挑战,尤其是长序列的注意力计算。

作者对GPT-2在Secretflow框架上的MPC推理进行了性能分析,发现: - 注意力计算主导了2PC和3PC协议的延迟和通信开销 - Softmax因包含max、指数、除法等复杂运算占注意力成本的主体 - 随序列长度增加,Softmax成本急剧增长

虽然明文推理中的KV缓存淘汰和稀疏注意力已被广泛研究,但直接应用到MPC会适得其反。作者在图1(d)中展示,直接应用动态KV淘汰算法反而增加了通信和延迟,因为它引入了MPC中代价高昂的操作:top-k排序(频繁比较协议)、余弦相似度(大量乘法)、token聚集(需将索引转为one-hot向量再与KV缓存相乘)。

因此,核心挑战是:如何设计对MPC友好的KV缓存淘汰算法?

方法详解

整体框架

MPCache基于三个关键观察设计:(1) 长序列的注意力图整体稀疏,可静态淘汰不重要token;(2) 注意力具有token级局部性,可通过聚类构建高效动态选择;(3) 相邻层的top-k排序相似,可跨层共享索引。整体流程分为prefill阶段的一次性静态淘汰和decoding阶段的查询感知动态选择。

关键设计

  1. 一次性静态KV缓存淘汰: 在prefill阶段对token进行三类划分——IA(对所有token重要,始终保留)、UIA(对所有token不重要,直接丢弃)、IC(对部分token重要,动态选择)。通过累加最后20%prompt token的注意力分数来衡量token重要性,排序后淘汰UIA token。实验显示,LLaMA-2-7B上约60%的token可以被静态淘汰而不影响性能。该操作仅需一次,成本可被整个生成过程摊销。

  2. MPC友好的动态KV缓存选择: 将相邻token分组为聚类,将选择粒度从token级提升到聚类级。核心问题是如何准确高效地度量聚类的相似度。

相似度近似: 使用最大点积上界而非均值或余弦相似度。给定查询 \(\mathbf{q}\) 和聚类键缓存 \(\mathbf{K}_c\),推导上界: \(\mathrm{Sim}(\mathbf{q}, \mathbf{K}_c) \leq \sum_{i=0}^{d-1} \max(\mathbf{q}_i \mathbf{r}_i^{\max}, \mathbf{q}_i \mathbf{r}_i^{\min})\) 其中 \(\mathbf{r}_i^{\max}\) 和 \(\mathbf{r}_i^{\min}\) 分别为聚类中键缓存在第 \(i\) 维的极值(仅需计算一次)。

线性化与重排序: 为消除MPC中代价高的max操作,进一步线性化近似: \(\mathrm{Sim}(\mathbf{q}, \mathbf{K}_c) \approx \sum_{i=0}^{d-1} \mathbf{q}_i \cdot (\alpha \mathbf{r}_i^{\max} + (1-\alpha) \mathbf{r}_i^{\min})\) 其中 \(\alpha=0.6\)。重排序后先求和再乘法,乘法量减少2倍,max操作减为0。

  1. 层次化KV缓存聚类: 将KV缓存组织为层次结构,从粗粒度(大聚类)到细粒度(小聚类)逐级选择。粗粒度级别大幅缩小搜索空间,细粒度级别仅在已选聚类内精细筛选,平衡了精度和效率。

  2. 跨层索引共享策略: 利用相邻层注意力模式的相似性(commonality score高达80%+),让相邻两层共享选中的token索引,将动态选择的额外开销直接减半。第一两层因commonality较低不参与共享。

Token聚集协议优化

聚类设计直接优化了MPC开销最大的token聚集协议: - 等价协议次数从 \(T\) 降为 \(C\)(聚类数) - one-hot向量位宽从 \(\log T\) 降为 \(\log C\) - 例如 \(T=1024, C=64\) 时,延迟降低73.5倍,通信降低369.8倍

实验关键数据

与动态方法的对比(LongChat-7B,LongBench)

数据集 缓存预算 InfLLM性能/延迟 LongCache性能/延迟 MPCache性能/延迟
HotpotQA 5% 28.20/51.64s 24.31/89.46s 30.27/39.85s
TriviaQA 5% 75.65/51.64s 59.85/89.46s 75.61/37.37s
NarrQA 5% 12.80/47.74s 14.65/86.42s 17.23/36.13s
PassageR 10% 8.87/68.04s 24.92/123.1s 27.75/58.47s

延迟与通信改进

序列长度 解码延迟降低 通信量降低
短序列 1.8× 3.39×
长序列 2.01× 8.37×

扩展到LLaMA-3.1-8B-Instruct

方法 NarrQA Qasper HotpotQA TriviaQA 平均
Full Cache 30.21 45.52 55.53 91.74 —
StreamingLLM (2048) 27.40 30.77 49.23 90.98 差距大
SnapKV (2048) 28.53 39.13 54.32 92.04 中等
MPCache (2048) 30.17 46.11 55.21 91.53 接近Full

XSUM摘要任务(ROUGE-L)

预算 模型 Full Cache H2O MPCache
10% 7B 11.90 10.50 11.10
5% 7B 11.90 4.886 10.08
10% 13B 13.60 13.24 13.44
5% 13B 13.60 9.081 13.08

关键发现

  • MPCache在所有基准任务上一致超越现有KV淘汰方法,尤其在激进压缩率(5%预算)下优势明显
  • 线性化近似(\(\alpha=0.6\))在消除max操作的同时几乎不损失性能
  • 聚类策略使token聚集协议的延迟和通信分别降低73.5倍和369.8倍
  • 跨层索引共享几乎不影响性能(共享两层的commonality > 80%)

亮点与洞察

  • 问题定义精准: 不是简单地将明文KV淘汰搬到MPC,而是深入分析了MPC中每个操作的成本,识别出三大MPC不友好操作并逐一解决
  • 从"密码学协议"到"算法优化": 不修改底层MPC协议,而是设计对MPC友好的算法层面优化,兼容性更强
  • 层次化设计思想: 聚类、层次选择、跨层共享三者配合,形成了系统性的效率优化方案

局限与展望

  • 静态淘汰的60%阈值可能在不同任务/模型上需要调整
  • 线性化近似中 \(\alpha=0.6\) 是经验选择,缺乏自适应机制
  • 仅在GPT-2和LLaMA系列上验证,未测试Transformer变体(如MoE模型)
  • 安全分析依赖已有协议的安全性,未考虑恶意对手模型

相关工作与启发

  • 相比MPC协议优化(PUMA, Bolt)类工作,MPCache在算法层面优化,两者是互补的
  • 与H2O、StreamingLLM等静态淘汰方法相比,MPCache的静态+动态混合策略在MPC场景下取得了更好的精度-效率平衡
  • 启发:MPC友好的算法设计应成为隐私AI中的一个独立研究方向

评分

  • 新颖性: ⭐⭐⭐⭐ 将KV缓存淘汰专门适配MPC的思路新颖,聚类近似设计精巧
  • 实验充分度: ⭐⭐⭐⭐⭐ 多个模型(7B/8B/13B)、多个任务(QA/摘要/Needle-in-Haystack)、完整的效率数据
  • 写作质量: ⭐⭐⭐⭐⭐ 动机清晰,观察驱动的设计思路,图表丰富且信息量大
  • 价值: ⭐⭐⭐⭐ 对隐私LLM推理的实际部署有重要意义,但受限于MPC的应用范围