关于vLLM框架

文章目录

1. Vllm是什么?

vLLM 是 UC Berkeley 开发的高性能大模型推理引擎,核心原理是通过 PagedAttention (分页注意力) 革命性地管理 KV 缓存 ,并配合 连续批处理 等调度优化,实现极高的吞吐量和显存利用率。

内存革命:PagedAttention 彻底解决 KV Cache 碎片与浪费。

调度极致:连续批处理 让 GPU 永不停歇。

高效共享:前缀缓存 大幅降低重复计算与存储。

多卡扩展:原生支持张量并行,轻松跑 7B/13B/70B 模型。

2. Page attention

传统注意力的致命问题:

  • 每个请求要预分配一大块连续显存
  • 请求长短不一 → 大量空间闲置
  • 显存碎片多 → 并发量极低
  • 显存利用率只有 20%~40%

具体步骤:

  1. 分页(切小块)
    把 KV 缓存切成固定大小的块(如 16 个 token 一块)不再需要整块连续显存。
  2. 块表映射(逻辑→物理)
    用一个 ** 块表(Block Table)** 记录:
    逻辑上连续的 token
    物理上分散的块
    注意力计算时自动按表寻址。
  3. 按需分配 + 即时回收
    生成新 token → 申请新块
    结束请求 → 释放块
    内存零浪费、零碎片

Pageattenion 的优化:

  • 不要求连续空间
  • 用多少租多少
  • 块可以散着放
  • 显存利用率接近 100%

将大模型推理时的 KV 缓存 切分成固定大小的块(Block),实现非连续存储、按需分配、高效复用,彻底解决传统注意力机制中 显存碎片化、利用率低、无法高并发 的核心痛点。

总结:

借鉴操作系统虚拟内存思想,将 KV 缓存切分为固定大小的物理块,通过块表实现非连续存储与按需分配,彻底解决传统推理显存碎片化难题,大幅提升显存利用率与高并发推理吞吐量。

3.连续批处理、

举个简单例子:

传统批处理:等所有人做完才能一起交卷;

连续批处理:谁做完谁立刻走,空位马上补新人,GPU 永远满负荷干活。

传统调度策略:

一批请求必须同时开始、同时结束

长文本会拖住短文本,造成巨大等待

GPU 大量时间空转,利用率极低

并发上不去,延迟极高

vllm调度策略

  1. 以 Token 为单位迭代
    不是按 "整个请求" 调度,而是每生成一个 Token 就做一次调度。
  2. 动态退出
    某个请求生成完毕 → 立刻退出 → 释放显存与算力。
  3. 无缝插入
    空出位置 → 等待队列中的请求立即补入。
  4. 无空闲、无等待
    GPU 永远在计算,没有任何空转时间。

总结

采用 vLLM 连续批处理动态调度,以 Token 迭代为粒度实现请求的动态退出与无缝插入,打破传统静态批处理的队头阻塞问题,最大化 GPU 利用率,显著提升医疗场景高并发推理的吞吐量与响应速度。

4. 前缀缓存

举一个最直观的例子:

你的医疗模型所有请求都带固定开头:

复制代码
你是专业医疗助手,请根据以下信息给出诊疗意见:

然后每个用户的问题不同。

传统推理:

3 个请求 → 计算 3 次前缀 KV → 存 3 份

vLLM 前缀缓存:

3 个请求 → 计算 1 次前缀 KV → 共享 1 份

省显存、提速、降时延

核心原理

相同前缀的 Block 只存一份

用引用计数管理共享块

采用 写时复制(Copy-on-Write)

前缀一样时:共享

前缀开始不一样时:自动复制一份,独立生成

完全透明,不影响模型输出

总结

基于 vLLM 前缀缓存(Prefix Sharing)技术,实现多请求间相同前缀序列的 KV 缓存共享,结合写时复制机制避免重复计算与显存冗余,大幅提升医疗场景高并发推理的吞吐量与显存利用率

相关推荐
Hrain-AI9 小时前
企业本地推理引擎选型实战:Ollama、vLLM 与 MLX 怎么挑
vllm
摸鱼仙人~10 小时前
从 AI 应用开发到 GPU 计算软件:一份完整的 GPGPU、PyTorch、vLLM 与 AI Infra 学习路线
人工智能·pytorch·vllm
程序猿编码1 天前
不依赖 vLLM/llama.cpp:一套面向学习的 DeepSeek-R1 CUDA 推理实现
c++·学习·语言模型·llama·vllm·大模型推理
缘友一世1 天前
GLM5.3 CyberSec w4A16本地部署[10]:CUDA 图捕获与编译开关
ubuntu·vllm·glm5.3 cybersec
缘友一世1 天前
GLM5.3 CyberSec w4A16本地部署[15]:抗退化采样与思考档
ubuntu·vllm·glm5.3 cybersec
Soonyang Zhang3 天前
aisimulate分析(一)——算子workload建模
仿真·1024程序员节·vllm·推理框架·sglang
缘友一世3 天前
GLM5.3 CyberSec w4A16本地部署[9]:MTP 调参(num_speculative_tokens 的选择及其负载相关性)
ubuntu·vllm·glm5.3 cybersec
喜欢打篮球的普通人3 天前
AI 编译器的五大挑战与未来:从 TVM、XLA 到自动并行
vllm
GPUStack4 天前
DeepInfer 能否跑赢 vLLM?GPUStack 八卡 B200 实测结果来了
llm·vllm·大模型推理·deepseek·gpustack·deepinfer
缘友一世4 天前
GLM5.3 CyberSec w4A16本地部署[6]:加载链路与磁盘规划
ubuntu·vllm·glm5.3 cybersec