前缀缓存让大语言模型(LLM)服务器能够复用 KV 状态,在多个请求共享相同前缀时加速 prefill 阶段,从而降低延迟和服务成本。由于内存受限,KV 缓存的淘汰策略直接决定了前缀缓存的整体收益。实际流量中可能出现单轮、 多轮、代理式(agentic)或它们的任意组合。实验表明,agentic 步骤在秒级返回,倾向于使用最近性(recency),而热门提示和长对话在大量其他请求之后才返回,倾向于使用频率(frequency)。在 20 组混合负载下,没有单一策略始终占优:vLLM 默认的 LRU 在 agentic 为主的混合中比频率导向的 S3FIFO 多 12% 的缓存命中,但在其他场景下最多落后 22%;即使是同一混合的单一工作负载参数也可能导致胜负翻转。为此我们提出 WAKMan——一种无需事先知道请求类型或读取提示的工作负载感知 KV 缓存管理器,它能够在实时流量中自动选择淘汰策略。实验显示,WAKMan 相比 LRU 平均提升 5 个百分点的命中率,并在所有策略中实现了最低的平均和最坏情况最优性差距。
点评