惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
P
Palo Alto Networks Blog
Spread Privacy
Spread Privacy
I
Intezer
Security Latest
Security Latest
The Last Watchdog
The Last Watchdog
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
O
OpenAI News
A
Arctic Wolf
S
Secure Thoughts
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
M
MIT News - Artificial intelligence
F
Full Disclosure
P
Privacy International News Feed
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
H
Hacker News: Front Page
aimingoo的专栏
aimingoo的专栏
S
Security @ Cisco Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
Cloudbric
Cloudbric
大猫的无限游戏
大猫的无限游戏
Google Online Security Blog
Google Online Security Blog
Recent Announcements
Recent Announcements
H
Help Net Security
量子位
V
V2EX
美团技术团队
G
Google Developers Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Schneier on Security
V2EX - 技术
V2EX - 技术
D
Docker
博客园 - 【当耐特】
Project Zero
Project Zero
博客园 - 司徒正美

博客园 - marsggbo

LLM agent 为什么不稳?问题可能不在模型,在 harness Meta-Harness:让 LLM 自己搜索最优 harness,模型不动,性能白涨 从零理解 ASR:音频基础、Qwen3-ASR 架构,以及离线 vs 流式推理原理 arXiv'26 | LLM Agents 让群体信念变得可编程:当 AI 开始系统性操控舆论 巴西「主权大模型」翻车:当模型可以随便融合,怎么证明它偷了你的权重? 进阶篇 | 不靠人工设计,让遗传算法自己进化出 SOTA 的 LLM 剪枝指标 说人话:一文搞懂现在火热的 LLM agent 自进化原理 ICML'26 | Transformer 真的需要三个投影矩阵吗?Q-K=V 让 KV Cache 直接砍半 UPenn & Meta | NF-CoT:当 LLM 的思维链不再是文字,而是连续概率流 arXiv'26 | 为什么你的多智能体系统越加 agent 越慢?DeLM 用去中心化解了这个矛盾 arXiv'26 | Self-Harness:让 Agent 自己改自己的 harness,pass rate 最高翻倍 Anthropic | 当 AI 开始造自己:递归自我改进离我们有多远? arXiv'26 | Mirage:把世界模型的 3D 记忆搬进 Latent Space,快 10 倍还省 55 倍显存 arXiv'26 | FlashMemory-DeepSeek-V4:用 13.5% 的显存干 100% 的活,超长上下文推理的 less is more MoE 压缩新思路:别删专家、别合并专家,把它们"重映射"就够了 MoE 变 Dense:剪枝+蒸馏能救内存瓶颈吗? ReMoE:只动 Router 就让 MoE 推理快 2 倍?这才是端侧 MoE 部署该有的姿势 LLM 时代,还有人搞 AutoML 吗?有,而且变得更难了 arXiv'26 | Frontier:LLM 推理仿真器,端到端误差从 51.7% 降到 2.6% arXiv'26 | ELF:Flow Matching 生成文字,用 10 倍少的数据全面超越主流 Diffusion LM LLMRouterBench:当所有 routing 方法被拉到同一起跑线,结果有些尴尬 LLM Agent Memory 全景拆解:从 RAG 到 KV Cache 到参数写入,100+ 篇工作的方法演进与真实取舍 EuroSys'26 | TokenFlow:让 LLM 流式输出真正「流」起来 AAAI'23 | NAS-LID:用「局部内在维度」给超网做体检,省 86% 显存 ICLR'26 Workshop Spotlight | Lang-PINN:让 LLM 多智能体帮你从自然语言一键搭建物理信息神经网络 KDD'25 | BurstGPT:我们收集了 1031 万条 Azure OpenAI 真实 trace,LLM 推理系统没你想的那么稳 KBS'21 | 我写的 AutoML 综述被引 2700+ 次,今天来聊聊这篇文章的来龙去脉 EuroSys'26 | PARD 提前丢掉注定超时的请求,goodput 最高提升 176% EuroSys'26 | MFS 把整个 model family 融进一套嵌套模型,KVCache 跨 tier 直接共享 EuroSys'26 | LLMFolder 用常量折叠把 FFN 参数砍 80%,精度反超剪枝方法 65% EuroSys'26 | KUNSERVE 把冗余参数副本临时让给 KVCache,P99 TTFT 最快降 72× EuroSys'26 | IBP 用无损 bit 压缩缓解 PCIe 瓶颈,GNN/DLRM/LLM 推理都能用 FAST'26 | SolidAttention 把 SSD 搬进 LLM 推理,笔记本也能跑 128k 上下文 LLM 推理启动慢?华为用一个「可编程 Page Cache」把模型加载砍了 79% 延迟降47%!FineMoE如何用「细粒度」打破MoE推理的显存-延迟死局 训练一个「会管技能库」的 AI——SkillOS 让 agent 真正越用越强 MoE 训练通信瓶颈有救了?DySHARP 直接在交换机里做计算,干掉 50% 冗余流量 2026-05-12-2508_06526 把 Dense LLM 变成 MoE 还能推理提速?NeurIPS 2024 Read-ME 做到了 说人话理解 EPIC:KV Cache 复用的「编译-链接」范式(附可运行代码复现) KV Cache 也能「语义共享」?SemShareKV 用 LSH 做到了 写完 Markdown 还要手动排版?我写了个 VS Code 插件一键搞定微信公众号、知乎、小红书 多 Agent 协作不需要说「人话」?LatentMAS 让 LLM 在隐空间里直接协作 RouteMark: 基于路由行为指纹的模型合并知识产权归属 | A Fingerprint for IP Attribution in Routing-based Model Merging Lang-PINN: 从自然语言到物理信息神经网络的多智能体框架 | From Language to PINNs via a Multi-Agent Framework Ghost in the Cloud: 地理分布式大模型训练的安全隐患 | Your Geo-distributed LLM Training is Easily Manipulated GM-Skip: 基于度量引导的 Transformer 块跳过策略加速视觉语言模型 | Metric-Guided Transformer Block Skipping for Efficient VLMs ExpertFlow: 基于预测性专家缓存与令牌调度的高效MoE推理 | Efficient MoE Inference via Predictive Expert Caching and Token Scheduling AutoHete: 面向大语言模型的自动化高效异构训练系统 | An Automatic and Efficient Heterogeneous Training System for LLMs DAC'26 | ExpertFlow:让 MoE 大模型在单卡上跑起来,内存省 93%、速度快 10 倍 Eurosys26 | FineMoE如何用「细粒度」打破MoE推理的显存-延迟死局 LoRA fine-tune吞吐量提升1.96倍!LoRAFusion如何把内存带宽浪费和pipeline bubble一起干掉 Fast26 | LLM 推理启动慢?华为用一个「可编程 Page Cache」把模型加载砍了 79% KV Cache 的两层存储到底卡在哪?FAST'26 这篇论文给出了答案 NeurIPS24 | 把Dense LLM变身MoE还提速 ICML25 | EPIC:KV Cache 复用的「编译-链接」范式(附可运行代码复现) KV Cache 复用的第三条路:FAST 2026 CacheSlide 是怎么解决 Agent 推理的位置漂移问题的 MoE 推理的内存墙,被一块多芯粒芯片打穿了? KVCOMM:让多 Agent 系统的 KV Cache 真正“通起来”,TTFT 直接砍掉 7.8 倍 NSDI26 | DroidSpeak让不同 LLM 之间共享 KV Cache TokenDance 解决多 Agent LLM 推理的 KV Cache 冗余问题 当 AI 开始学会"记住":LLM Agent 记忆系统的统一视角 【转载】ACM MM 投稿论文模板修改成投稿模式 尝试从源头理解 SVD 原理和计算 LLM 场景下的强化学习技术扫盲 解决 Overleaf 中插入 PDF 图片失败的问题:排查与修复 Tmux ctrl+B快捷键失效处理办法 对抗训练综述学习笔记 【转知乎回答】一文看懂 LLaMA 中的旋转式位置编码(Rotary Position Embedding) 二进制中为什么负数是正数取反再加一 leetcode 常见题型代码总结 Prompt-Tuning、P-Tuning和Prefix-Tuning区别和代码实现【转】 Deepspeed ZeRO系列算法原理+通信开销详解 NSCC集群使用笔记 Huggingface Transformers实现张量并行的小坑 set/get_output_embeddings Pytorch 如何使用 storage 实现参数 offload? TACC 集群使用笔记 图解 vLLM 的推理调度策略 大模型推理框架 vLLM 源码解析(二):Block 模块分配和管理 OpenAI 的视频生成大模型Sora的核心技术详解(一):Diffusion模型原理和代码详解 大模型推理框架 vLLM 源码解析(一)
让不同 LLM 之间共享 KV Cache?DroidSpeak 是怎么做到的
marsggbo · 2026-07-23 · via 博客园 - marsggbo

