LMCache:最快的開源 LLM 推理服務(wù)引擎
如果你用過大型語言模型(LLMs)干點(diǎn)正經(jīng)事,你肯定知道那種等待的煎熬。
你輸入一個(gè)問題,按下回車,然后……啥也沒有。
就一個(gè)轉(zhuǎn)圈的光標(biāo)在那晃,直到第一個(gè)詞終于蹦出來。
這種延遲叫“首次令牌時(shí)間”(time-to-first-token,TTFT),真是讓人抓狂。
現(xiàn)在,有個(gè)叫LMCache的項(xiàng)目。它是開源的,簡(jiǎn)單說就是給LLMs提速的神器。
LMCache是干啥的?
LLMs老干重復(fù)的活兒。
每次你給它一段文本,它都會(huì)構(gòu)建一個(gè)叫KV cache(鍵值緩存)的東西。
你可以把它想象成模型在讀文本時(shí)做的筆記。
問題在于,它不會(huì)重復(fù)用這些筆記。所以如果你又給了同樣的文本,它得從頭再建一遍。
LMCache就解決了這個(gè)問題。
它會(huì)把KV cache存下來,不光存在GPU顯存里,還能存到CPU內(nèi)存甚至磁盤上。當(dāng)模型再次看到一模一樣的文本(不只是前綴,是任何重復(fù)的文本),它直接從緩存里取出來。不浪費(fèi)GPU的計(jì)算周期,也不讓你多等。
結(jié)果呢?用vLLM的話,很多標(biāo)準(zhǔn)場(chǎng)景下,比如多輪對(duì)話或檢索增強(qiáng)生成(retrieval-augmented generation),響應(yīng)速度能快3到10倍。
看看這個(gè):
# 老辦法:慢得像爬
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有些特別酷的功能:
- 快得飛起:內(nèi)存獲取速度最快能提升7倍,處理量也更大。文本在哪它都不在乎,照樣能復(fù)用。
- 存哪兒都行:內(nèi)存塊可以放CPU、磁盤,甚至是NIXL這種高級(jí)玩意兒。GPU可以偷個(gè)懶。
- 超愛vLLM:跟vLLM(版本1)配合得特別好,能跨設(shè)備共享工作,或者在系統(tǒng)間傳遞內(nèi)存。
- 適合大活兒:專為真實(shí)應(yīng)用設(shè)計(jì),支持llm-d和KServe這些工具,不只是實(shí)驗(yàn)室里的小打小鬧。 如果你在做聊天機(jī)器人或者搜大堆數(shù)據(jù)的應(yīng)用,LMCache能保持速度,還不用非得配個(gè)超級(jí)電腦。
怎么安裝
開始之前,LMCache在Linux上跑得最順。Windows用戶得用WSL或者社區(qū)補(bǔ)丁。另外,你需要:
- Python 3.9或更高版本
- NVIDIA GPU(比如V100或H100)
- CUDA 12.8或更高
- 沒Wi-Fi?沒問題,裝好后離線也能跑。
簡(jiǎn)單方法:從PyPI裝
想直接用?跑這個(gè):
pip install lmcache這會(huì)帶上最新的Torch。如果碰到怪錯(cuò),試試從源碼裝。
想玩點(diǎn)刺激的?試試TestPyPI
想要最新版?裝預(yù)發(fā)布版:
pip install --index-url https://pypi.org/simple --extra-index-url https://test.pypi.org/simple lmcache==0.3.4.dev61檢查版本對(duì)不對(duì):
import lmcache
from importlib.metadata import version
print(version("lmcache")) # 應(yīng)該是0.3.4.dev61或更高版本號(hào)跟LMCache的GitHub上最新的對(duì)齊。
自己動(dòng)手建
愛折騰?克隆代碼然后搞:
git clone https://github.com/LMCache/LMCache.git
cd LMCache
pip install -r requirements/build.txt
# 選一個(gè):
# 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確認(rèn)沒問題:
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-isolationDocker
想省事?用Docker:
# 穩(wěn)定版
docker pull lmcache/vllm-openai
# 夜間版
docker pull lmcache/vllm-openai:latest-nightly對(duì)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無縫對(duì)接
LMCache跟vLLM就像燒烤派對(duì)上的好哥們。對(duì)vLLM v1:
pip install vllm測(cè)試一下:
python3 -c "import vllm.distributed.kv_transfer.kv_connector.v1.lmcache_connector"用vLLM v0?去他們r(jià)epo里看示例腳本。



































