跨模型 KV 缓存传输很快,却出人意料地依赖模型对
NVIDIA 研究人员报告,一种 KV 缓存映射带来 25 倍的组件级加速,而其他几个模型对却损失了目标模型的大部分任务准确率。
NVIDIA 研究人员报告,一种线性映射器可以把一个语言模型的键值缓存转换成更大同族模型所需的格式,从而避免对长对话进行第二次遍历。在他们延迟测试中最好的示例里,把 Qwen3 14B 的 32,768 个词元缓存映射到 Qwen3 32B 需要 278 毫秒;运行 32B 模型的预填充需要 6,975 毫秒。这是组件级测量中的 25.1 倍差距。
这不是应用速度提升 25 倍。
这篇8 月 4 日的预印本只测试了三个系列中采用稠密完整注意力、且键值几何结构匹配的模型。六个从小到大的模型对中有两个在使用线性方法后损失了目标模型基准准确率的大部分。甚至两个在五项基准平均值上看似成功的模型对,在 GSM8K 上也分别只保留了目标模型结果的 18.2% 和 36.6%。延迟实验还排除了端到端部署的一部分:把映射后的缓存交付给目标进程。
因此,这个结果依赖具体模型对,而不是一个功能开关。匹配的缓存形状让实验成为可能;它并不能预测任务质量是否会保留下来。
缓存为单个模型节省工作
自回归语言模型一次生成一个词元。在这个循环开始前,模型会进行输入词元的预填充。每个注意力层写入代表上下文的键和值张量。在解码期间,模型读取这些已存储的张量,而不是在每一步重新计算此前的每个词元。
Hugging Face 的缓存文档描述了普通情况:属于单个模型的动态、固定大小、量化或卸载缓存。文档也展示了前缀缓存,即一个模型预先计算共享提示,并将其复用于多个续写。
切换模型会打破这个假设。Qwen3 14B 缓存包含 Qwen3 14B 产生的内部表示;Qwen3 32B 需要自己的表示。路由器总可以把累积的文本发送给 32B 模型,让它正常预填充。跨模型传输则试图用学习到的转换取代这项工作。
我们的向量与嵌入说明展开了背后的思想:坐标只有相对于赋予其含义的表示系统才有用。映射器试图在两个相关系统之间进行翻译,而不重新运行通常会生成目标坐标的模型。
几个相关系统对“传输”一词的用法不同,所指的操作也不同:
| 技术 | 保持不变的内容 | 发生变化的内容 | 主要问题 |
|---|---|---|---|
| 前缀缓存 | 模型和前缀 | 续写或请求 | 能否复用完全相同的前置词元? |
| 缓存卸载 | 模型和缓存含义 | 内存位置或精度 | 能否用移动成本换取内存压力的缓解? |
| KV 缓存传输 | 兼容的缓存布局 | 服务组件或设备 | 能否让同一个缓存高效到达解码器? |
| 跨模型映射 | 词元和预期上下文 | 模型表示 | 近似的目标缓存能否保留行为? |
例如,NVIDIA 的 TensorRT-LLM 传输指南把缓存数据从上下文阶段移动到生成阶段,并处理张量并行和流水线并行配置下的布局。这是服务基础设施,并不能证明新论文中的跨模型近似已经集成或可用于生产。
映射器很简单;它的契约并不简单
论文把匹配 KV 对定义为两个具有相同 KV 头数量和相同每头维度的模型。实验还停留在同一模型系列内,其中源模型和目标模型共享分词器,并使用稠密完整注意力。模型深度和参数总数可以不同。
对于每个目标层和注意力头,该方法选择最能预测目标缓存的源层。它拼接排名靠前的 k 个源特征,并分别为键和值求解岭回归。岭回归是一种带有小惩罚项的线性拟合,有助于保持解的数值稳定性。
键还包含旋转位置嵌入(RoPE):依赖位置的旋转,用来告诉注意力词元在序列中的位置。映射器会撤销源旋转,在不含位置信息的空间中拟合,然后再应用目标旋转。值不携带 RoPE,会被直接映射。
研究人员使用 500 条长度为 1,024 个词元的 FineWeb-Edu 序列拟合每个模型对。根据模型对不同,所得映射器包含 10.1 亿到 33.6 亿个参数,在论文配置中占用 4–12 GB。每次拟合在一台包含 8 个 H100 的节点上大约需要 47–87 分钟。每个方向都要单独拟合,因此不能假定 14B 到 32B 的产物反向也能工作。
这些细节都不是部署阈值。论文使用了一个校准领域,部分依据后来报告的基准选择 k,没有测试不匹配 KV 的模型对,也没有覆盖跨系列或混合注意力传输。即使营销名称不变,模型修订也可能改变拟合映射器所期望的表示。
因此,正确的批准单位是一个精确元组:
源版本 → 目标版本 + 分词器 + 方向 + 映射器产物 + 工作负载评估
准确率平均值掩盖了决定性失败
论文把原始保留率报告为映射缓存准确率除以目标模型正常预填充准确率。它还报告以基准机会分数为零的底线归一化保留率。第二个数字很重要:原始保留率可能让接近或低于机会水平的结果看起来没那么严重。
六个从小到大的模型对并没有形成一个可靠类别:
| 源 → 目标 | 五项任务平均值 | 底线归一化平均值 | GSM8K 保留率 |
|---|---|---|---|
| Qwen3 14B → 32B | 97.6% | 96.3% | 95.6% |
| Qwen3 8B → 32B | 87.5% | 80.7% | 68.8% |
| Llama 3.1 8B → 70B | 72.8% | 62.9% | 18.2% |
| Ministral 3B → 8B | 76.2% | 65.9% | 36.6% |
| Ministral 3B → 14B | 44.2% | 14.7% | 3.2% |
| Ministral 8B → 14B | 41.6% | 11.1% | 1.6% |
GSM8K 是该研究的思维链数学生成基准;平均值中的另外四项任务是分类风格的评估。Llama 模型对的五项任务平均值为 72.8%,但其映射后的 GSM8K 分数为 14.78,而目标模型为 81.12。这并不能证明每种推理工作负载都会失败,但它证明了由其他任务形状主导的平均值不能让人批准一个用于数学推理、工具使用、编码或生产路由器背后应用的映射器。
两个 Ministral 到 14B 的线性映射失败得更广泛。一个两隐藏层的非线性映射器为这两个模型对恢复了 HellaSwag 保留率的 24.3 和 36.8 个百分点,但它也用训练出的模型替代了论文中封闭形式、无需梯度的优势。“使用更大的映射器”是需要重新评估的新系统,并非自动修复。
这项研究的多轮结果也需要同样的边界。它在 100 段 CoQA 对话、十轮交互中测试了 Qwen3 14B 和 32B。漂移在那一个模型对和任务中保持很小。VentureBeat 8 月 21 日的报道为长会话使用场景提供了有用关注,但其关于证明系统不会级联失败的更强措辞超出了那项实验。一个兼容模型对上的十轮,不能保证另一个模型、任务或会话长度也如此。
围绕完整交接重新计算 25 倍结果
在 32,768 个词元下,Qwen3 14B 到 32B 的结果支持下面这个论文局部计算:
reported avoided prefill = target re-prefill - mapper application
= 6,975 ms - 278 ms
= 6,697 ms
计时使用了一台通过 NVLink 连接的 8×H100 节点,采用 bfloat16 前向传播、50 次预热和每个单元 30 次计时试验。重新预填充运行了带 FlashAttention 2 的目标 Transformer 主体,并排除了语言模型头。映射器计时包括把源缓存移到目标所需的跨 GPU 传输,但作者指出,端到端系统还需要把映射后的缓存交付给目标进程,而这部分没有测量。
完整的交接结果反而应是:
net handoff saving
= normal target prefill
- mapper application
- source/cache transport not already included
- mapped-cache delivery
- amortized artifact loading
- rejected-transfer and fallback penalty
跨上下文长度和并发量的分布很重要,每次接受的交接成本也很重要,其中包括映射器拟合、产物存储、失败映射、影子比较和回退预填充。25 倍的组件级结果仍然可能有价值,但只有当节省在服务拓扑中经受住现实考验时才有价值。
这个分母遵循我们每次接受任务成本评估的同样纪律:被拒绝的工作和重试仍然消耗资源。AlphaEvolve 矩阵乘法分析提供了更广泛的系统教训——只有当改进后的操作在真实工作负载中足够大,能改变整个系统结果时,它才真正重要。
跨模型 KV 缓存传输之所以有前景,恰恰是因为避免的工作很具体。论文把目标缓存映射得比重新计算快得多,并在几个模型对上保留了行为。它也给出了警示标签:兼容的形状可能失败,宽泛的平均值可能掩盖任务崩溃,而已发布的延迟并不是应用延迟。下一个可信的里程碑不是更大的加速标题,而是一个有版本控制的生产集成,为每个方向发布任务级接受标准、完整交接成本和安全回退结果。