海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

LMCache 是一个开源的键值(KV)缓存优化工具,专为提升大语言模型(LLM)推理效率设计。它通过缓存和复用模型的中间计算结果(键值缓存),显著降低推理时间和GPU资源消耗,特别适合长上下文场景。LMCache 与 vLLM 等推理引擎无缝集成,支持 GPU、CPU 和磁盘存储,适用于多轮问答、检索增强生成(RAG)等场景。项目由社区驱动,采用 Apache 2.0 许可证,广泛应用于企业级 AI 推理优化。

 

功能列表

  • 键值缓存复用:缓存 LLM 的键值对,支持非前缀文本复用,减少重复计算。
  • 多存储后端支持:支持 GPU、CPU DRAM、磁盘和 Redis 等存储,灵活应对内存限制。
  • 与 vLLM 集成:无缝接入 vLLM,提供 3-10 倍的推理延迟优化。
  • 分布式缓存:支持跨多 GPU 或容器化环境共享缓存,适合大规模部署。
  • 多模态支持:缓存图像和文本的键值对,优化多模态模型推理。
  • 工作负载生成:提供测试工具生成多轮问答、RAG 等工作负载,验证性能。
  • 开源社区支持:提供文档、示例和社区会议,便于用户贡献和交流。

使用帮助

安装流程

LMCache 的安装简单,支持 Linux 平台和 NVIDIA GPU 环境。以下是详细的安装步骤,基于官方文档和社区推荐的方式。

  1. 准备环境
    • 确保系统为 Linux,Python 版本为 3.10 或更高,CUDA 版本为 12.1 或以上。
    • 安装 Conda(推荐使用 Miniconda)以创建虚拟环境:
      conda create -n lmcache python=3.10
      conda activate lmcache
      
  2. 克隆仓库
    • 使用 Git 克隆 LMCache 仓库到本地:
      git clone https://github.com/LMCache/LMCache.git
      cd LMCache
      
  3. 安装 LMCache
    • 通过 PyPI 安装最新稳定版:
      pip install lmcache
      
    • 或者安装最新预发布版(可能包含实验性功能):
      pip install --index-url https://pypi.org/simple --extra-index-url https://test.pypi.org/simple lmcache==0.2.2.dev57
      
    • 若需从源码安装:
      pip install -e .
      
  4. 安装 vLLM
    • LMCache 需与 vLLM 配合使用,安装最新版 vLLM:
      pip install vllm
      
  5. 验证安装
    • 检查 LMCache 是否正确安装:
      python
      import lmcache
      from importlib.metadata import version
      print(version("lmcache"))
      

      输出应为安装的版本号,如 0.2.2.dev57

  6. 可选:Docker 部署
    • LMCache 提供预构建的 Docker 镜像,集成 vLLM:
      docker pull lmcache/lmcache:latest
      
    • 运行 Docker 容器并根据文档配置 vLLM 和 LMCache。

使用主要功能

LMCache 的核心功能是优化键值缓存,以加速 LLM 推理。以下是主要功能的详细操作指南。

1. 键值缓存复用

LMCache 通过存储模型的键值缓存(KV Cache),避免重复计算相同的文本或上下文。用户可以在 vLLM 中启用 LMCache:

  • 配置环境变量
    export LMCACHE_USE_EXPERIMENTAL=True
    export LMCACHE_CHUNK_SIZE=256
    export LMCACHE_LOCAL_CPU=True
    export LMCACHE_MAX_LOCAL_CPU_SIZE=5.0
    

    这些变量设置 LMCache 使用实验功能、每块 256 个 token、启用 CPU 后端,并限制 CPU 内存为 5GB。

  • 运行 vLLM 实例
    启动 vLLM 时,LMCache 自动加载并缓存键值对。示例代码:

    from vllm import LLM
    from lmcache.integration.vllm.utils import ENGINE_NAME
    from vllm.config import KVTransferConfig
    ktc = KVTransferConfig(kv_connector="LMCacheConnector", kv_role="kv_both")
    llm = LLM(model="meta-llama/Meta-Llama-3.1-8B-Instruct", kv_transfer_config=ktc)
    

2. 多存储后端

LMCache 支持将键值缓存存储在 GPU、CPU、磁盘或 Redis 上。用户可根据硬件资源选择存储方式:

  • 本地磁盘存储
    python3 -m lmcache_server.server localhost 9000 /path/to/disk
    

    这将启动 LMCache 服务器,存储缓存到指定磁盘路径。

  • Redis 存储
    配置 Redis 后端需设置用户名和密码,参考文档:

    export LMCACHE_REDIS_USERNAME=user
    export LMCACHE_REDIS_PASSWORD=pass
    

3. 分布式缓存

在多 GPU 或容器化环境中,LMCache 支持跨节点共享缓存:

  • 启动 LMCache 服务器:
    python3 -m lmcache_server.server localhost 9000 cpu
    
  • 配置 vLLM 实例连接服务器,参考 disagg_vllm_launcher.sh 示例。

4. 多模态支持

LMCache 支持多模态模型,通过哈希图像 token(mm_hashes)缓存键值对,优化视觉 LLM 推理:

  • 在 vLLM 中启用多模态支持,参考官方示例 LMCache-Examples 仓库。

5. 测试工具

LMCache 提供测试工具,生成工作负载以验证性能:

  • 克隆测试仓库:
    git clone https://github.com/LMCache/lmcache-tests.git
    cd lmcache-tests
    bash prepare_environment.sh
    
  • 运行测试用例:
    python3 main.py tests/tests.py -f test_lmcache_local_cpu -o outputs/
    

    输出结果保存在 outputs/test_lmcache_local_cpu.csv

操作注意事项

  • 环境检查:确保 CUDA 和 Python 版本兼容,推荐使用 Conda 管理环境。
  • 日志监控:检查 prefiller.logdecoder.log 和 proxy.log 以调试问题。
  • 社区支持:加入 LMCache Slack 或参加 bi-weekly 社区会议获取帮助,会议时间为每周二上午 9 点(PT)。

应用场景

  1. 多轮问答系统
    LMCache 缓存上下文中的键值对,加速多轮对话场景。用户在聊天机器人中连续提问时,LMCache 复用之前的计算结果,减少延迟。
  2. 检索增强生成(RAG)
    RAG 应用中,LMCache 缓存文档的键值对,快速响应相似查询,适合智能文档搜索或企业知识库。
  3. 多模态模型推理
    对于视觉-语言模型,LMCache 缓存图像和文本的键值对,降低 GPU 内存占用,提升响应速度。
  4. 大规模分布式部署
    在多 GPU 或容器化环境中,LMCache 的分布式缓存功能支持跨节点共享,优化企业级 AI 推理。

QA

  1. LMCache 支持哪些平台?
    目前支持 Linux 和 NVIDIA GPU 环境,Windows 可通过 WSL 使用。
  2. 如何与 vLLM 集成?
    通过 pip install lmcache vllm,并在 vLLM 配置中启用 LMCacheConnector,参考官方示例代码。
  3. 是否支持非前缀缓存?
    支持,LMCache 使用部分重计算技术,缓存 RAG 工作负载中的非前缀文本。
  4. 如何调试性能问题?
    检查日志文件并运行测试用例,输出 CSV 文件分析延迟和吞吐量。
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

回顶部

zh_CN简体中文