kvcached
kvcached 是一款专为大语言模型(LLM)服务的开源工具,旨在解决多模型共享 GPU 时显存利用率低和调度僵化的问题。在动态变化的业务负载下,传统方式往往难以灵活分配显存,导致资源浪费或服务受阻。kvcached 创新性地将操作系统中的“虚拟内存”理念引入 LLM 系统,通过将 KV 缓存的逻辑地址与物理显存解耦,实现了按需分配和弹性回收。这意味着系统可以先预留虚拟空间,仅在真正需要时才占用物理显存,从而大幅提升 GPU 在混合负载下的使用效率。
该工具特别适合 AI 基础设施开发者、研究人员以及需要在有限算力资源下部署多个模型的运维团队。它原生支持主流推理引擎 SGLang 和 vLLM,并提供命令行工具进行精细的显存控制。其独特亮点包括支持模型空闲时自动进入“睡眠模式”以释放资源、智能路由请求,以及针对 vLLM 和 SGLang 优化的前缀缓存技术。此外,kvcached 已获得红帽(Red Hat)等业界认可,被用于生产环境中构建动态多模型服务方案,是降低 GPU 成本、提升服务灵活性的实用选择。
使用场景
某中型 AI 初创公司需要在单张昂贵的 A100 GPU 上同时部署客服问答(高并发)和内部文档分析(低频次但长上下文)两个大模型服务,以控制基础设施成本。
没有 kvcached 时
- 显存资源僵化:两个模型必须预先静态划分显存,即使文档分析服务空闲,其占用的 KV Cache 显存也无法被客服模型借用,导致整体利用率低下。
- 突发流量易崩溃:当客服咨询量激增时,因无法动态扩容 KV Cache,服务常因显存溢出(OOM)而直接中断或拒绝请求。
- 多模型切换困难:若想临时加载第三个实验模型,必须手动停止现有服务并重新规划显存分配,运维流程繁琐且耗时。
- 长上下文成本高昂:处理长文档时,固定的显存配额限制了上下文窗口大小,迫使团队对输入进行截断,影响回答质量。
使用 kvcached 后
- 显存弹性共享:kvcached 引入虚拟内存机制,将逻辑寻址与物理显存解耦,空闲模型的显存可自动“借”给繁忙的客服模型,实现按需分配。
- 动态抗压能力:面对流量洪峰,kvcached 能实时从全局池中提取物理显存支撑新增的 KV Cache,确保服务不中断且无需预留过量冗余。
- 灵活的多模型路由:借助前端路由和休眠功能,kvcached 可在无请求时自动挂起冷门模型释放资源,有新请求时秒级唤醒,轻松支持多模型混部。
- 超长上下文支持:通过弹性回收机制,kvcached 允许单个请求突破物理显存限制,动态管理前缀缓存,完整处理长篇文档而不牺牲精度。
kvcached 通过将操作系统级的虚拟内存理念引入 LLM 推理,彻底解决了多模型共享 GPU 时的显存碎片与僵化难题,让每一分算力都物尽其用。
运行环境要求
- Linux
需要 NVIDIA GPU(文中提及 A100-80G 测试案例,支持 GB200),需支持 CUDA 以运行 SGLang 或 vLLM
未说明

