首页 > 教程攻略 > ai资讯 >简单聊聊vLLM并行推理加速框架

简单聊聊vLLM并行推理加速框架

来源:互联网 时间:2026-08-05 16:46:32

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

简单聊聊vLLM并行推理加速框架

对相关技术与理论的了解有助于我们在遇到各种问题时,能有对应的分析思路与解决策略;可以说这是一个知识广度的积累。虽然说,掌握其完整的设计原理与概念理论比较难,但知其逻辑是非常有必要的,尤其是应用场景。

vLLM

概述

  • 背景:

    来自加州大学伯克利分校、斯坦福大学、加州大学圣迭戈分校的研究人员,基于操作系统中经典的虚拟内存和分页技术,提出了一个新的注意力算法——PagedAttention,并以此打造了一个LLM服务系统:vLLM。
  • 原理简介:

    vLLM通过借鉴虚拟内存的原理,采用固定大小的块和动态映射的方式,有效管理了内存,减少了浪费。从命名来看,其中的“v”就是指虚拟内存。

官方介绍文档翻译:PagedAttention(vLLM):更快地推理你的GPT。

对于模型的批量推理或并行推理,需要解决以下几个关键问题:

  1. 对Early-finished Requests的处理:

    不同请求生成的文本长度差异很大,且难以预测。如果没有一个机制能将已生成结束的请求从Batch中移除并提前返回结果,那么只能等一个Batch内所有请求都完成生成后才能返回。结果是生成长文本的用户拖慢短文本的用户,导致后者多等数秒甚至数十秒,这对服务响应时间非常不利。
  2. 对Late-joining Requests的处理:

    完整生成一段文本需要数秒到数十秒,时间漫长。如果没有一个机制能将新请求插入到正在推理的Batch中,那就只能像CV业务那样排着队等,前面的请求全部完成才能处理后面的。这会导致请求在系统中长时间排队,响应时间变得不可接受。
  3. Batching an arbitrary set of requests:

    每个请求对应的QKV Tensor的Length维度各不相同,批量计算Attention时如何处理?Padding加Masking的方法虽然可行,但严重浪费算力和显存,对于资源有限的推理GPU非常不利。

vLLM通过PagedAttention技术和“先来先服务(FCFS),后来先抢占,GPU不够就先把数据swap到CPU上”的调度策略,在一个推理阶段内尽可能多地处理请求,从而解决高并发场景下的推理吞吐问题。这就是vLLM运作的核心思想。

应用

那么vLLM到底解决了什么问题?下面是几个关键点:

  1. 分区(Partitioning):

    vLLM通过将大型语言模型分解为多个部分,可以在不同设备上并行执行(如CPU、GPU或TPU),从而加速推理。
  2. 虚拟内存(Virtual Memory):

    利用虚拟内存技术来管理模型数据,减少实际内存占用,提高数据访问速度。
  3. 量化(Quantization):

    将模型参数和输入数据从浮点数转换为低精度表示(如8位或4位整数),减少参数量和计算量,加快推理。
  4. 蒸馏(Distillation):

    通过蒸馏技术,将大型教师模型的知识传递给小型学生模型,学生模型参数更少但性能接近,从而加速推理。
  5. 混合精度(Mixed Precision):

    部分层保持浮点数,其他层使用低精度,在不大幅牺牲性能的前提下提高速度。
  6. 并行计算(Parallel Computing):

    利用多核或多设备并行执行模型的一部分,显著提升推理速度。

以上是概念性的总结。在实际应用中,vLLM的

并行计算

虚拟内存

两大关键能力,很好地解决了模型并行的问题。之前在“聊聊ChatGLM3多用户并发API调用的问题”一文中曾提到过相关背景,而通过vLLM推理框架,单卡24GB显存下就能支持5到10个并发请求的访问,效果相当出色。