插播:之前写的《动手学 AutoML》终于出版了,从 NAS 到超参优化都有覆盖,适合想系统入门 AutoML 的同学。好了广告结束,现在进入正题。

动手学AutoML书籍封面

让不同 LLM 之间共享 KV Cache?DroidSpeak 是怎么做到的

原文:DroidSpeak: KV Cache Sharing for Cross-LLM Communication and Multi-LLM Serving


1. 前言:一个很自然但从没人解决过的问题

KV Cache 共享这件事,在单个模型的场景里已经做得很成熟了——vLLM 的 prefix caching、SGLang 的 RadixAttention,本质都是"同一个模型、不同请求共享相同前缀的 KV Cache"。

但有一个问题从来没人认真解决过:如果是两个不同的模型,能共享 KV Cache 吗?

听起来是个怪问题。为什么两个不同模型会需要共享 KV Cache?

在多 Agent 系统里,这其实很常见。比如一个 coding agentic workflow 里,有个 coding agent 和一个 testing agent,它们分别是从同一个基础模型 fine-tune 出来的不同版本。两个 agent 都要读同一套背景文档或对话历史,然后分别生成各自的输出。

按现在的做法,两个 agent 各自跑各自的 prefill,把同一段上下文算两遍——一遍都不能省。

这就是 DroidSpeak 要解决的核心问题:在分布式 LLM 推理系统里,让运行着不同模型的 GPU 节点之间,能够安全地共享 KV Cache,从而省掉重复的 prefill 计算。

