
LMCache:最快的开源 LLM 推理服务引擎
如果你用过大型语言模型(LLMs)干点正经事,你肯定知道那种等待的煎熬。
你输入一个问题,按下回车,然后……啥也没有。
就一个转圈的光标在那晃,直到第一个词终于蹦出来。
这种延迟叫“首次令牌时间”(time-to-first-token,TTFT),真是让人抓狂。
现在,有个叫LMCache的项目。它是开源的,简单说就是给LLMs提速的神器。
LMCache是干啥的?
LLMs老干重复的活儿。
每次你给它一段文本,它都会构建一个叫KV cache(键值缓存)的东西。
你可以把它想象成模型在读文本时做的笔记。
问题在于,它不会重复用这些笔记。所以如果你又给了同样的文本,它得从头再建一遍。
LMCache就解决了这个问题。
它会把KV cache存下来,不光存在GPU显存里,还能存到CPU内存甚至磁盘上。当模型再次看到一模一样的文本(不只是前缀,是任何重复的文本),它直接从缓存里取出来。不浪费GPU的计算周期,也不让你多等。
结果呢?用vLLM的话,很多标准场景下,比如多轮对话或检索增强生成(retrieval-augmented generation),响应速度能快3到10倍。
看看这个:
# 老办法:慢得像爬
defget_answer(prompt):
memory = build_memory_from_zero(prompt) # GPU哭了
return model.answer(memory)
# 用LMCache:快如闪电,聪明得很
import lmcache
defget_answer(prompt):
if lmcache.knows_this(prompt): # 以前见过?
memory = lmcache.grab_memory(prompt) # 直接拿来用
else:
memory = build_memory_from_zero(prompt)
lmcache.save_memory(prompt, memory) # 存起来下次用
return model.answer(memory)
图片
为啥LMCache这么牛
我见过不少AI工具,但LMCache有些特别酷的功能:
- 快得飞起:内存获取速度最快能提升7倍,处理量也更大。文本在哪它都不在乎,照样能复用。
- 存哪儿都行:内存块可以放CPU、磁盘,甚至是NIXL这种高级玩意儿。GPU可以偷个懒。
- 超爱vLLM:跟vLLM(版本1)配合得特别好,能跨设备共享工作,或者在系统间传递内存。
- 适合大活儿:专为真实应用设计,支持llm-d和KServe这些工具,不只是实验室里的小打小闹。 如果你在做聊天机器人或者搜大堆数据的应用,LMCache能保持速度,还不用非得配个超级电脑。
怎么安装
开始之前,LMCache在Linux上跑得最顺。Windows用户得用WSL或者社区补丁。另外,你需要:
- Python 3.9或更高版本
- NVIDIA GPU(比如V100或H100)
- CUDA 12.8或更高
- 没Wi-Fi?没问题,装好后离线也能跑。
简单方法:从PyPI装
想直接用?跑这个:
pip install lmcache
这会带上最新的Torch。如果碰到怪错,试试从源码装。
想玩点刺激的?试试TestPyPI
想要最新版?装预发布版:
pip install --index-url https://pypi.org/simple --extra-index-url https://test.pypi.org/simple lmcache==0.3.4.dev61
检查版本对不对:
import lmcache
from importlib.metadata import version
print(version("lmcache")) # 应该是0.3.4.dev61或更高
版本号跟LMCache的GitHub上最新的对齐。
自己动手建
爱折腾?克隆代码然后搞:
git clone https://github.com/LMCache/LMCache.git
cd LMCache
pip install -r requirements/build.txt
# 选一个:
# A: 选你的Torch
pip install torch==2.7.1 # 适合vLLM 0.10.0
# B: 装带Torch的vLLM
pip install vllm==0.10.0
pip install -e . --no-build-isolation
确认没问题:
python3 -c "import lmcache.c_ops"
没崩?那就成了。
用uv快速搞定
喜欢快工具?试试uv:
git clone https://github.com/LMCache/LMCache.git
cd LMCache
uv venv --python 3.12
source .venv/bin/activate
uv pip install -r requirements/build.txt
# 一样的Torch/vLLM选择
uv pip install -e . --no-build-isolation
Docker
想省事?用Docker:
# 稳定版
docker pull lmcache/vllm-openai
# 夜间版
docker pull lmcache/vllm-openai:latest-nightly
对AMD GPU(比如MI300X),从vLLM镜像开始,加这些:
PYTORCH_ROCM_ARCH="gfx942" \
TORCH_DONT_CHECK_COMPILER_ABI=1 \
CXX=hipcc \
BUILD_WITH_HIP=1 \
python3 -m pip install --no-build-isolation -e .
跟vLLM无缝对接
LMCache跟vLLM就像烧烤派对上的好哥们。对vLLM v1:
pip install vllm
测试一下:
python3 -c "import vllm.distributed.kv_transfer.kv_connector.v1.lmcache_connector"
用vLLM v0?去他们repo里看示例脚本。
本文转载自PyTorch研习社,作者:AI研究生
