Press "Enter" to skip to content

见识vLLM:一个开源的LLM推理和服务库,可以将HuggingFace Transformers加速24倍

见识vLLM:一个开源的LLM推理和服务库,可以将HuggingFace Transformers加速24倍 机器学习 第1张见识vLLM:一个开源的LLM推理和服务库,可以将HuggingFace Transformers加速24倍 机器学习 第2张

大型语言模型(LLMs)是人工智能(AI)领域的一项重大突破性进展。这些模型(例如 GPT-3)彻底改变了自然语言理解。由于这些模型具有解释大量现有数据和生成类似人类的文本的能力,因此这些模型具有巨大的潜力,可以塑造人机交互和通信的未来并开启新的可能性。然而,尽管 LLMs 取得了巨大的成功,但与此类模型通常相关的一个显著挑战是它们的计算效率低下,即使在最强大的硬件上也会导致性能缓慢。由于这些模型包含数百万乃至数十亿个参数,因此训练此类模型需要广泛的计算资源,内存和处理能力,并非总是可用。此外,这些具有缓慢响应时间的复杂体系结构可能使 LLMs 无法实用于实时或交互式应用程序。因此,解决这些挑战变得至关重要,以释放 LLMs 的全部潜力并使其好处更广泛地可用。

针对这个问题陈述,加州大学伯克利分校的研究人员开发了 vLLM,这是一个开源库,是 LLM 推理和服务的一个更简单,更快速,更便宜的替代方案。目前,大型模型系统组织(LMSYS)正在使用该库来驱动其Vicuna和 Chatbot Arena。通过切换到 vLLM 作为其后端,与最初基于 HuggingFace 转换器的后端相比,研究组织已成功高效地处理峰值流量(比以前多 5 倍),同时使用有限的计算资源并降低高运营成本。目前,vLLM 支持几个 HuggingFace 模型,如 GPT-2,GPT BigCode 和 LLaMA 等。它的吞吐量水平比 HuggingFace Transformers 高 24 倍,同时保持相同的模型架构,而不需要任何修改。

作为其初步研究的一部分,伯克利研究人员确定,与 LLMs 的性能相关的主要限制是与内存相关的问题。LLMs 使用输入令牌生成注意力键和值张量,然后将其缓存在 GPU 内存中,以生成后续令牌。这些动态的键和值张量,称为 KV 缓存,占用了大量内存,并且管理它们变得非常繁琐。为了解决这一挑战,研究人员引入了创新的 PagedAttention 概念,这是一种新颖的注意力算法,它将操作系统中的分页概念扩展到 LLM 服务中。PagedAttention 提供了一种更灵活的方法来管理关键和值张量,方法是将它们存储在非连续的内存空间中,从而消除了对连续长内存块的要求。在注意力计算期间,可以使用块表独立地检索这些块,从而提高了内存利用率。采用这种巧妙的技术将内存浪费降至不到 4%,从而实现了近乎最优的内存使用。此外,PagedAttention 可以批处理 5 倍以上的序列,从而提高了 GPU 利用率和吞吐量。

PagedAttention 还提供了高效内存共享的额外好处。在并行采样期间,即从单个提示同时创建多个输出序列时,PagedAttention 使得与该提示相关的计算资源和内存可以共享。这是通过利用块表实现的,其中 PagedAttention 中的不同序列可以通过将逻辑块映射到相同的物理块来共享块。通过采用这种内存共享机制,PagedAttention 不仅最小化了内存使用,而且还确保了安全共享。研究人员进行的实验评估表明,并行采样可以将内存使用减少高达 55%,从而使吞吐量增加了 2.2 倍。

总之,vLLM 通过实现 PagedAttention 机制有效地处理了注意力键和值内存的管理。这导致了出色的吞吐性能。此外,vLLM 与众所周知的 HuggingFace 模型无缝集成,并可以与不同的解码算法(如并行采样)一起使用。该库可以使用简单的 pip 命令进行安装,目前可用于离线推理和在线服务。

Leave a Reply

Your email address will not be published. Required fields are marked *