LMCache:基于KV缓存复用的LLM推理优化方案

简介: LMCache推出KV缓存持久化方案,显著优化大模型推理首Token延迟(TTFT)。通过将KV缓存存储至GPU、CPU或磁盘,实现跨请求复用,支持任意位置文本匹配,与vLLM深度集成,多轮对话、RAG场景提速3-10倍,降低硬件压力,提升吞吐。开源支持Linux/NVIDIA,正拓展AMD及更多生态支持。

LLM推理服务中,(Time-To-First-Token) 一直是个核心指标。用户发起请求到看见第一个token输出,这段时间越短体验越好,但实际部署中往往存在各种问题。

LMCache针对TTFT提出了一套KV缓存持久化与复用的方案。项目开源,目前已经和vLLM深度集成。

原理

大模型推理有个特点:每次处理输入文本都要重新计算KV缓存。KV缓存可以理解为模型"阅读"文本时产生的中间状态,类似于做的笔记。

问题在于传统方案不复用这些"笔记"。同样的文本再来一遍,整个KV缓存从头算。

LMCache的做法是把KV缓存存下来——不光存GPU显存里,还能存到CPU内存、磁盘上。下次遇到相同文本(注意不只是前缀匹配,是任意位置的文本复用),直接取缓存,省掉重复计算。

实测效果:搭配vLLM,在多轮对话、RAG这类场景下,响应速度能快3到10倍。

伪代码大概是这样:

 # Old way: Slow as molasses  
def get_answer(prompt):  
    memory = build_memory_from_zero(prompt)  # GPU cries  
    return model.answer(memory)  

# With LMCache: Zippy and clever  
import lmcache  
def get_answer(prompt):  
    if lmcache.knows_this(prompt):  # Seen it before?  
        memory = lmcache.grab_memory(prompt)  # Snag it fast  
    else:  
        memory = build_memory_from_zero(prompt)  
        lmcache.save_memory(prompt, memory)  # Keep it for later  
     return model.answer(memory)

几个特性

缓存读取速度比原生方案快7倍左右,吞吐量也有提升。文本不管在prompt的什么位置,只要重复出现就能命中缓存。

存储层面支持多级——GPU显存、CPU内存、磁盘都行,甚至可以接NIXL这种分布式存储,GPU压力能减轻不少。

LMCache和vLLM v1集成得比较深,支持跨设备共享KV缓存、跨节点传递等特性。生产环境里可以配合llm-d、KServe这些工具用。

做聊天机器人或者RAG应用的话,这东西能在不升级硬件的情况下把延迟压下来一部分。

安装

LMCache目前主要支持Linux,Windows上得走WSL或者社区的适配方案。

基本要求:Python 3.9+,NVIDIA GPU(V100、H100这类),CUDA 12.8以上。装好之后离线也能跑。

pip直接装:

 pip install lmcache

自带PyTorch依赖。遇到奇怪报错的话,建议换源码编译。

想尝鲜可以装TestPyPI上的预发布版:

 pip install --index-url https://pypi.org/simple --extra-index-url https://test.pypi.org/simple lmcache==0.3.4.dev61

验证一下版本:

 importlmcache  
 fromimportlib.metadataimportversion  
 print(version("lmcache"))  # Should be 0.3.4.dev61 or newer

具体版本号去GitHub看最新的。

源码编译

喜欢折腾的可以clone下来自己编:

 git clone https://github.com/LMCache/LMCache.git  
cd LMCache  
pip install -r requirements/build.txt  
# Pick one:  
# A: Choose your Torch  
pip install torch==2.7.1  # Good for vLLM 0.10.0  
# B: Get vLLM with Torch included  
pip install vllm==0.10.0  
 pip install -e . --no-build-isolation

跑个验证:

 python3 -c"import lmcache.c_ops"

不报错就行。

用uv的话会快一些:

 git clone https://github.com/LMCache/LMCache.git  
 cd LMCache  
 uv venv --python3.12  
 source .venv/bin/activate  
 uv pip install -r requirements/build.txt  
 # Same Torch/vLLM choices  
 uv pip install -e . --no-build-isolation

Docker部署

如果嫌麻烦直接拉镜像:

 # Stable  
 docker pull lmcache/vllm-openai  
 # Nightly  
 docker pull lmcache/vllm-openai:latest-nightly

AMD GPU(比如MI300X)需要从vLLM基础镜像开始,加上ROCm编译参数:

 PYTORCH_ROCM_ARCH="gfx942" \  
 TORCH_DONT_CHECK_COMPILER_ABI=1 \  
 CXX=hipcc \  
 BUILD_WITH_HIP=1 \  
 python3 -m pip install --no-build-isolation -e .

小结

KV缓存复用这个思路已经是基本操作了,但LMCache把它做得比较完整:多级存储、任意位置匹配、和vLLM的原生集成,这些组合起来确实能解决实际问题。对于多轮对话、RAG这类prompt重复率高的场景,3-10倍的TTFT优化是实打实的。

LMCache目前主要绑定vLLM生态,Linux优先,AMD GPU支持还在完善中。但作为一个开源方案,值得关注。

项目地址:https://avoid.overfit.cn/post/7854fe6d56b24e6fb836c6bfe42981fb

作者:Algo Insights

