
LMCache+VLLM实战指南,让大模型的推理速度显著提升!
一、LMCache是什么?
LMCache是一个为大型语言模型(LLM)设计的缓存服务引擎扩展,它的目的是减少服务响应时间(TTFT)并提高吞吐量,特别是在长上下文场景下。
LMCache 是一个 LLM 服务引擎扩展,用于减少 TTFT 并提高吞吐量,尤其是在长上下文场景下。通过将可重用文本的 KV 缓存存储在不同位置,包括(GPU、CPU DRAM、本地磁盘),LMCache 在任何服务引擎实例中重用任何重用文本(不一定是前缀)的 KV 缓存。因此,LMCache 节省了宝贵的 GPU 周期并减少了用户响应延迟。
通过将 LMCache 与 vLLM 相结合,开发人员在许多 LLM 用例(包括多轮 QA 和 RAG)中实现了 3-10 倍的延迟节省和 GPU 周期减少。
特点:
(1)可以缓存kv cache到(GPU、CPU DRAM、本地磁盘)上;
(2)LMCache 在任何服务引擎实例中重用任何重用文本(不一定是前缀)的 KV 缓存;
名词定义:
TTFT(Time To First Token)
定义:从请求发送到收到第一个输出 Token 的时间。核心影响因素:Prompt 预填充(Prefill)阶段的计算效率。
github地址: https://github.com/LMCache/LMCache
二、LMCache实战
安装依赖环境
# 安装基础环境
conda create -n vllm_092 pythnotallow=3.12
conda activate vllm_092
# 安装依赖包
pip install uv
uv pip install vllm==0.9.2
uv pip install lmcache==0.3.5
创建一个yaml文件,填写lmcache的配置项,例如使用10g的内存空间:
lmcache_config.yaml
chunk_size: 32
local_cpu: True
max_local_cpu_size: 10
vllm+lmcache的启动命令:
LMCACHE_CONFIG_FILE=$PWD/lmcache_config.yaml \
vllm serve $PWD/Qwen3-14B \
--gpu_memory_utilization 0.7 \
--port 12345 \
--kv-transfer-config \
'{"kv_connector":"LMCacheConnectorV1",
"kv_role":"kv_both"
}'
启动后,可以利用openai的通用接口进行调用;接口文档可以参考deepseek的调用方式,
https://api-docs.deepseek.com/zh-cn/
把模型类型换成自己部署的qwen3-14b模型即可;
下面进行测试一下效果:
可以看到红框里的,相同两次请求,第一次请求,lmcache会把输入的信息进行缓存起来,当第二次请求时,会统计命中的token数,并且直接把命中的kv cache从内存中拿出来,避免重复计算,减少推理的响应速度;
本文转载自AI小新,作者:AI小新
