“认识vLLM:一个用于快速LLM推理和服务的开源机器学习库”

Introducing vLLM an open-source machine learning library for fast LLM inference and serving.

大型语言模型(LLM)对日常生活和职业产生越来越大的影响,因为它们使得像编程助手和通用聊天机器人这样的新应用成为可能。然而,这些应用的运行成本是巨大的,因为它们需要显著的硬件加速器,比如GPU。最近的研究表明,处理LLM请求的成本可能高达传统关键字搜索的十倍。因此,迫切需要提高LLM服务系统的吞吐量,以尽量降低每个请求的开销。

要实现大型语言模型(LLM)的高吞吐量服务,需要每次批处理足够多的请求,而现有的系统需要帮助。然而,现有系统需要帮助,因为每个请求的键值缓存(KV缓存)内存很大,并且可以动态增长和收缩。它需要小心管理,否则在管理不当时,碎片化和冗余复制会大大节省这个内存,从而降低批处理大小。

研究人员提出了PagedAttention作为解决此问题的注意力算法,它受到操作系统中传统虚拟内存和分页技术的启发。为了进一步减少内存利用率,研究人员还部署了vLLM。这个LLM服务系统几乎没有浪费KV缓存内存,并且可以在请求之间和内部灵活共享KV缓存。

vLLM利用PagedAttention来管理注意力的键和值。与HuggingFace Transformers相比,vLLM配备PagedAttention可以提供高达24倍的吞吐量,而无需对模型架构进行任何更改,重新定义了LLM服务的当前技术水平。

与传统的注意力算法不同,它们允许在非连续的内存空间中连续存储键和值。PagedAttention将每个序列的KV缓存划分为块,每个块包含预定数量的令牌的键和值。在注意力计算过程中,PagedAttention内核可以高效地识别这些块。由于这些块不一定需要是连续的,因此可以灵活地管理键和值。

内存泄漏只发生在PagedAttention序列的最后一个块中。在实际使用中,这导致了有效的内存利用率,只有4%的低效率。这种提高内存效率的改进可以提高GPU的利用率。

此外,PagedAttention还具有有效的内存共享功能。PagedAttention的内存共享功能大大减少了并行采样和波束搜索等采样技术所需的额外内存。这可以使其速度提高2.2倍,同时将内存利用率降低55%。这种改进使得这些采样技术对于大型语言模型(LLM)服务变得有用和有效。

研究人员对该系统的准确性进行了研究。他们发现,在与FasterTransformer和Orca等尖端系统相同的延迟量下,vLLM将知名LLM的吞吐量提高了2-4倍。更大的模型、更复杂的解码算法和更长的序列会导致更明显的改进。