来自芝加哥大学 + 微软的工作,今天聊聊它怎么做到的。


2. 背景:跨模型 KV Cache 共享的三个场景

如下图,论文给了三类典型场景:

多 LLM 协作场景示意

场景 A — Multi-agent workflow:baseline agent + expert agent 协作,两个模型处理同一条用户输入。

场景 B — 多模型服务同一内容:同样的文档或背景,被多个不同的专业化模型各自处理,各建各的 KV Cache,重复计算严重。

场景 C — 个性化 Agent:coding agent、validation agent、debugging agent,三者处理同一个代码问题,上下文高度重叠。

这三个场景有个共同点:多个 fine-tune 自同一基础模型的不同 LLM,重复处理相同的输入前缀。 如果能让一个模型算好 KV Cache 之后,另一个模型直接拿来用,prefill 成本就能大幅降低。

前人做的 prefix caching 能省掉同一个模型内部的重复计算,但跨模型的这层从来没人碰过。


3. 第一个问题:直接复用 KV Cache 行不行?

直觉上,两个 fine-tune 自同一基础模型的模型,权重差别不大,KV Cache 应该也差不多,直接拿来用应该没啥问题?

论文做了实测。结论一句话:直接复用另一个模型的 KV Cache,精度暴跌。

如下图,对 8 个 model pair 的测试结果:

直接复用 KV Cache 导致精度大幅下降

HotpotQA 上,大多数 model pair 直接复用后 F1 score 下降超过 50%。其他 dataset 情况各异,但基本上都是精度受损。

