LMCache:大模型的Redis

有一个名为 LMCache 的项目。它是开源的,可以提升 LLM 的速度。

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

汇智网翻译整理,转载请标明出处