Asta Lab · 全栈情报站AI FULL-STACK INTELLIGENCE每日 · 全栈 · 精选

AstaNews

AI 全栈每日情报

Recency/Frequency Adaptive KV Caching for Large Language Model Serving

如果你在做推理服务、盯着 KV 缓存命中率和首 token 延迟这两个指标,这篇给了一个小而实的改进。 先说清楚 KV 缓存为什么难管。它是加速大模型推理与生成的有力手段——把算过的 key/value 存下来复用,省去重复计算。但线上的推理负载又大又杂:不同请求长度不一、模式各异,想把缓存用好并不容易。当前主流的缓存块淘汰策略普遍采用 LRU(least-recently-used,最近最少使用),思路是谁最久没被用就先踢谁。 作者点出的痛点是:LRU 在多负载混跑时会出问题——多个互不相关的工作负载会互相把对方的缓存冲刷掉(flush)。一个突发的大请求扫过来,可能把另一类请求辛苦攒下的高价值缓存挤没了,导致整体命中率下降。 他们的改法是引入自适应缓存:不再只看最近,而是在最近出现的(recently)和高频出现的(frequently)两类 KV 块之间动态分配缓存空间。直觉上,这相当于同时照顾两种价值——刚用过的、以及反复被用的——让不同特性的负载各得其所,而不是被单一的 LRU 规则一刀切。 效果上摘要给了明确数字。相比朴素的 vLLM:在合成的文档问答(document QA)负载上,KV 缓存命中率最高提升 10.8%、首 token 延迟(TTFT)最高降低 12.6%;在更接近现实的对话负载上,两项分别是 2.1% 和 2.0%。可以看出,收益高度依赖负载类型——文档问答这类有明显重复结构的场景受益明显,而真实对话场景的提升要温和得多,这点该读清楚:别把最高 10.8% 当成普遍水平。 作者还提到方法能很好地推广到批量推理,并具备清晰的可解释性、能有效适配多样化负载。对在 vLLM 上做服务、缓存命中率吃紧的团队,这是一个低风险、可解释的淘汰策略升级方向。
相关