跳至主要内容

什么是 vLLM?

vLLM 是用于大语言模型(LLM)的开源推理引擎。组织使用 vLLM 来提高其 LLM 的吞吐量和内存效率,从而支持可扩展的机器学习(ML)操作。vLLM 旨在使用 PagedAttention 算法克服 GPU 键值缓存(KV 缓存)中标准 LLM 内存管理的局限性。vLLM 可与各种现有模型、硬件加速器和并行化技术配合使用。

为什么 LLM 推理需要专用的服务引擎?

Amazon EKS 上的 vLLM 架构

在企业内部实施大语言模型意味着对于不断增长的用户群,您必须考虑推理延迟或请求回复周期。虽然 LLM 能提升生产力,但如果用户要等很久才能收到回复,这种提升就会大打折扣。LLM 必须能够在可接受的时间范围内处理越来越多的并发请求。

传统上,由于内存分配效率低下,LLM 可能会在推理时间方面遇到困难。每个序列,也就是用户请求和关联的令牌流,都分配给 GPU KV 缓存中预定义的连续块,最大不超过最大序列长度。键值缓存的内容为 LLM 生成后续响应提供了上下文。一次性将序列分配给缓存块会导致效率低下,因为大多数序列远未达到最大长度。在推理过程中,有些块仍未使用,内存变得碎片化。这会导致性能下降,影响需要并发处理的应用程序,例如聊天机器人。

专用 vLLM 引擎通过虚拟化克服了传统 KV 缓存的内存管理挑战,并改善了推理延迟。vLLM 推理引擎提供批处理、优化的内存用量和高吞吐量推理。

什么是 PagedAttention?

PagedAttention 是一种内存管理技术,可将连续逻辑块中的数据映射到不连续的物理块。这是 vLLM 和其他推理引擎之间的关键区别。PagedAttention 技术解决了键值缓存使用效率低下的问题,即传统推理引擎将键值张量按顺序存储在预分配的插槽中。PagedAttention 内存虚拟化技术类似于操作系统的虚拟内存和分页机制。

PagedAttention 将数据序列分成多个物理块。请考虑这些物理键值块。

PagedAttention 物理键值块表

它不是将整个序列保存在一个块中,而是分成几个不连续的块。在这种情况下,唯一浪费的内存空间是在序列的最后一个块中,而不是在每个序列的末尾浪费内存。因此,团队可以在生产系统中部署内存效率高的推理引擎,同时显著降低内存浪费。

vLLM 的工作原理是什么?

vLLM 使 LLM 能够通过 PagedAttention 和协调的分布式架构更高效地进行推理。它支持常用的模型,包括 Llama、Qwen 和 DeepSeek。通过使用 PagedAttention 算法来管理 KV 缓存,vLLM 允许机器学习团队使用更少的 GPU 运行模型。以下是 vLLM 的一些关键功能。

连续批处理

连续批处理是 vLLM 能够在解码槽可用时立即处理新查询,而不是等待所有先前的查询完成。vLLM 向现有请求批次添加新请求,进而最大限度地提高请求长度可变的 GPU 利用率。这些新请求可以在生成过程中添加。

预填和解码阶段

LLM 推理包括预填和解码阶段。在预填阶段,LLM 处理令牌,确定要存储在 KV 缓存中的键值张量。解码阶段使用 KV 缓存以迭代方式生成令牌。当序列结束或达到最大令牌数时,解码阶段即告完成。

分布式推理

分布式推理是将生成式人工智能模型的工作负载分配到多个 GPU 的过程。当模型无法放入单个 GPU 时,分布式推理是必需的,当模型的推理延迟较高时,也更适合采用分布式推理,以便容纳模型并加速推理。虽然 vLLM 具有集中式调度器、KV 缓存管理器、CPU 块分配器和 GPU 块分配器,但 LLM 的工作分布在多个 GPU 上。

vLLM 支持多种分布式推理方法:

  • 管线并行将不同的模型层分配给不同的 GPU。每个 GPU 完成处理后都会将结果传递给下一个 GPU。此方法有助于提高吞吐量,并且在模型太大而无法放入 GPU 时很有用。
  • 张量并行将每个层的模型权重矩阵分布在多个 GPU 上,从而有效地拆分层。当张量层太大而无法放入单个 GPU 的内存中时,vLLM 使用张量并行。
  • 专家并行允许您将混合专家(MoE)架构分布到不同的 GPU 上。MoE 是一种机器学习方法,可将神经网络分成多个较小的专家子网络,以便在 GPU 之间分布。使用专家并行,vLLM 可以处理传入的请求,并将令牌路由给 MoE 网络中最合适的专家。

量化

量化将张量权重压缩为较低精度的格式以减少内存空间。vLLM 支持多种量化格式,包括 INT8、INT4、FP8、GPTQ 和 AWQ。这样推理引擎就能够加速预填和解码,同时保持最小的准确性损失。

vLLM 的关键功能有哪些?

vLLM 使团队能够在 GPU 上部署、运行和扩展 LLM,并降低硬件成本。

兼容 OpenAI 的 API

机器学习团队可以直接通过兼容 OpenAI 的 HTTP 服务器提供模型。这允许 vLLM 充当 OpenAI 后端的直接替代品。通过安装 vLLM 并启动服务器,您可以从 HTTP 客户端访问 Completions API、Responses API 和 Chat Completions API 等 OpenAI API。

前缀缓存

