LMCache:大模型的Redis
如果您曾经使用大型语言模型处理过任何重要的任务,那么您一定对等待的过程很熟悉。
输入一个问题,按下回车键,然后……什么都没有。
只是光标旋转,直到第一个单词最终出现。
这种延迟被称为第一个词法单元时间 (TTFT),它可能会令人沮丧。
有一个名为 LMCache 的项目。它是开源的,可以提升 LLM 的速度。
1、LMCache 是什么?
LLM 会执行大量重复性工作。
每次输入文本时,它们都会构建所谓的 KV 缓存(键值缓存)。
可以将其想象成模型在阅读时所做的笔记。
问题是,它们不会重复使用这些笔记。因此,如果您再次输入相同的文本,它会从头开始重建整个内容。
LMCache 解决了这个问题。
它不仅会保存 KV 缓存,还会保存在 GPU 内存中,还会保存在 CPU RAM 甚至磁盘中。当模型再次看到相同的文本(不仅仅是前缀,而是任何重复使用的文本)时,它只需获取已保存的缓存即可。不会浪费 GPU 周期,也无需额外等待。
结果如何?使用 vLLM,在许多标准设置(例如多轮聊天或检索增强生成)中,响应速度可以提高 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)
2、LMCache 为何如此出色
我见过不少 AI 工具,但 LMCache 有一些很酷的技巧:
- 速度快:内存获取速度提升高达 7 倍,处理能力也大幅提升。它不关心文本位置,而是会重复使用。
- 存储位置随处:内存可以存储在 CPU、磁盘,甚至是 NIXL 等高端设备上。GPU 可以尽情发挥。
- 支持 vLLM:与 vLLM(版本 1)完美兼容,可以执行跨设备共享工作或在系统间传递内存等便捷操作。
- 为大型任务做好准备:它专为实际应用而构建,可与 llm-d 和 KServe 等工具协同工作,而非仅仅用于车库实验。
如果你正在创建聊天机器人或搜索大型数据集的应用,LMCache 无需强大的计算机即可保持高速运行。
3、如何设置
开始之前,请注意 LMCache 在 Linux 上表现最佳。Windows 用户需要 WSL 或社区插件。此外,你还需要:
- Python 3.9 或更高版本
- NVIDIA GPU(例如 V100 或 H100)
- CUDA 12.8 或更高版本
没有 Wi-Fi?没问题,它一旦准备就绪即可离线运行。
3.1 简单方法:从 PyPI 获取
只想让它工作?运行以下命令:
pip install lmcache
它附带最新的 Torch。如果您遇到奇怪的错误,请尝试使用源选项。
3.2 想尝试一下?试试 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")) # Should be 0.3.4.dev61 or newer
将版本号替换为 LMCache GitHub 上的任何最新版本。
3.3 自行构建
喜欢自己动手修改吗?克隆并运行:
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"
没有崩溃?那就没问题了。
3.4 使用 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
# Same Torch/vLLM choices
uv pip install -e . --no-build-isolation
3.5 Docker
想要更简单?使用 Docker:
# Stable
docker pull lmcache/vllm-openai
# Nightly
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 .
4、将其插入 vLLM
LMCache 和 vLLM 就像烧烤聚会上的好朋友。对于 vLLM v1:
pip install vllm
测试:
python3 -c "import vllm.distributed.kv_transfer.kv_connector.v1.lmcache_connector"
使用 vLLM v0?请查看其代码库中的示例脚本。
原文链接:LMCache: The Fastest Open-Source Serving Engine for LLMs
汇智网翻译整理,转载请标明出处