什么是 vLLM?

复制 URL

vLLM 是虚拟大语言模型的简称,它是一个由 vLLM 社区维护的开源代码库。该代码库有助于大型语言模型(LLM)更高效地大规模执行计算。

vLLM 包含一个推理服务器(用于管理网络流量)和一个推理引擎(用于最大限度地提高计算速度)。它的工作原理是通过其 PagedAttention 算法更好地利用 GPU 内存,从而加快生成式 AI 应用的输出速度。 

vLLM 的总体目标是最大限度地提高吞吐量(每秒处理的词元数),以便同时为许多用户提供服务。 

探索红帽 AI

要了解 vLLM 的价值,必须了解推理服务器的用途以及 LLM 运行的基本机制。在此基础上,我们可以更好地理解 vLLM 如何在提高现有语言模型的性能方面发挥作用。

关注 vLLM 办公时间,了解最新进展

什么是推理服务器?

推理服务器是一种基于人工技术的软件,可帮助 AI 模型根据之前的训练得出新结论。推理服务器通过机器学习模型馈送输入请求并返回输出。

推理是指根据证据得出结论的过程。举个例子,您看到朋友家客厅的灯亮着,但没见到人。您可能会推断家中有人,但没有确凿的证据来证明这一点。

语言模型只是一个软件,它也没有关于字词含义的确凿证据,因此它以训练数据为依据。经过一系列基于数据的计算后,它会生成一个结论。就像如果灯关着,您就会推算出您的朋友不在家一样。

进一步了解 AI 推理

LLM 基于数学运算得出结论

对 LLM 进行训练时,它通过数学运算来学习。当 LLM 生成响应(推理)时,它是通过执行一系列概率运算(更多是数学运算)来实现的。

为了理解您的请求,LLM 需要了解字词之间的关系以及如何在字词之间建立关联。与人类使用语义和推理来理解字词不同,LLM 是通过数学运算来“推理”的。

如果 LLM 每天要响应数百万用户,它需要进行大量计算。在应用实时运行时,立即处理所有这些计算是一项不小的挑战。这是因为(传统上)运行 LLM 所需的处理能力会迅速消耗大量内存。

vLLM 架构升级会不断提升内存和速度等方面的资源利用效率。

AI 技术在企业中是什么样?

红帽 AI

《采用 PagedAttention 的大语言模型的高效内存管理》是一项具有里程碑意义的研究,它发现,现有 LLM 内存管理系统无法以最高效的方式分配计算任务。PagedAttention 是 vLLM 引入的一种内存管理技术,其灵感来自操作系统中的虚拟内存和分页系统。

这项研究明确了键值(KV)缓存(LLM 的短期记忆)在吞吐过程中如何增大和缩小,且提出将 vLLM 作为以更稳定的方式管理内存和计算能力的解决方案。

从本质上讲,vLLM 是一套指令,它促使 KV 缓存通过不断批处理用户响应来创建快捷方式。

我们先简单了解一下什么是 KV 缓存和连续批处理。

什么是 KV 缓存?

KV 是键值的简称。键值是 LLM 确定字词含义的一种方式。假设您将要处理菜单上某个菜品的键值:炸薯条(键)的价格为 3.99 美元(值)。因此,当收银员针对炸薯条结账时,与该“键”对应计算出的“值”为 3.99 美元。LLM 处理 KV 的方式与此类似,它是将每个键(或词元)所对应的值保存到缓存中。

缓存是指一种短期内存存储。以您的个人电脑为例,当运行缓慢时,常见的做法是“清除缓存”以腾出空间,使其更流畅、更快地运行。

什么是连续批处理?

连续批处理是一种可同时处理多个查询的技术,旨在提高整体处理效率。

试想一下:一个聊天机器人每分钟都会收到数千个查询,其中许多查询的问题类似,比如“印度的首都是哪里?”以及“爱尔兰的首都是哪里?”这两个查询均包含字词“的首都是哪里”,这是一个由多个词元(字词)组成的字符串,LLM 必须进行大量计算以提取其含义。

借助 vLLM,聊天机器人可以将这个词元字符串(“的首都是哪里”)存储在短期记忆(KV 缓存)中,并发送一个“翻译请求”,而非发送两个单独的请求。

换句话说,vLLM 并非生成全新的响应,而是允许 KV 缓存保存记忆,并为与之前计算过的查询类似的新查询创建快捷方式。批量处理(而不是逐个处理)类似查询的计算方式可以提高吞吐量并优化内存分配。 

vLLM 有助于优化内存并扩展词元容量,以支持更大的批处理规模和长文本上下文任务。

什么是模型即服务?

借助 vLLM,企业组织能够在硬件成本高昂的 LLM 应用市场中实现“事半功倍”。

要构建具有成本效益且可靠的 LLM 服务,需要大量的计算能力、能源资源以及专业的运维技能。这些挑战会导致许多企业组织无法享受定制、部署就绪且更注重安全的 AI 的优势。

