Cache-to-Cache: Direct Semantic Communication Between Large Language Models
Tianyu Fu, Zihan Min, Hanling Zhang, Jichao Yan, Guohao Dai, Wanli Ouyang, Yu Wang
ICLR'26
cs.CL, cs.LG
2025-10-04
可学习融合器把分享方 KV 缓存投影进接收方并残差门控写入。Qwen3-0.6B 接收时比单模型高 6.4–14.2 点,比文本协作高 3.1–5.4 点,平均快 2.5 倍。
多模型系统现在几乎都靠文本交接:一个模型把理解写成字,另一个再读进去。KV 缓存是高维的,文本是一条线,压缩再解压会丢结构。论文里的例子是 Coder 让 Writer 在 <p> 处插入,Writer 把 <p> 当普通标签,段落位置就错了。
文本还有两处硬伤。自然语言本身含糊,MCP、A2A 这类协议也只规范信封,管不住开放域语义。更直接的成本是延迟:分享方必须把解释逐 token 解码完,接收方才能开工。
这篇要验证的是:LLM 能不能绕过字符串,直接传内部状态。
先做两个 oracle。缓存富化:few-shot 示例跟问题一起 prefill,再丢掉示例那段 KV,只留问题长度的缓存去解码。Qwen3 上 Direct 58.42%,这个 Oracle 62.34%,完整 few-shot 是 63.39%。多出来的准确率来自「问题被编码得更丰」,不是来自更长的可注意序列。分层看,只有少数层受益,乱加会掉点,所以后面必须有门控。
跨模型变换:三层 MLP 把 Qwen3-4B 的 KV 映到 Qwen3-0.6B 空间。t-SNE 上两边原始缓存离得很远,映射后落进目标分布,但只覆盖一个子集。不同模型对同一输入的正确题集合重叠有限,互补是真的。
C2C 把提供上下文的叫 Sharer,做生成的叫 Receiver。Prefill 时两边各自算出 KV,融合网络按层把 Sharer 缓存投到 Receiver 对应层,残差加回去。融合器三块:拼接后投影再特征融合;按输入动态调 head 权重;每层一个可学习门,训练时走 Gumbel-sigmoid,推理时收成 0/1。两台 LLM 全程冻结,只训融合器,损失是接收方在融合缓存上的 next-token prediction。主实验用 OpenHermes-2.5 的前 50 万条训一个 epoch。
跨家族还要对齐两件事。分词:把接收方 token 解码成字符串,再用分享方分词器重编码,一对多时取覆盖最长的那段。层:末端对齐,两边最后一层对最后一层,往前推到较浅模型的第一层。
主表固定 Receiver 为 Qwen3-0.6B,三个 Sharer 分别是 Qwen2.5-0.5B、Llama3.2-1B、Qwen3-4B-Base。四个选择题基准:MMLU-Redux、OpenBookQA、ARC-Challenge、C-Eval。零样本、贪心、最大生成 64 token。
| Sharer | 相对 Receiver | 相对 T2T | 相对 T2T 加速 |
| Qwen2.5-0.5B | +11.00 | +5.36 | 3.46× |
| Llama3.2-1B | +9.64 | +4.15 | 1.51× |
| Qwen3-4B-Base | +11.88 | +3.06 | 14.41× |
4B-Base 几乎不听指令,MMLU-Redux 单独只有 1.03,T2T 还要等它写分析,单次能到 7.54 秒。C2C 不让它开口,指令微调过的小 Receiver 照样吃到 base 模型的知识。
延迟拆开看更清楚。MMLU-Redux 上 T2T 的 Sharer 大约解码 80 个通信 token,1312 ms;C2C 把这段换成 90 ms 的并行融合。摘要里的平均 2.5 倍,主要来自不含这条病态 Base 对照的平均。相对单个模型的 6.4–14.2 个点,则是跨 pairing、有时对 Sharer、有时对 Receiver 的区间。
消融很硬。只把投影后的 Sharer 缓存盖掉 Receiver,四项平均 20.70,比 Receiver 单独还差。残差融合拉到 44.88,再加门控到 47.95。同源 C2C(Sharer 和 Receiver 都是 Qwen3-0.6B,可训练参数 529M)已经强过把 Receiver 整网 SFT(596M);异源再高一截,融合器 478M。增益不是多出来的可训练容量,但融合器本身已经接近小模型体量,不是 LoRA 那种轻插件。
跨家族同样成立。Gemma3-1B、Qwen2.5-Math-1.5B、Qwen2.5-Coder-0.5B 当 Sharer,C2C 在 MMLU-Redux 上都压过 T2T,五组平均高出 8.59 个点。把 Qwen2.5-0.5B 和 Qwen3-0.6B 角色对调,C2C 仍 +5.05,T2T 反而 -6.30。LongBench 上 8k+ 输入 T2T 掉到 Receiver 以下(25.64 vs 25.99),C2C 还在 30.72。
附录里更重的 C2C-C 先用三层 MLP 把 Sharer 投到 Receiver 维度,Qwen3-4B 灌 0.6B 时能收回强弱差距的 76–86%。GSM8K 上单模型 41.17,T2T 多智能体 61.18,纯 C2C 62.55,文本解释再叠加 C2C 到 78.01。300 个训练 step(不到 9 GPU 小时)已经接近最终点。
这是把多 LLM 协作从互相写信改成共享工作记忆。路由只能二选一,C2C 能同时用两边的编码。已经在跑模型级联、投机解码、小模型接大模型上下文的人,手里本来就有 KV 缓存,这条路花的是这些张量,不必再付一轮中间文本的带宽。
能落地的前提很具体:每一对模型要训一个融合器。方向清楚,步子是渐进的。
作者写了两条。弱 Sharer 会污染强 Receiver,T2T 和 C2C 都中招;会计题上 Qwen3-0.6B 单独选对 A,Qwen2.5-0.5B 带错信息后 C2C 也改选 B。多模型扩展仍按 pairwise 训,O(N) 的统一潜空间只在附录里探了一下。
评测面偏窄。主表几乎全是选择题、最大 64 token、温度 0。开放生成、工具调用、真实 agent 循环只有 GSM8K 一个 toy。融合发生在输入 prefill 的 KV 上,生成前缀仍用 Receiver 自己的缓存,「思路」并没有全程共享。C2C-C 数字更好看,主文坚持用简单融合器,两套表的生成长度也不完全可比。