快速开始
让 GPU 共享更灵活、更简单
kvcached(KV 缓存守护进程)是一个用于在共享 GPU 上进行 LLM 推理/训练的 KV 缓存库。它通过将操作系统级别的虚拟内存抽象引入 LLM 系统,实现了弹性且按需分配的 KV 缓存,从而在动态负载下提升 GPU 利用率。
kvcached 的实现方式是将 GPU 虚拟地址空间与 KV 缓存的物理内存分配解耦。这使得推理引擎可以先仅保留虚拟内存,等到缓存被实际使用时再将其映射到物理 GPU 内存上。这种解耦支持按需分配和灵活共享,在动态混合负载场景下显著提升了 GPU 内存利用率。更多详细信息请参阅博客。
核心特性
- 弹性 KV 缓存:根据实时负载动态分配和回收 KV 内存。
- GPU 虚拟内存:通过运行时映射将逻辑 KV 与物理 GPU 内存解耦。
- 内存控制 CLI:使用 kvcached CLI 强制执行内存限制。
- 前端路由与休眠模式:将请求路由到目标模型,并在空闲时使模型进入休眠状态。
- 前缀缓存:支持 vLLM(包括混合注意力模型)的自动前缀缓存(APC)以及 SGLang 的 RadixCache,可配置内存上限。
- 支持主流推理引擎:与 SGLang 和 vLLM 集成。
📢 最新动态
[2026-04]
kvcached 被红帽公司重点推荐,用于在资源有限的情况下以动态方式在生产环境中运行 LLM!红帽的 Sardeenz 基于 kvcached 构建,提供基于 Kubernetes 和 OpenShift 支持的动态多模型推理服务。更多信息请参阅博客文章。 [▶ 查看演示]
[2026-04] 新增前缀缓存支持。kvcached 现在支持 vLLM 的自动前缀缓存(APC)和 SGLang 的RadixCache,能够在保持弹性内存管理的同时实现跨请求的前缀复用。缓存的 token 预算可以通过
KVCACHED_MAX_CACHED_TOKENS进行控制(默认值为16000)。- vLLM:缓存块保留在可驱逐池中,当内存压力出现时按需释放(惰性驱逐)。token 限制会在内部转换为块数(
KVCACHED_MAX_CACHED_TOKENS // block_size)。 - SGLang:每次请求结束后,RadixCache 会主动驱逐超出 token 预算的条目。适用于
page_size=1和page_size>1的场景。
- vLLM:缓存块保留在可驱逐池中,当内存压力出现时按需释放(惰性驱逐)。token 限制会在内部转换为块数(
[2026-03] 新增流水线并行支持。 MLA 模型(DeepSeek-V3、DeepSeek-V2 等)以及 GPT-OSS 混合注意力模型(
openai/gpt-oss-20b)现在也已在 vLLM 中得到支持。 SGLang 对 GPT-OSS 的支持已更新至 v0.5.9。[2026-02] kvcached 现在支持 vLLM v0.16.0 和 SGLang v0.5.9。 MLA 模型(DeepSeek-V3、DeepSeek-V2 等)在 SGLang 中同时支持
page_size=1和page_size>1。 GPT-OSS 混合注意力模型(openai/gpt-oss-20b)已在 SGLang 中得到支持。
支持的引擎和模型
| 引擎 | 版本 | 注意力类型 | 示例模型 |
|---|---|---|---|
| SGLang | ≥ v0.4.9(测试最高至 v0.5.9) | MHA / GQA / MLA | Llama 3.1/3.3、Qwen 2.5、DeepSeek-V3、openai/gpt-oss-20b 等 |
| vLLM | ≥ v0.8.4(测试最高至 v0.16.0) | MHA / GQA / MLA | Llama 3.1/3.3、Qwen 2.5、DeepSeek-V3、openai/gpt-oss-20b |
示例用例
|
|
多模型服务 kvcached 允许多个大语言模型弹性共享 GPU 显存,实现无需当前严格显存划分的并发部署。这不仅提高了 GPU 的利用率,还降低了推理服务的成本。 |
|
|
无服务器大语言模型 通过仅在需要时分配 KV 缓存,kvcached 支持按需启动和关闭模型的无服务器部署。 |
|
|
复合 AI 系统 kvcached 通过在流水线中的不同专用模型(如检索、推理和摘要生成)之间弹性分配内存,使复合 AI 系统能够在资源有限的硬件上高效运行。 |
|
|
GPU 工作负载共置 kvcached 允许大语言模型推理与其他 GPU 工作负载(如训练任务、微调或视觉模型)共存。 |
更多具体示例请参见:kvcached/examples。
kvcached 实际应用
以下简单示例展示了 kvcached 如何使未经修改的 vLLM 引擎以动态分配的内存运行。
性能:多模型服务
kvcached 能够在多个大语言模型之间动态共享显存,使它们可以弹性地共用同一块 GPU 显存。相比之下,当前的推理引擎需要在启动时静态预留 GPU 显存。
本基准测试展示了在 A100-80G GPU 上,使用间歇性高峰负载为三个 Llama-3.1-8B 模型提供服务时,kvcached 带来的性能优势。与现有推理引擎相比,kvcached 可将 TTFT 降低 2 至 28 倍。这种性能提升可转化为大语言模型推理服务的 显著成本节约。如果没有 kvcached,系统必须配置更多的 GPU 才能达到相同的性能。
详细信息请参阅 benchmarks/bench_latency_benefit。
安装
先决条件
- Python(已测试版本:3.9 - 3.13)
- SGLang(已测试版本:v0.5.9)或 vLLM(已测试版本:v0.16.0)
kvcached 可作为插件安装到现有的 SGLang 或 vLLM 环境中。
从 PyPI 安装
pip install kvcached --no-build-isolation
从源码安装
# 在项目根目录下
pip install -e . --no-build-isolation --no-cache-dir
python tools/dev_copy_pth.py
使用 Docker
kvcached 可与原生引擎的 Docker 镜像一起安装。
docker pull ghcr.io/ovg-project/kvcached-sglang:latest # kvcached-v0.1.4-sglang-v0.5.9
docker pull ghcr.io/ovg-project/kvcached-vllm:latest # kvcached-v0.1.4-vllm-v0.16.0
我们还为开发者准备了一体化 Docker:
docker pull ghcr.io/ovg-project/kvcached-dev:latest
更多说明请参阅 此处。GB200 的 Docker 镜像正在开发中。
文档
kvcached 已被收录至 DeepWiki,提供基于大语言模型的文档支持。
文档内容包括:
- 核心架构与内存管理系统
- 与 vLLM 和 SGLang 的集成
- 多模型服务与控制器系统
- 部署指南及配置参考
- 性能基准测试与分析
- 开发工具与测试
测试
可通过设置以下环境变量来启用 kvcached:
export ENABLE_KVCACHED=true
export KVCACHED_AUTOPATCH=1
如果您使用的是特定引擎的 Docker 镜像,可以通过运行原生引擎的基准测试脚本来测试 kvcached。例如:
# 对于 sglang
python -m sglang.launch_server --model meta-llama/Llama-3.2-1B-Instruct --disable-radix-cache --port 30000
python -m sglang.bench_serving --backend sglang-oai --model meta-llama/Llama-3.2-1B-Instruct --dataset-name sharegpt --request-rate 10 --num-prompts 1000 --port 30000
# 用于 vLLM
vllm serve meta-llama/Llama-3.2-1B-Instruct --no-enable-prefix-caching --port=12346
vllm bench serve --model meta-llama/Llama-3.2-1B-Instruct --request-rate 10 --num-prompts 1000 --port 12346
[!NOTE] kvcached 现在同时支持 vLLM(APC)和 SGLang(RadixCache)的 前缀缓存。您可以按常规方式启用前缀缓存(引擎会使用默认设置)。缓存的块会被保留以供跨请求复用,当需要内存时则按需逐出。通过设置
KVCACHED_MAX_CACHED_TOKENS可以控制两个引擎的缓存令牌预算(默认值为16000;设为0表示无限制)。如果您希望禁用前缀缓存,请对 vLLM 使用--no-enable-prefix-caching,对 SGLang 使用--disable-radix-cache。当启用 kvcached 时,无需再设置显存利用率限制(例如使用
--gpu-memory-utilization),因为 kvcached 会自动管理显存。
如果您是通过源代码安装的 kvcached,也可以执行以下操作:
cd benchmarks/simple_bench
./start_server.sh [sglang|vllm] --venv-path $VENV_PATH --model meta-llama/Llama-3.2-1B-Instruct
# 等待 LLM 服务器就绪
./start_client.sh [sglang|vllm] --venv-path $VENV_PATH --model meta-llama/Llama-3.2-1B-Instruct
基准测试脚本会自动设置 ENABLE_KVCACHED=true。有关如何使用 kvcached 进行推理的说明,请参阅各个脚本。
[!TIP] 自 transformers >= 4.44 起,不再有回退的“默认”聊天模板。如果分词器未定义
chat_template,则在未显式提供的情况下无法使用apply_chat_template。如果在启动时进行聊天预热时遇到聊天模板错误,请改用 Instruct 模型(例如meta-llama/Llama-3.2-1B-Instruct),而不是基础模型。
[!NOTE] 我们尚未对 kvcached 与所有版本的 SGLang 和 vLLM 完全兼容(版本太多!)。如果您在特定版本中遇到问题,请提交一个问题——我们会尽快调查并修复。
路线图
最新的路线图也在 issue #125 中记录。
- 引擎集成
- SGLang 和 vLLM
- Ollama(进行中)
- llama.cpp 和 LMStudio
- 功能
- 张量并行
- 前缀缓存
- 将 KV 缓存卸载到主机内存
- 更多注意力类型(滑动窗口注意力、线性注意力、视觉编码器等)
- 性能优化
- 连续 KV 张量布局
- 物理内存管理
- 硬件
- NVIDIA GPU
- AMD GPU
贡献
我们非常感谢并欢迎任何形式的贡献与合作。
我们使用 pre-commit 来确保代码风格一致。您可以通过以下命令进行设置:
pip install pre-commit
pre-commit install
在推送代码之前,请运行以下检查,并确保您的代码通过所有检查:
pre-commit run --all-files
联系方式
kvcached 由社区中的众多贡献者共同开发。如您有任何问题、意见或想参与贡献,可通过我们的 Slack 频道 或 GitHub Issues 与我们联系。
引用
如果您觉得 kvcached 有用,请引用我们的论文:
@article{xing2025towards,
title={Towards Efficient and Practical GPU Multitasking in the Era of LLM},
author={Xing, Jiarong and Qiao, Yifan and Mo, Simon and Cui, Xingqi and Sela, Gur-Eyal and Zhou, Yang and Gonzalez, Joseph and Stoica, Ion},
journal={arXiv preprint arXiv:2508.08448},
year={2025}
}
@article{yu2025prism,
title={Prism: Unleashing GPU Sharing for Cost-Efficient Multi-LLM Serving},
author={Yu, Shan and Xing, Jiarong and Qiao, Yifan and Ma, Mingyuan and Li, Yangmin and Wang, Yang and Yang, Shuo and Xie, Zhiqiang and Cao, Shiyi and Bao, Ke and others},
journal={OSDI},
year={2026}
}
版本历史
v0.1.42026/03/05v0.1.32026/01/10v0.1.22025/10/19v0.1.12025/10/15常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。