目录
相关文章
|
1月前
|
存储 人工智能 运维
阿里云 Tair 基于 3FS 工程化落地 KVCache:企业级部署、高可用运维与性能调优实践
阿里云 Tair KVCache 团队联合硬件团队对 3FS 进行深度优化,通过 RDMA 流量均衡、小 I/O 调优及全用户态落盘引擎,提升 4K 随机读 IOPS 150%;增强 GDR 零拷贝、多租户隔离与云原生运维能力,构建高性能、高可用、易管理的 KVCache 存储底座,助力 AI 大模型推理降本增效。
|
23天前
|
机器学习/深度学习 人工智能 并行计算
DeepSeek 开年王炸:mHC 架构用流形约束重构 ResNet 残差连接
大过节DeepSeek在arXiv发布mHC新论文,挑战Transformer残差连接范式。通过流形约束(谱范数+双重随机矩阵),在保持高带宽信息通路的同时恢复恒等映射稳定性,解决深层网络梯度传播难题,理论扎实且兼顾系统效率,或成“后Transformer时代”架构新方向。
387 7
DeepSeek 开年王炸:mHC 架构用流形约束重构 ResNet 残差连接
|
3月前
|
缓存 运维 监控
vLLM推理加速指南:7个技巧让QPS提升30-60%
GPU资源有限,提升推理效率需多管齐下。本文分享vLLM实战调优七招:请求塑形、KV缓存复用、推测解码、量化、并行策略、准入控制与预热监控。结合代码与数据,助你最大化吞吐、降低延迟,实现高QPS稳定服务。
1162 7
vLLM推理加速指南:7个技巧让QPS提升30-60%
|
1月前
|
存储 PyTorch 算法框架/工具
PyTorch推理扩展实战:用Ray Data轻松实现多机多卡并行
单机PyTorch推理难以应对海量数据,内存、GPU利用率、I/O成瓶颈。Ray Data提供轻量方案,仅需微调代码,即可将原有推理逻辑无缝扩展至分布式,支持自动批处理、多机并行、容错与云存储集成,大幅提升吞吐效率,轻松应对百万级图像处理。
179 13
PyTorch推理扩展实战:用Ray Data轻松实现多机多卡并行
|
1月前
|
存储 JSON 监控
解锁京东API,实时掌握商品价格动态,定价策略更灵活!
本文详解如何利用京东API(jd.union.open.goods.price.query)实现实时价格监控,涵盖API接入、数据获取、存储分析及动态定价策略。通过构建监控系统,企业可快速响应竞品调价、优化库存、提升转化率,结合InfluxDB与预测模型,助力电商精细化运营,已验证提升销售额37%。
408 0
|
12天前
|
存储 人工智能 架构师
构建自己的AI编程助手:基于RAG的上下文感知实现方案
打造智能代码助手,远不止调用API。需构建专为代码设计的RAG系统:基于AST解析保障分块完整性,向量库实现语义检索,结合仓库地图提供全局结构,再通过推理链整合上下文。如此,AI才能真正理解代码,胜任重构、答疑等复杂任务,成为懂你项目的“资深工程师”。
78 7
构建自己的AI编程助手:基于RAG的上下文感知实现方案
|
13天前
|
前端开发 算法
深度研究Agent架构解析:4种Agent架构介绍及实用Prompt模板
本文系统梳理了深度搜索Agent的主流架构演进:从基础的Planner-Only,到引入评估反馈的双模块设计,再到支持层次化分解的递归式ROMA方案。重点解析了问题拆解与终止判断两大核心挑战,并提供了实用的Prompt模板与优化策略,为构建高效搜索Agent提供清晰路径。
322 10
深度研究Agent架构解析:4种Agent架构介绍及实用Prompt模板
|
22天前
|
机器学习/深度学习 自然语言处理 算法
从贝叶斯视角解读Transformer的内部几何:mHC的流形约束与大模型训练稳定性
大模型训练常因架构改动破坏内部贝叶斯几何结构,导致不稳定。研究表明,Transformer通过残差流、注意力与值表征在低维流形上实现类贝叶斯推理。mHC通过约束超连接保护这一几何结构,确保规模化下的训练稳定与推理一致性。
286 7
从贝叶斯视角解读Transformer的内部几何:mHC的流形约束与大模型训练稳定性
|
1月前
|
缓存 监控 测试技术
llama.cpp Server 引入路由模式:多模型热切换与进程隔离机制详解
llama.cpp 于2025年12月11日发布路由模式,支持多模型动态加载与毫秒级切换,无需重启服务。采用多进程隔离架构,兼容OpenAI API,支持自动发现、按需加载、LRU淘汰及手动管理,显著提升本地多模型协作的效率与稳定性,是轻量级推理服务框架的重要升级。
192 3
llama.cpp Server 引入路由模式:多模型热切换与进程隔离机制详解
|
1月前
|
SQL 移动开发 Oracle
Oracle 数据库查询:多表查询
想把分散在多个表里的数据拼起来看?核心就靠JOIN(连接)和子查询。可以用INNER JOIN找到两边都匹配的记录,或用OUTER JOIN查看单边也存在的数据。一个非常强大的技巧,是把一个查询结果当成临时表来用,能让复杂的统计分析变得清晰。再结合新版本里简洁的分页语法,跨表取数和展示就得心应手了。
229 4

热门文章

最新文章