所以直接复用走不通。问题变成:有没有一部分 KV Cache 是可以安全复用的,只重算少数关键层?


4. 关键发现:只有 ~11% 的 layer 是敏感的

论文逐层测试了"只复用这一层的 KV Cache,其余层全部重算,精度会怎样"。结论非常清晰:

不同 layer 对 KV Cache 偏差的敏感度差异极大,平均只有约 11% 的 layer 是"critical layer"(精度敏感的)。

如下图(每个子图对应一个 model pair,红色 bar 表示 critical layer):

不同 layer 的 KV Cache 敏感度差异

几个很有意思的观察:

  1. critical layer 的位置因 model pair 而异——对于某个 pair,layer 23 最敏感;对另一个 pair,可能是 layer 5-7。没有通用规律,必须针对每个 pair 单独 profiling。

  2. 对于同一个 model pair,critical layer 的分布在不同输入上高度稳定。也就是说,用一个小的"训练集"测出来的 critical layer pattern,可以泛化到其他数据集上。这个性质非常关键——意味着 offline profiling 的结论是可信的。

如下图,同一 dataset 内不同输入的 F1 score 方差极小:

critical layer 分布跨输入稳定性

  1. non-critical layer 的误差在不同输入间方差极小。Critical layer 的误差波动很大,non-critical layer 几乎没有波动。这和直觉一致:critical layer 往往承担推理能力或任务适应能力,必须精确;non-critical layer 相对"平滑",复用的代价很低。

5. DroidSpeak 的设计

5.1 为什么要用"连续层组",而不是把所有 critical layer 都重算

有了上面的发现,直觉是:建个映射,把各散落在不同位置的 critical layer 全部重算,非 critical layer 全部复用。

但这行不通,原因是 E cache(embedding cache)的传输成本

在 prefill 阶段,逐 layer 处理时,如果从"复用 KV"切换到"重算",需要知道上一层的 E cache(该 layer 的输入 embedding)才能重算。如果非连续地重算多个 critical layer,每个切换点都要传一次 E cache——而 E cache 的大小是 KV cache 的 2-4 倍。多个切换点意味着多次大块数据传输,overhead 很快就超过复用带来的收益。

如下图,transition point 越多,误差越大,传输成本也越高:

transition point 数量对误差的影响

所以 DroidSpeak 的解法是:选择一个连续的 layer group 来重算,只有一个 transition point,只传一次 E cache,其余大量 layer 的 KV Cache 直接从 sender model 复用。

如下图,DroidSpeak 选出最优的连续层组(例如 layer 4-5)来重算:

DroidSpeak 选出最优 critical layer group

5.2 Offline Profiling:找到效率最优的 layer group

不同 layer group 的重算范围不同,产生的精度和延迟 tradeoff 也不同。DroidSpeak 通过 offline profiling 找到 Pareto frontier——在精度损失 ≤5% 的前提下,最小化需要重算的 layer 数量。

如下图是 profiling 结果的示例(scatter plot + Pareto frontier):

离线 profiling 的 Pareto frontier 示例

Profiling 的计算复杂度是 O(l²)(l = 模型层数),对于 32 层的 Llama-3-8B,在 A100 上大概需要 3 小时。但这是一次性成本——profile 完之后,这个 model pair 的最优配置就固定了,之后一直沿用。

实际部署时可以用 2-layer group 粒度做 profiling,计算量减少约 3x,精度损失可以忽略。

5.3 Online Stage:Pipeline 化加载,把延迟藏起来

即使确定了哪些 layer 要重算,从 sender model 加载 KV Cache 的网络延迟仍然可能成为瓶颈(跨节点走 InfiniBand)。

DroidSpeak 用 pipeline 化加载来解决这个问题:

如下图,对比了三种策略:

三种 KV Cache 传输策略的时序对比

  • 策略 (a):先把所有 layer 的 KV Cache 都传过来,再开始重算。最慢。
  • 策略 (b):只传需要复用的 layer 的 KV Cache,然后重算。稍好。
  • 策略 (c)先传 transition layer 的 E cache(体积小),立刻开始重算;同时在后台把复用 layer 的 KV Cache 加载进来。 加载和重算完全并行,TTFT 减少约 2x。

5.4 整体系统架构

系统分两阶段:

DroidSpeak 系统整体架构(离线 + 在线两阶段)

Offline stage:用 training dataset 对每个 model pair 做 profiling,得到最优重算配置(Pareto frontier 上的点)。

Online stage:根据当前可用资源,动态选择 Pareto frontier 上的配置,执行 partial prefill + pipeline 化 KV Cache 加载。

实现基于 vLLM + LMCache,约 3K 行 Python 代码,提供三个核心接口:store()fetch()partial_prefill()


6. 实验结果

6.1 延迟和精度 tradeoff

如下图,8 个 model pair × 多个 dataset 的 prefill 延迟 vs 精度散点图:

prefill 延迟与精度 tradeoff 全景

  • vs full prefill:prefill 延迟降低 1.7-3.1x,精度持平
  • vs full KV reuse:精度大幅优于直接复用(避免了前文提到的精度暴跌)
  • vs CacheBlend:同等延迟下,精度高 5-33%(平均 16%)

6.2 吞吐量和 TTFT

在模拟在线请求(Poisson 分布到达率)的场景下:

不同 QPS 下 TTFT、TBT、E2E 对比

  • 假设在 full prefill 开始出现队列积压(TTFT 膝点)之前的 SLO,DroidSpeak 能支持 2-4x 更高的吞吐
  • TBT(Token Between Tokens)和 E2E 也得到二阶改善——prefill 变快,减少了对 decode 阶段的干扰。

6.3 真实 Agentic Workflow 测试

在 MetaGPT 编排的 coding agentic workflow(coder + tester 两个 agent)上:

coding agentic workflow 场景下的 TTFT 提升

  • TTFT 提升 2.7x
  • E2E 延迟大幅降低

6.4 Profiling 结果泛化性

如下图,用 HotpotQA 训练集 profile 完的配置,拿去跑 multifieldQA、2wikimQA 等其他 dataset,最大精度差距 4 个百分点,平均差 2 个百分点。一次 profiling,多 dataset 通用

profiling 结果在不同 dataset 之间的泛化性

6.5 MoE 模型也能用

如下图,论文还测了 Mixtral-8x7B(MoE 模型),在 2wikimQA 和 repobench-p 上同样有效,说明 DroidSpeak 不局限于 dense 模型。

Mixtral MoE 模型上的测试结果


7. 个人评价

这篇工作切入点很好:"单模型内的 KV Cache 共享"已经做烂了,跨模型的这道门还没人破。 选了一个真实存在的系统级问题,然后用扎实的 empirical study 先把问题量化清楚(直接复用行不行、哪些 layer 敏感、是否跨输入稳定),再基于这三个 insight 设计系统。

几个细节值得学习:

  1. E cache 的大小分析(是 KV cache 的 2-4x)直接决定了为什么要用连续层组而不是散点重算。这个约束如果没算清楚,设计就会走弯路。

  2. Offline profiling 的 Pareto frontier 抽象很优雅——不是找一个固定的"最优配置",而是给出整条 tradeoff 曲线,让 online stage 按资源情况动态选点。

  3. Pipeline 化加载的 timeline 分析(三种传输策略对比)讲得非常清楚,从"为什么要 pipeline"到"省了多少"一气呵成。

一个没有完全解决的点是:profiling 开销是 O(l²),虽然是一次性成本,但对于每一个新的 model pair 都要重新 profile。随着生态里 fine-tuned 模型爆炸式增长,model pair 的数量会快速膨胀,这个 profiling 的扩展性值得后续工作继续探讨。

整体来说,这是一篇工程导向、insight 清晰的系统论文,做 multi-agent serving 或分布式 LLM 推理的同学可以重点关注。


如有错误欢迎评论区指出。