Want to Become a Sponsor? Contact Us Now!🎉

LLM
vLLM:采用PagedAttention改变LLM服务方式的革命

vLLM:采用PagedAttention改变LLM服务方式的革命

Published on

了解vLLM如何凭借PagedAttention改变LLM服务方式,提供前所未有的速度和效率。

大家好!今天,我们将深入研究在人工智能社区中引起轰动的一项技术 - vLLM。如果你对人工智能和大型语言模型(LLMs)感兴趣,那么你一定要听听这个。vLLM不仅仅是另一个工具,它是一款改变我们使用和利用LLMs的游戏改变者,使其更快、更高效,并且能够适应更广泛的项目和团队。准备好了吗?因为我们即将探讨vLLM的独特之处,以及它为何可能是我们一直在期待的突破。

Anakin AI - The Ultimate No-Code AI App Builder

在人工智能领域,大型语言模型(LLMs)的潜力是革命性的。这些模型有可能改变行业,提供与技术互动和处理信息的新方式。然而,提供这些模型的现实情况却充满了挑战。它们需要大量的计算资源,尽管强大的硬件已经可用,但提供LLMs的速度却令人惊讶地慢且昂贵。这就是 vLLM 出现的背景,它是人工智能技术中常常波涛汹涌中的一片创新光芒。

vLLM:通过PagedAttention实现简单、快速和廉价的LLM服务

由加利福尼亚大学伯克利分校的一个团队于2023年6月20日推出,vLLM向我们证明了协作创新的力量。vLLM由Woosuk Kwon、Zhuohan Li、Siyuan Zhuang、Ying Sheng、Lianmin Zheng、Cody Yu、Joey Gonzalez、Hao Zhang和Ion Stoica开发。vLLM直面LLM服务的核心问题,通过使用一种名为PagedAttention的新颖注意力算法,显著优于现有解决方案,提供更高的吞吐量和效率。

主要亮点

  • GitHub | 文档 | 论文vLLM (opens in a new tab)是一个开源宝库,供那些想要深入研究技术细节或者从自己的LLM服务需求 (opens in a new tab)入手的人使用。
  • 无与伦比的性能:在基准测试中,vLLM的吞吐量比HuggingFace Transformers等流行库高出多达24倍,而且无需对模型架构进行任何更改。

其成功的秘密:PagedAttention

  • PagedAttention从根本上解决了LLM服务中的内存瓶颈问题。通过更有效地管理注意力键和值,它实现了高吞吐量和高效的内存使用。
  • 灵活性和效率:受操作系统中虚拟内存系统的启发,PagedAttention将键和值存储在非连续的内存块中,实现了动态且高效的内存管理。
  • 优化的内存使用:这种方法大大减少了内存浪费,提高了GPU利用率,从而实现更好的性能。

实际应用和影响

  • 实际部署:vLLM已经在Chatbot Arena和Vicuna Demo等平台上得到了应用,证明了它在为数百万用户提供服务方面的有效性。
  • 成本效益:通过提高吞吐量和减少GPU需求,vLLM使小团队能够以合理的价格提供LLM服务,使广大人群能够接触到尖端的人工智能技术。

开始使用vLLM

对于那些急于动手的人来说,开始使用vLLM非常简单,只需从GitHub上运行一个命令进行安装即可。无论您是想进行离线推理还是设置在线服务系统,vLLM都提供了灵活性和易用性。

  • 安装:简单且用户友好,只需要运行一个命令即可快速开始使用。
  • 使用场景:支持多种用例,从对数据集的批处理推理到构建与OpenAI API兼容的在线服务的服务器端。

vLLM实战:步骤指南

为了让您了解使用vLLM的工作过程,这里有一个快速介绍:

  1. 离线批处理推理:学习如何使用vLLM从一系列提示中进行高吞吐量文本生成。
  2. 构建API服务器:逐步了解设置用于LLM服务的API服务器的过程,兼容OpenAI API。
  3. 高级功能:探索vLLM的能力,包括并行采样和波束搜索,了解它如何轻松处理复杂的采样算法。

vLLM为LLM服务铺平了道路,使其更加易用、高效和可扩展。无论您是研究人员、开发人员还是一个对人工智能感兴趣的人,vLLM都为突破大型语言模型所能做到的极限提供了机会。现在,让我们深入了解技术细节,看看vLLM的实际效果。

更深入地了解vLLM

vLLM不仅因其出色的性能而脱颖而出,还因其易用性而备受关注。它与现有工具和工作流程无缝集成,成为各种LLM服务需求的多功能选择。

vLLM的核心功能

vLLM提供了一系列功能,解决了与LLM服务相关的许多挑战:

  • 最先进的服务吞吐量:通过优化的CUDA核心和创新的PagedAttention算法,vLLM实现了无与伦比的服务速度。
  • 高效的内存管理:通过PagedAttention,vLLM有效地管理注意力键和值的内存,大大减少了LLM推理的内存占用。
  • 持续批处理:vLLM可以持续批处理传入的请求,最大限度地提高了硬件利用率和吞吐量。
  • 优化的CUDA核心: 使用自定义的CUDA核心可以进一步提高性能,确保vLLM尽可能高效地运行。

使用vLLM和LangChain入门

由于vLLM与流行的Python包兼容,将vLLM集成到项目中非常简单。以下是快速入门指南:

  1. 安装: 确保已安装vllm Python包,可以使用pip进行安装:

    %pip install --upgrade --quiet vllm -q
  2. 基本用法: 首先从langchain_community.llms包中导入VLLM,并使用所需的模型进行初始化。以下是一个示例:

    from langchain_community.llms import VLLM
     
    llm = VLLM(
        model="mosaicml/mpt-7b",
        trust_remote_code=True,  # hf models的必备参数
        max_new_tokens=128,
        top_k=10,
        top_p=0.95,
        temperature=0.8,
    )
     
    print(llm.invoke("法国的首都是什么?"))

    这个简单的脚本演示了如何进行推断,返回“巴黎”作为法国的首都。

使用LLMChain增强推断

对于更复杂的推断任务,可以将vLLM集成到LLMChain中,以实现复杂的提示工程和处理:

from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
 
template = """问题: {question}
 
答案: 让我们一步一步地来思考。"""
prompt = PromptTemplate.from_template(template)
 
llm_chain = LLMChain(prompt=prompt, llm=llm)
 
question = "第一款宝可梦游戏发布的年份,美国总统是谁?"
 
print(llm_chain.invoke(question))

这种方法能够进行逐步推理,提供复杂问题的详细答案。

分布式推测和量化

vLLM支持高级功能,如分布式推测和量化,适用于高需求的环境:

  • 分布式推测:要利用多个GPU,只需在初始化VLLM时设置tensor_parallel_size参数。
  • 量化:vLLM还支持AWQ量化,可以显著减少模型的内存占用,而不降低性能。

兼容OpenAI的服务器

vLLM最强大的功能之一是能够模仿OpenAI API协议,成为当前使用OpenAI API的应用程序的即插即用替代品。这种能力为部署高效、可扩展的LLM解决方案打开了无限可能。

结论:vLLM为LLM服务的未来

vLLM代表了LLM服务技术的重大飞跃。凭借其高吞吐量、高效的内存管理和易用性的结合,vLLM定位成为人工智能领域的关键参与者。无论是增强现有应用程序还是探索LLM的新可能性,vLLM都提供了工具和性能,使您的项目取得成功。随着社区不断探索和拓展vLLM的功能,我们可以期待更多创新应用和改进的出现。

Anakin AI - The Ultimate No-Code AI App Builder