简单聊聊vLLM并行推理加速框架
来源:互联网
时间:2026-08-05 16:46:32
大模型推理框架如今已经有不少成熟的选择,比如 vLLM、Tensorrt-LLM、DeepSpeed、Text Generation Inference(TGI),以及各家的原生 LLM 实现。今天这篇文章,我们重点聊聊 vLLM——一个在并行推理加速上很能打的框架。

对相关技术与理论的了解有助于我们在遇到各种问题时,能有对应的分析思路与解决策略;可以说这是一个知识广度的积累。虽然说,掌握其完整的设计原理与概念理论比较难,但知其逻辑是非常有必要的,尤其是应用场景。
vLLM
概述
- 来自加州大学伯克利分校、斯坦福大学、加州大学圣迭戈分校的研究人员,基于操作系统中经典的虚拟内存和分页技术,提出了一个新的注意力算法——PagedAttention,并以此打造了一个LLM服务系统:vLLM。
背景:
- vLLM通过借鉴虚拟内存的原理,采用固定大小的块和动态映射的方式,有效管理了内存,减少了浪费。从命名来看,其中的“v”就是指虚拟内存。
原理简介:
官方介绍文档翻译:PagedAttention(vLLM):更快地推理你的GPT。
对于模型的批量推理或并行推理,需要解决以下几个关键问题:
- 不同请求生成的文本长度差异很大,且难以预测。如果没有一个机制能将已生成结束的请求从Batch中移除并提前返回结果,那么只能等一个Batch内所有请求都完成生成后才能返回。结果是生成长文本的用户拖慢短文本的用户,导致后者多等数秒甚至数十秒,这对服务响应时间非常不利。
对Early-finished Requests的处理:
- 完整生成一段文本需要数秒到数十秒,时间漫长。如果没有一个机制能将新请求插入到正在推理的Batch中,那就只能像CV业务那样排着队等,前面的请求全部完成才能处理后面的。这会导致请求在系统中长时间排队,响应时间变得不可接受。
对Late-joining Requests的处理:
- 每个请求对应的QKV Tensor的Length维度各不相同,批量计算Attention时如何处理?Padding加Masking的方法虽然可行,但严重浪费算力和显存,对于资源有限的推理GPU非常不利。
Batching an arbitrary set of requests:
vLLM通过PagedAttention技术和“先来先服务(FCFS),后来先抢占,GPU不够就先把数据swap到CPU上”的调度策略,在一个推理阶段内尽可能多地处理请求,从而解决高并发场景下的推理吞吐问题。这就是vLLM运作的核心思想。
应用
那么vLLM到底解决了什么问题?下面是几个关键点:
- vLLM通过将大型语言模型分解为多个部分,可以在不同设备上并行执行(如CPU、GPU或TPU),从而加速推理。
分区(Partitioning):
- 利用虚拟内存技术来管理模型数据,减少实际内存占用,提高数据访问速度。
虚拟内存(Virtual Memory):
- 将模型参数和输入数据从浮点数转换为低精度表示(如8位或4位整数),减少参数量和计算量,加快推理。
量化(Quantization):
- 通过蒸馏技术,将大型教师模型的知识传递给小型学生模型,学生模型参数更少但性能接近,从而加速推理。
蒸馏(Distillation):
- 部分层保持浮点数,其他层使用低精度,在不大幅牺牲性能的前提下提高速度。
混合精度(Mixed Precision):
- 利用多核或多设备并行执行模型的一部分,显著提升推理速度。
并行计算(Parallel Computing):
以上是概念性的总结。在实际应用中,vLLM的
并行计算
虚拟内存
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名