硬件与推理研究 🇺🇸 12.08.2026 17:01

面向大型大语言模型的分层 KV 缓存:Amazon SageMaker HyperPod 上采用 Curvine 的实现

Amazon Web ServicesAmazon Web Services MetaMeta DeepSeekDeepSeek vLLMvLLM
本文介绍了 Amazon SageMaker HyperPod 上的一种分层 KV 缓存架构,通过使用分布式缓存文件系统 Curvine,将缓存层级从 GPU 扩展到 CPU 再到共享 NVMe 池。该架构实现了跨副本的 KV 缓存复用,支持高达 100% 的跨 Pod 缓存命中率,并将首个 token 生成时间(TTFT)提升最多 2.7 倍。该解决方案允许工作负载在成本更低的 G6e 实例上运行,而非 P5 实例,从而降低基础设施成本。
大规模运行大语言模型(LLM)推理通常会迫使KV缓存做出权衡:要么为不断增长的KV缓存支付高昂的超大GPU实例费用,要么接受缓慢的首令牌时间(TTFT),因为相同提示在每次请求时都会被重新计算。对于在企业各业务线端点、检索增强生成(RAG)管道或多轮对话应用中部署广泛公开基础模型(FM)目录(如Qwen、Llama、DeepSeek等)的团队,这一权衡直接转化为更高的基础设施成本和下降的用户体验。其根本原因在于,在生成过程中,vLLM会将每个令牌的注意键和值存储在KV缓存中,而前缀缓存则在共享前导令牌的请求之间重用该缓存。在像ml.g6e.4xlarge(每GPU 48 GB)这样的经济型实例上,留给前缀缓存的内存有限,长提示的缓存命中率下降,相同的系统提示在每次请求时都会被重新预填充,且水平扩展的vLLM副本各自维护隔离的缓存。解决方案构建了一个三层缓存层次结构:L0(GPU前缀缓存)、L1(CPU内存卸载)和L2(通过Curvine共享的分布式NVMe池)。L0是vLLM原生的分页注意力层,L1使用LMCache将驱逐的GPU块卸载到主机DRAM,L2通过Curvine将本地NVMe驱动器池化为共享命名空间,并作为ReadWriteMany持久卷声明(PVC)挂载到每个推理Pod中。HyperPod的智能路由将请求引导至最有可能拥有相关KV块的副本,策略包括前缀感知、KV感知和轮询。最终效果:只有在完全未命中时,系统才会从头开始重新预填充,从而显著减少具有中到高提示重叠工作负载的TTFT。在测试部署中,这实现了高达100%的跨Pod缓存命中率、高达2.7倍的TTFT改进,以及约1,900令牌提示的跨节点L2读取延迟约为56毫秒。通过这种架构,以前需要P5实例的工作负载可以在成本更低的G6e实例上运行,从而降低了每个端点的成本。该实现需要启用分层存储的SageMaker HyperPod、EKS集群,并安装Inference Operator和Curvine。本文介绍了五个阶段:启用分层存储、安装Inference Operator及其依赖项、安装Curvine、修补Inference Operator以支持文件系统支持的L2,以及基准测试。
来源: AWS ML blog — 原文
我们之前关于此话题的帖子 ↓
最新新闻