前缀缓存允许 vLLM 在请求中遇到相同的前导令牌或短语时重用存储在 KV 缓存中的前缀。vLLM 会自动执行该过程,因此模型无需重新计算整个请求。这在聊天机器人中处理长文档查询或多轮对话时很有用。例如,vLLM 允许模型在生成响应时重用 KV 缓存中的聊天记录。

多 LoRA 推理服务

vLLM 支持部署中的多 LoRA。多 LoRA 是低秩适应(LoRA)技术的一种变体,用于微调大型模型。LoRA 没有重新训练整个模型,而是冻结了基本权重并将可训练的适配器注入到模型中。多 LoRA 的工作原理类似,但同时管理多个适配器。这允许多个经过微调的适配器共享一个 GPU,根据推理要求为每个请求选择适配器。因此,团队可以在单个 GPU 上提供许多自定义模型变体。

vLLM 有哪些应用场景?

vLLM 可帮助组织在扩展 LLM 时克服延迟问题。

实时推理 API

vLLM 提供实时推理 API,允许更有效地使用底层硬件。组织可以部署支持高并发聊天、代码生成或摘要的模型,即使在不同的请求负载下也能充分利用 GPU。这些工作负载利用持续批处理、PagedAttention 和量化等技术来加速推理。

多租户和多变体服务

部署多租户人工智能应用程序,为多个用户或应用程序提供服务,传统上需要从单个 GPU 为 LLM 提供服务。这通常会在扩展时导致延迟问题,这可以通过 vLLM 和并行技术来解决。vLLM 还使组织能够使用诸如多 LoRA 之类的技术,在单个 GPU 上托管多个模型变体。

离线批量推理

vLLM 支持离线或异步推理,允许批量处理数据集。例如,vLLM 适用于文档处理、数据集生成和评估管线。在为非即时分析生成预测时,这些工作负载优先考虑高吞吐量而不是低延迟。

vLLM 在什么硬件上运行?

Amazon EC2 Trainium 上的 vLLM

vLLM 支持来自不同制造商的 CPU、GPU 和人工智能加速器。

例如,vLLM 支持:

  • NVIDIA CUDA GPU,允许您运行 CUDA 内核并支持 FlashAttention。
  • AMD ROCm GPU,允许您使用 ROCm 软件堆栈运行推理。
  • AWS Inferentia2 和 Trainium 由 AWS 设计的人工智能加速器,允许您与 AWS Neuron 完整 SDK 集成,并支持持续批处理。

vLLM 支持的其他硬件包括 Intel CPU/GPU、ARM、Google TPU、IBM Spyre 和华为 Ascend NPU。

使用 AWS Neuron 在 vLLM 上部署模型时,请注意首次加载延迟,因为 Neuron 在推理之前会将模型编译成构件。要减少延迟,请实现预编译并缓存构件。

vLLM 的关键部署注意事项是什么?

虽然 vLLM 可大规模提供高吞吐量推理,但您应考虑多个因素,帮助实现安全高效的部署。

实例大小调整

规划 GPU 要求,使其与工作负载规模相匹配。这包括 LLM 典型的模型权重、KV 缓存和激活内存。如果您要部署大型模型,比如 Meta 的 Llama 3.3 70B,可以考虑应用张量或管线并行等优化技术。此外,您可以通过量化缩小模型的大小,使其适配 GPU 并满足容量规划要求。

延迟与吞吐量的权衡

传统上,连续批处理可以提高总体吞吐量,但会增加高并发工作负载的首令牌时延(TTFT)。这是因为推理引擎尝试在同一个实例中处理预填充和解码阶段,而预填充会阻塞解码步骤,从而增加延迟。vLLM 允许机器学习工程师实现分解式预填充,将预填充和解码放在不同的实例上。此外,您可以减少模型引擎中的 max-num-seqs 以减少 KV 空间用量,代价是吞吐量会降低。

身份验证和网络安全

vLLM 的设计没有默认的安全措施。如果没有内置身份验证,第三方可以通过公开的 API 访问模型。在为企业部署 vLLM 时,限制公共网络对推理引擎的访问。在 vLLM 连接的媒体、容器和端点上使用访问控制等保护措施。例如,您可以将 vLLM 置于 Amazon API Gateway 后面,以便为非流式传输工作负载启用强大的身份验证。对于流式传输工作负载,您可以使用应用程序负载均衡器。

AWS 如何支持您的 vLLM 部署需求?

AWS 支持基于 vLLM 的推理工作负载,提供一系列基础设施和托管服务。考虑以下服务:

  • Amazon Bedrock 是用于在生产规模构建生成式人工智能应用程序和智能体的平台。Amazon Bedrock 支持 vLLM 推理,包括常用开源模型的多低秩适应(Multi-LoRA)服务。
  • Amazon EC2 Inf2 实例专为深度学习推理而构建。此类实例在 Amazon EC2 中以最低的成本为生成式人工智能模型(包括 LLM 和视觉转换器)提供高性能。要在 Inf2 上运行 vLLM,您需要使用 AWS Neuron SDK。
  • Amazon SageMaker AI 是一项完全托管的服务,汇集最全面的人工智能工具和功能,可助力为任何使用案例开发高性能、低成本的人工智能模型。与 Bedrock 类似,Amazon SageMaker AI 支持 vLLM 推理。

立即创建免费账户,开始在 AWS 上使用 vLLM 推理。

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

正在加载
正在加载
正在加载
正在加载
正在加载

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages