多轮对话、RAG 等场景中,推理请求频繁重复计算相同输入前缀,导致首 Token 延迟(TTFT)持续偏高、GPU 算力浪费。KV Cache 服务将 KV 张量分层持久化至内存、磁盘和远端,实现集群级跨实例共享,缓存命中时跳过前缀 Prefill,TTFT 显著降低,从而提升服务吞吐量。
核心价值
vLLM、SGLang 等推理引擎的本地前缀缓存仅在单副本内生效,且受 GPU 显存容量制约。KV Cache 服务在此基础上提供集群级系统增强:
集群级共享:已绑定该 KV Cache 服务的所有推理服务副本共享同一份缓存,无论请求被路由到哪个副本,均可命中其他副本已计算的缓存结果。单副本扩展到多副本时,缓存命中率不会因扩容而下降。
大幅降低首 Token 延迟(TTFT):命中缓存的请求跳过公共前缀的整个 Prefill 阶段,TTFT 接近仅处理当轮新增输入的水平。前缀越长(如数千 Token 的对话历史或检索文档),跳过的计算量越大,TTFT 降低越显著。
提升吞吐量,降低成本:跳过 Prefill 释放 GPU 算力,同等资源下可处理更多并发请求,单请求平均计算成本随命中率提升而下降。
突破 GPU 显存容量限制:KV Cache 服务采用内存、磁盘和远端多级分层存储,热点前缀驻留内存保障低延迟,冷门数据自动下沉至磁盘或远端扩展容量,可缓存远超 GPU 显存容量的前缀数据,维持更高命中率;存储容量不受单机限制,增加节点即可线性扩展,扩缩容近乎零改造。
高可用与故障自愈:节点故障后元数据自动清理,缓存状态自动恢复;进程重启后磁盘中的缓存数据可直接复用,推理服务不受影响。扩缩容场景下有效降低数据丢失比例,保障服务稳定运行。
工作原理
KV Cache 服务位于推理引擎与底层存储介质之间,核心流程分两步:
算完即存:推理引擎完成前缀 Prefill 后,将生成的 KV 张量写入 KV Cache 服务,按分层存储策略(内存→磁盘→远端)持久化。
用前先取:后续请求到来时,优先从 KV Cache 服务查找匹配前缀的缓存;命中则直接取回,跳过该前缀的 Prefill 计算。
适用场景
以下场景中不同请求包含大量相同的前缀内容,KV Cache 收益最为显著:
多轮对话:对话历史随轮次持续累积,命中缓存后每轮只需计算新增消息的 KV,TTFT 持续降低。
RAG 检索增强生成:检索文档反复出现在不同请求中,命中缓存后每个请求只需计算用户 Query 对应的 KV。
共享系统提示词:多用户共享同一套较长 System Prompt,命中缓存后每个请求只需计算用户输入部分的 KV。
多模型/多实例集群:绑定同一 KV Cache 服务的多个推理服务共享缓存,热点前缀只需计算一次,整体资源利用率提升。
弹性伸缩的推理服务:扩容后新副本直接命中已有缓存,无需等待预热;扩缩容不丢缓存,平稳应对流量峰谷。
KV Cache 不提供推理能力,需与推理服务配合使用;推理服务部署时需选择 KV Cache 服务,绑定后缓存自动生效,无需在推理引擎层额外配置。
创建 KV Cache 服务
在左侧导航栏,单击服务,切换到KV Cache页签。
单击+ 创建缓存服务,配置以下参数:
服务名称:支持小写字母、数字、下划线,必须以小写字母开头。
资源配置:KV Cache 服务仅使用 CPU 和内存资源,无需 GPU。
资源类型:选择 EAS资源组或资源配额。
资源配置:设置副本数、CPU 、内存(GB)和系统盘(GB)。
缓存容量主要由内存大小决定,建议根据预期缓存数据量适当调大内存。
Redis 配置:实例规格建议至少16GB。请使用与工作站(存储用户和使用统计信息)不同的Redis 实例,以防数据相互影响。
请根据是否已有可用 Redis 实例选择配置方式:
创建新实例:需新建实例时推荐使用,系统将自动完成 Tair 实例创建和白名单配置。
单击创建Redis实例后,将显示 Tair 实例的创建进度,此过程请勿刷新页面;如已刷新,请前往 Tair 控制台完成剩余操作。创建完成后,页面展示 Redis 地址、Redis 用户名(默认为 default)和 Redis 密码,请妥善保管上述信息。
选择已有实例:账号下已有 Tair 或 Redis 实例时可直接复用,避免重复创建和额外费用。
手动输入:请确保 Redis 实例所在 VPC 与工作站配置的专有网络一致,否则无法正常连接。
确认配置后,单击部署。
管理 KV Cache 服务
查看 KV Cache 状态
在 KV Cache 页面,可查看缓存服务的运行状态、资源规格和 Redis 连接信息。在工作站概览页可通过缓存命中率指标评估 KV Cache 实际效果。
删除 KV Cache 服务
在 KV Cache 页面,找到目标缓存服务,单击操作列中的删除。
删除 KV Cache 服务后,工作站内推理服务将停止使用缓存,已缓存的数据不可恢复,但推理服务本身不受影响,仍可正常接受请求。
删除缓存服务时不会自动删除 Redis 实例,请根据需要手动释放。