一个高吞吐、低显存占用的大语言模型推理与服务引擎,提供兼容 OpenAI 的 API。
microsoft/vattention
面向 LLM 推理服务的 KV-cache 内存管理器,基于 CUDA 虚拟内存 API 按需分配显存,无需 PagedAttention。
- Star
- 526
- Fork
- 46
- 未关闭 Issue
- 13
- 最近提交
- 2个月前
这是什么?
vAttention 是一个用于 LLM 推理服务系统的 KV-cache 内存管理器。它利用 CUDA 虚拟内存 API 将虚拟内存分配与物理内存分配解耦,物理显存按需映射,同时保持 KV-cache 在虚拟地址空间中的连续性。
由于 KV-cache 保持连续,vAttention 无需修改注意力内核即可支持动态内存分配。这与 PagedAttention 不同:后者在用户态实现分页,并需要重写自定义内核。项目包含 vAttention 分配器、同时支持两种内存管理方式的 Sarathi-Serve 修改版、基准测试脚本以及兼容 OpenAI API 的服务端。
运行环境要求为 Linux 加 NVIDIA GPU(已在 A100 上测试)、PyTorch 2.3.0、CUDA 12.1 或更高版本以及 Python 3.10。项目支持 FlashAttention 和 FlashInfer 后端,页大小从 64KB 到 2MB 可选,其中更小的页需要替换为定制的 UVM 驱动。
核心功能
- 01按需分配物理显存,同时保持 KV-cache 在虚拟内存中连续。
- 02无需修改注意力内核即可支持动态内存分配,区别于 PagedAttention。
- 03支持 FlashAttention 和 FlashInfer 注意力后端。
- 04提供 64KB 到 2MB 的页大小选项,并可将内存分配与计算重叠执行。
- 05包含基准测试脚本和兼容 OpenAI API 的服务端。
适用场景
- 研究或原型验证 LLM 推理的 KV-cache 内存管理方案。
- 在长上下文或 prefill 占比高的负载下评测推理服务的吞吐与延迟。
- 在推理服务中集成动态 KV-cache 分配,而无需重写注意力内核。
快速上手
- 1
创建并激活 Python 3.10 的 conda 环境
conda create -n vattn python=3.10 - 2
下载并解压与 PyTorch 2.3.0 匹配的 libtorch
wget https://download.pytorch.org/libtorch/cu121/libtorch-shared-with-deps-2.3.0%2Bcu121.zip - 3
在 sarathi-lean 目录中安装 Sarathi-Serve
pip install -e . --extra-index-url https://flashinfer.ai/whl/cu121/torch2.3/ - 4
构建 vAttention 分配器,并将 LIBTORCH_PATH 设置为 libtorch 目录
LIBTORCH_PATH=<path to libtorch dir> python setup.py install
使用前须知
- 主要在带 A100 GPU 的 Linux 上测试,CUDA 12.1 及以上,其他硬件可能无法运行。
- 需要特定的 PyTorch 2.3.0 及版本匹配的 libtorch。
- 这是研究原型,功能并不完全等同于开源 vLLM。
标签
常见问题
- vattention 是什么?
- 面向 LLM 推理服务的 KV-cache 内存管理器,基于 CUDA 虚拟内存 API 按需分配显存,无需 PagedAttention。 vAttention 是一个用于 LLM 推理服务系统的 KV-cache 内存管理器。它利用 CUDA 虚拟内存 API 将虚拟内存分配与物理内存分配解耦,物理显存按需映射,同时保持 KV-cache 在虚拟地址空间中的连续性。
- vattention 可以免费使用吗?用的什么许可证?
- vattention 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- vattention 还在维护吗?
- 半年内有更新。vattention 最近一次提交是在 2026年8月24日。
- vattention 适合用来做什么?
- 研究或原型验证 LLM 推理的 KV-cache 内存管理方案。 在长上下文或 prefill 占比高的负载下评测推理服务的吞吐与延迟。 在推理服务中集成动态 KV-cache 分配,而无需重写注意力内核。
- vattention 怎么安装和运行?
- 创建并激活 Python 3.10 的 conda 环境: conda create -n vattn python=3.10 下载并解压与 PyTorch 2.3.0 匹配的 libtorch: wget https://download.pytorch.org/libtorch/cu121/libtorch-shared-with-deps-2.3.0%2Bcu121.zip 在 sarathi-lean 目录中安装 Sarathi-Serve: pip install -e . --extra-index-url https://flashinfer.ai/whl/cu121/torch2.3/ 构建 vAttention 分配器,并将 LIBTORCH_PATH 设置为 libtorch 目录: LIBTORCH_PATH=<path to libtorch dir> python setup.py install
- 在哪里获取 vattention?
- 源代码和安装说明在 GitHub 上:https://github.com/microsoft/vattention
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向消费级硬件的边缘端 MoE 推理引擎,可在个人电脑上运行大型开源权重模型。
面向 LLM 推理的 KV 缓存管理层,可跨推理引擎存储、共享和复用缓存,降低首 token 延迟。
开源 GPU 集群管理器,用 vLLM、SGLang 等引擎部署 AI 模型,并可按需启动 SSH 访问的 GPU 实例。
阿里巴巴开源的高性能大模型推理引擎,用于部署和加速 LLM 服务。
NVIDIA 开源的推理优化库,用于在 NVIDIA GPU 上高效运行大语言模型和视觉生成模型。