更新文档
本项目针对大语言模型(LLM)长上下文推理中 KV Cache 带来的显存瓶颈、访存开销和抢占恢复问题,提出了一套端到端的全栈优化方案。系统在 vLLM 框架基础上,集成了 AnDPro Value‑aware KV 剪枝、QServe A8W4 低比特线性算子与 KV8 FlashAttention,以及 前缀感知调度 与 CPU Offload 抢占恢复 三大模块,并在请求生命周期内实现三者的协同工作,从而在保持模型生成质量的前提下,显著提升单卡并发容量和系统吞吐。
Value‑aware KV 剪枝基于 AnDPro 评分思想,逐层评估 Token 对 Attention 输出的实际贡献,动态裁剪冗余 KV,减少显存占用,支持长上下文和高并发。
低比特线性与 KV‑cache 压缩
前缀感知调度与 CPU Offload 抢占恢复
三模块协同集成剪枝、低比特算子和调度/卸载模块共享同一份请求状态、Block Table 和缓存布局,通过显式反馈与两阶段提交保证资源一致性和安全回退,形成完整的推理优化链路。
系统沿请求生命周期划分为四个层面:
各层通过显式状态和反馈连接,任何关键条件不满足时均采用 fail‑closed 策略,回退至完整重算或标准路径,确保状态一致性。
cd /path/to/acceleration_system python3.12 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r modified_vllm/requirements/cuda.txt pip install pytest ruff pip install -r Experiment/longbench_e/requirements.txt
项目包含两个核心扩展,需分别编译。
cd extensions/qserve_w4a8_ext export CUDA_HOME=/opt/conda # 根据实际路径修改 export TORCH_CUDA_ARCH_LIST=8.9 # 适配 GPU 架构 export MAX_JOBS=2 export PYTHONPATH=/path/to/acceleration_system/modified_vllm export PYTHONNOUSERSITE=1 python setup.py build_ext --inplace
cd extensions/qserve_kv8_fa2_ext cd vendor && ./prepare_vendor.sh && cd .. python setup.py build_ext --inplace
cd /path/to/acceleration_system/modified_vllm pip install -e .
加载优化环境脚本:
source scripts/runtime_env.sh optimized
关键配置文件位于 config/ 目录:
config/
optimized.env
offload.json
示例 offload.json:
{ "kv_connector": "SimpleCPUOffloadConnector", "kv_connector_module_path": "simple_kv_offload.simple_cpu_offload_connector", "kv_role": "kv_both", "kv_connector_extra_config": { "cpu_bytes_to_use": 8589934592, "lazy_gpu_free_trigger": 0.35, "max_scan_reqs": 3 } }
使用统一启动脚本:
cd /path/to/acceleration_system SERVER_HOST=0.0.0.0 PORT=8101 \ VLLM_ANDPRO_BUDGET_TOKENS=544 \ ./scripts/start_optimized_server.sh
该脚本会自动加载环境、配置参数,并启动 vLLM OpenAI API 服务。可通过环境变量覆盖模型路径、上下文长度、批处理上限等:
MODEL=/path/to/QServe-model \ MAX_MODEL_LEN=32768 \ MAX_NUM_BATCHED_TOKENS=65536 \ MAX_NUM_SEQS=64 \ GPU_MEMORY_UTILIZATION=0.90 \ SERVER_HOST=0.0.0.0 PORT=8101 \ ./scripts/start_optimized_server.sh
服务启动后可通过 OpenAI API 访问,例如:
curl http://127.0.0.1:8101/v1/completions \ -H "Content-Type: application/json" \ -d '{"model":"acceleration-system-optimized","prompt":"介绍 FlashAttention","max_tokens":128,"temperature":0}'
在 L40S 上的端到端测试(WikiText 继续生成,32 请求,多种输入/输出长度组合)显示:
详细实验数据和配置请参见项目技术报告。
本项目基于以下关键技术:
本代码仅供研究参考,具体许可请参见项目内 LICENSE 文件。
项目团队:欢迎通过 Issue 或邮件联系。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
KV-Cache 全栈优化系统
本项目针对大语言模型(LLM)长上下文推理中 KV Cache 带来的显存瓶颈、访存开销和抢占恢复问题,提出了一套端到端的全栈优化方案。系统在 vLLM 框架基础上,集成了 AnDPro Value‑aware KV 剪枝、QServe A8W4 低比特线性算子与 KV8 FlashAttention,以及 前缀感知调度 与 CPU Offload 抢占恢复 三大模块,并在请求生命周期内实现三者的协同工作,从而在保持模型生成质量的前提下,显著提升单卡并发容量和系统吞吐。
主要特性
Value‑aware KV 剪枝
基于 AnDPro 评分思想,逐层评估 Token 对 Attention 输出的实际贡献,动态裁剪冗余 KV,减少显存占用,支持长上下文和高并发。
低比特线性与 KV‑cache 压缩
前缀感知调度与 CPU Offload 抢占恢复
三模块协同集成
剪枝、低比特算子和调度/卸载模块共享同一份请求状态、Block Table 和缓存布局,通过显式反馈与两阶段提交保证资源一致性和安全回退,形成完整的推理优化链路。
系统架构概览
系统沿请求生命周期划分为四个层面:
各层通过显式状态和反馈连接,任何关键条件不满足时均采用 fail‑closed 策略,回退至完整重算或标准路径,确保状态一致性。
已验证系统
部署指南
环境要求
1. 克隆仓库并创建虚拟环境
2. 编译 CUDA 扩展
项目包含两个核心扩展,需分别编译。
QServe W4A8 Linear 扩展
KV8 FlashAttention 扩展
3. 安装修改后的 vLLM
4. 配置运行环境
加载优化环境脚本:
关键配置文件位于
config/目录:optimized.env**:控制 KV 剪枝、AnDPro 预算、物理回收、Inline 写入等开关。offload.json**:配置 CPU Offload 连接器(如 CPU 缓存大小、回收阈值等)。示例
offload.json:5. 启动优化服务
使用统一启动脚本:
该脚本会自动加载环境、配置参数,并启动 vLLM OpenAI API 服务。可通过环境变量覆盖模型路径、上下文长度、批处理上限等:
服务启动后可通过 OpenAI API 访问,例如:
实验效果(摘要)
在 L40S 上的端到端测试(WikiText 继续生成,32 请求,多种输入/输出长度组合)显示:
详细实验数据和配置请参见项目技术报告。
引用
本项目基于以下关键技术:
许可证
本代码仅供研究参考,具体许可请参见项目内 LICENSE 文件。
项目团队:欢迎通过 Issue 或邮件联系。