vLLM 和它所基于的 PagedAttention 算法旨在通过更高效地利用支持 AI 工作负载所需的硬件来应对这些挑战。

vLLM 的优势

将 vLLM 作为 LLM 的推理服务器具有以下好处:

更快的响应速度:根据某些计算,vLLM 的吞吐量(LLM 可处理的数据量)是 Hugging Face Transformers(一个用于处理 LLM 的热门开源库)的 24 倍

降低硬件成本:更高效地利用资源意味着处理 LLM 所需的 GPU 数量减少。对于使用超大型 LLM(具有数千亿个参数)的企业组织而言,vLLM 有助于保持效率。具体而言,vLLM 可以与分布式推理等技术结合使用,从而充分利用现有硬件并降低成本。 

可扩展性:vLLM 可对虚拟内存进行分配,使得 GPU 可以同时处理来自用户的更多请求。这对于代理式 AI 应用尤其重要,因为此类应用必须同时处理许多请求才能完成一项多步骤任务。

数据隐私:与使用第三方 LLM 服务或应用(如 ChatGPT )相比,使用 vLLM 自托管 LLM 可以让您更好地控制数据隐私和使用。

开源创新:社区参与 vLLM 的维护和持续发展,因此代码能够不断优化。用户访问和修改代码方式的透明化让开发人员可以根据需求自由使用 vLLM。 

了解如何使用 vLLM 部署 Llama

PagedAttention 是 vLLM 中的主要算法。不过,PagedAttention 并不是 vLLM 的唯一功能。vLLM 可提供的其他性能优化包括:

  • PyTorch 编译/CUDA Graph - 用于优化 GPU 内存。
  • 量化 - 用于减少运行模型所需的内存空间。
  • 张量并行 - 用于将处理任务分配到多个 GPU 上。
  • 推测解码 - 使用较小的模型来预测词元,并使用较大的模型来验证预测结果,从而加快文本的生成速度。
  • 闪存注意力机制 - 用于提高 Transformer 模型的效率。

除了 vLLM 的优化能力之外,其灵活性也促进了它的普及。vLLM 可与小型和大型语言模型组合使用,且集成了热门的模型和框架。最后,vLLM 还具有开源特性,因此可实现代码透明、可定制以及更快地修复错误。 

了解 vLLM 如何为开源社区提供推理支持

vLLM 和 llm-d 

llm-d 是一个开源框架,集成了 vLLM 的强大功能,并在此基础上进行构建。它是一套用于执行分布式推理的方案,专为支持 LLM 不断增长的资源需求而构建。 

可以这样理解,如果 vLLM 有助于提高速度,那么 llm-d 则有助于协调。vLLM 和 llm-d 协同工作,通过模型智能路由流量,并尽可能快速高效地进行处理。 

了解 llm-d

红帽® AI 巧借开源创新的力量来应对大规模企业 AI 带来的挑战,vLLM 是我们工具箱中的一个关键工具。

借助红帽 AI,您就可以访问红帽® AI 推理服务器,在混合云上优化模型推理,从而实现更快、更具成本效益的部署。推理服务器由 vLLM 提供支持,可最大限度提高 GPU 利用率,加快响应速度。

进一步了解红帽 AI 推理服务器

红帽 AI 推理服务器包含红帽 AI 资源存储库,这是一个经过第三方验证和优化的模型集合,既能确保模型具有灵活性,又可确保跨团队一致性。通过接入第三方模型存储库,企业能够显著缩短推向市场所需的时间,并降低 AI 应用成功的资金门槛。  

探索 Hugging Face 上的存储库

进一步了解经红帽 AI 验证的模型

红帽 AI 依托开源技术和广泛的合作伙伴生态系统,致力于在各类基础架构上实现卓越的性能、稳定性以及 GPU 支持。

浏览我们的合作伙伴生态系统

资源

开启企业 AI 之旅:新手指南

此新手指南介绍了红帽 OpenShift AI 和红帽企业 Linux AI 如何加快您的 AI 采用之旅。

红帽 AI

红帽 AI 提供灵活且经济高效的解决方案,可加速混合云环境中 AI 解决方案的开发和部署。

扩展阅读

什么是分布式推理?

分布式推理通过将推理任务分配给一组互联设备,从而使 AI 模型更高效地处理工作负载。

什么是模型上下文协议(MCP)?

了解模型上下文协议(MCP)如何将 AI 应用连接到外部数据源,助您构建更加智能的工作流。

AIOps 详解

AIOps 即“面向 IT 运维的 AI”(AI for IT operations),是一种利用机器学习及其他先进 AI 技术来实现 IT 运维自动化的方法。

AI/ML 相关资源

特色产品

  • 红帽 OpenShift AI

    一个人工智能 (AI) 平台,提供工具来快速开发、训练、服务和监控模型以及支持 AI 应用。

相关文章