小羊驼背后的英雄,伯克利开源LLM推理与服务库:GPU减半、吞吐数十倍猛增

简介: 小羊驼背后的英雄,伯克利开源LLM推理与服务库:GPU减半、吞吐数十倍猛增


大模型时代,各种优化方案被提出,这次吞吐量、内存占用大等问题被拿下了。


随着大语言模型(LLM)的不断发展,这些模型在很大程度上改变了人类使用 AI 的方式。然而,实际上为这些模型提供服务仍然存在挑战,即使在昂贵的硬件上也可能慢得惊人。


现在这种限制正在被打破。最近,来自加州大学伯克利分校的研究者开源了一个项目 vLLM,该项目主要用于快速 LLM 推理和服务。vLLM 的核心是 PagedAttention,这是一种新颖的注意力算法,它将在操作系统的虚拟内存中分页的经典思想引入到 LLM 服务中。


配备了 PagedAttention 的 vLLM 将 LLM 服务状态重新定义:它比 HuggingFace Transformers 提供高达 24 倍的吞吐量,而无需任何模型架构更改。



项目地址:https://github.com/vllm-project/vllm


总结而言,vLLM 具有如下特点:


  • 最先进的服务吞吐量;
  • PagedAttention 可以有效的管理注意力的键和值;
  • 动态批处理请求;
  • 优化好的 CUDA 内核;
  • 与流行的 HuggingFace 模型无缝集成;
  • 高吞吐量服务与各种解码算法,包括并行采样、beam search 等等;
  • 张量并行以支持分布式推理;
  • 流输出;
  • 兼容 OpenAI 的 API 服务。


vLLM 还可以无缝支持许多 Huggingface 模型,包括以下架构:


  • GPT-2 (gpt2、gpt2-xl 等);
  • GPTNeoX (EleutherAI/gpt-neox-20b、databricks/dolly-v2-12b、stabilityai/stablelm-tuned-alpha-7b 等);
  • LLaMA (lmsys/vicuna-13b-v1.3、young-geng/koala、openlm-research/open_llama_13b 等)
  • OPT (facebook/opt-66b、facebook/opt-iml-max-30b 等)。


值得一提的是,vLLM 已被部署在 Chatbot Arena 和 Vicuna 中。项目作者之一 Zhuohan Li 表示,自发布以来,vLLM 一直是 Chatbot Arena 和 Vicuna Demo 背后的无名英雄,它能处理高峰流量并高效地为流行模型提供服务。它已将 LMSYS(一个开放的研究组织,旨在让每个人都能访问大型模型) 使用的 GPU 数量减少了一半,同时每天平均处理 30K 次对话。



vLLM 性能如何?


该研究将 vLLM 的吞吐量与最流行的 LLM 库 HuggingFace Transformers (HF),以及之前具有 SOTA 吞吐量的 HuggingFace Text Generation Inference(TGI)进行了比较。此外,该研究将实验设置分为两种:LLaMA-7B,硬件为 NVIDIA A10G GPU;另一种为 LLaMA-13B,硬件为 NVIDIA A100 GPU (40GB)。他们从 ShareGPT 数据集中采样输入 / 输出长度。结果表明,vLLM 的吞吐量比 HF 高 24 倍,比 TGI 高 3.5 倍。


vLLM 的吞吐量比 HF 高 14 倍 - 24 倍,比 TGI 高 2.2 倍 - 2.5 倍。


vLLM 的吞吐量比 HF 高 8.5 - 15 倍,比 TGI 高 3.3 - 3.5 倍。


PagedAttention:解决内存瓶颈


该研究发现,在 vLLM 库中 LLM 服务的性能受到内存瓶颈的影响。在自回归解码过程中,所有输入到 LLM 的 token 会产生注意力键和值的张量,这些张量保存在 GPU 内存中以生成下一个 token。这些缓存键和值的张量通常被称为 KV 缓存,其具有:


  • 内存占用大:在 LLaMA-13B 中,缓存单个序列最多需要 1.7GB 内存;
  • 动态且不可预测:KV 缓存的大小取决于序列长度,这是高度可变和不可预测的。因此,这对有效地管理 KV 缓存挑战较大。该研究发现,由于碎片化和过度保留,现有系统浪费了 60% - 80% 的内存。


为了解决这个问题,该研究引入了 PagedAttention,这是一种受操作系统中虚拟内存和分页经典思想启发的注意力算法。与传统的注意力算法不同,PagedAttention 允许在非连续的内存空间中存储连续的键和值。具体来说,PagedAttention 将每个序列的 KV 缓存划分为块,每个块包含固定数量 token 的键和值。在注意力计算期间,PagedAttention 内核可以有效地识别和获取这些块。


PagedAttention:KV 缓存被划分成块,块不需要在内存空间中连续。


因为块在内存中不需要连续,因而可以用一种更加灵活的方式管理键和值,就像在操作系统的虚拟内存中一样:可以将块视为页面,将 token 视为字节,将序列视为进程。序列的连续逻辑块通过块表映射到非连续物理块中。物理块在生成新 token 时按需分配。


使用 PagedAttention 的请求的示例生成过程。


在 PagedAttention 中,内存浪费只会发生在序列的最后一个块中。这使得在实践中可以实现接近最佳的内存使用,仅浪费不到 4 %。这种内存效率的提升被证明非常有用,允许系统将更多序列进行批处理,提高 GPU 使用率,显著提升吞吐量。


PagedAttention 还有另一个关键优势 —— 高效的内存共享。例如在并行采样中,多个输出序列是由同一个提示(prompt)生成的。在这种情况下,提示的计算和内存可以在输出序列中共享。


并行采样示例。


PagedAttention 自然地通过其块表格来启动内存共享。与进程共享物理页面的方式类似,PagedAttention 中的不同序列可以通过将它们的逻辑块映射到同一个物理块的方式来共享块。为了确保安全共享,PagedAttention 会对物理块的引用计数进行跟踪,并实现写时复制(Copy-on-Write)机制。


对于对多输出进行采样的请求,它的示例生成过程是这样的。


PageAttention 的内存共享大大减少了复杂采样算法的内存开销,例如并行采样和集束搜索的内存使用量降低了 55%。这可以转化为高达 2.2 倍的吞吐量提升。这种采样方法也在 LLM 服务中变得实用起来。


PageAttention 成为了 vLLM 背后的核心技术。vLLM 是 LLM 推理和服务引擎,为各种具有高性能和易用界面的模型提供支持。


是什么在背后默默支撑 Vicuna 和 Chatbot Arena


今年 4 月,LMSYS 公开发布了流行的 Vicuna(小羊驼)聊天机器人模型。从那时起,Vicuna 就在 Chatbot Arena 中为数百万用户提供服务。最开始,LMSYS 的开源聊天机器人 FastChat 采用基于 HF Transformer 的服务后端来为聊天 demo 提供服务。


随着 demo 变得越来越流行,峰值流量增加了几倍,导致 HF 后端成为一个严重的瓶颈。LMSYS 和 vLLM 团队展开合作并很快开发了 FastChat-vLLM 集成,使用 vLLM 作为新的后端,从而满足不断增长的需求(5 倍流量)。在 LMSYS 早期的内部微基准测试中,vLLM 服务后端可以实现的吞吐量是初始 HF 后端的 30 倍。

此外,自 4 月中旬以来,Vicuna、Koala 和 LLaMA 等最受欢迎的模型都已经成功地使用 FastChat-vLLM 集成服务。LMSYS 以 FastChat 为多模型聊天服务前端,以 vLLM 作为推理后端,这样可以利用大学赞助的有限 GPU,高吞吐量、低延迟地为数百万用户提供 Vicuna。


目前,LMSYS 正在将 vLLM 的使用范围扩展到更广泛的大模型,包括 Databricks Dolly、LAION 的 OpenAsssiant、Stability AI 的 stableLM。对于更多模型的支持正在开发并即将到来。


4 月至 5 月,Chatbot Arena 中 FastChat-vLLM 集成服务的请求情况。事实上,Chatbot Arena 中超过一半的请求都使用 vLLM 作为推理后端。

vLLM 的使用还显著降低了运营成本。借助 vLLM,LMSYS 能够将用于处理上述流量的 GPU 数量减少 50%。vLLM 平均每天可以处理 30k 请求,峰值为 60k,这说明了 vLLM 的稳健性很强。


vLLM 的安装与使用

你可以通过以下 pip 命令安装 vLLM。



$ pip install vllm

vLLM 可以用于离线推理和在线服务。在使用 vLLM 进行离线推理任务时,你需要导入 vLLM 并在 Python 脚本中使用 LLM 类。





from vllm import LLMprompts = ["Hello, my name is", "The capital of France is"]  # Sample prompts.llm = LLM (model="lmsys/vicuna-7b-v1.3")  # Create an LLM.outputs = llm.generate (prompts)  # Generate texts from the prompts.

在使用 vLLM 进行在线服务时,你可以通过以下命令启动一个兼容 OpenAI API 的服务器。



$ python -m vllm.entrypoints.openai.api_server --model lmsys/vicuna-7b-v1.3


你还可以利用与 OpenAI API 相同的格式来查询服务器。









$ curl http://localhost:8000/v1/completions \-H "Content-Type: application/json" \-d '{        "model": "lmsys/vicuna-7b-v1.3",        "prompt": "San Francisco is a",        "max_tokens": 7,        "temperature": 0    }'


项目作者表示,vLLM 的相关研究论文也即将放出。


相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
4月前
|
人工智能 中间件 数据库
沐曦 GPU 融入龙蜥,共筑开源 AI 基础设施新底座
沐曦自加入社区以来,一直与龙蜥社区在推动 AIDC OS 的开源社区建设等方面保持合作。
|
4月前
|
机器学习/深度学习 算法 物联网
Google开源Tunix:JAX生态的LLM微调方案来了
Tunix是Google推出的基于JAX的LLM后训练库,支持微调、强化学习与知识蒸馏,集成Flax NNX,主打TPU优化与模块化设计,支持QLoRA等高效训练方法,适用于高性能分布式训练场景。
396 13
Google开源Tunix:JAX生态的LLM微调方案来了
|
10月前
|
人工智能 自然语言处理 测试技术
能够双向推理的LLM!Dream-7B:港大联合华为开源的扩散推理模型,能够同时考虑前后文信息
Dream-7B是由香港大学与华为诺亚方舟实验室联合研发的开源扩散大语言模型,采用独特的掩码扩散范式,在文本生成、数学推理和代码编写等任务中展现出卓越性能。
521 3
能够双向推理的LLM!Dream-7B:港大联合华为开源的扩散推理模型,能够同时考虑前后文信息
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
37_开源LLM:LLaMA与Mistral的突破_深度解析
在人工智能领域,2025年已经成为开源大语言模型的黄金时代。从Meta的LLaMA系列到欧洲初创公司Mistral AI的创新突破,开源LLM正在重塑整个AI生态系统的格局。截至2025年4月,Meta的LLaMA系列已成为全球下载量最高、社区使用最活跃的开源大语言模型之一,并被集成于数百个学术项目、创业平台和AI产品之中
|
11月前
|
人工智能 数据可视化 API
36.7K star!拖拽构建AI流程,这个开源LLM应用框架绝了!
`Flowise` 是一款革命性的低代码LLM应用构建工具,开发者通过可视化拖拽界面,就能快速搭建基于大语言模型的智能工作流。该项目在GitHub上线不到1年就斩获**36.7K星标**,被开发者誉为"AI时代的乐高积木"。
724 8
|
10月前
|
人工智能 Linux API
119K star!无需GPU轻松本地部署多款大模型,DeepSeek支持!这个开源神器绝了
"只需一行命令就能在本地运行Llama 3、DeepSeek-R1等前沿大模型,支持Windows/Mac/Linux全平台,这个开源项目让AI开发从未如此简单!"
646 0
|
7月前
|
缓存 异构计算 Docker
构建高性能LLM推理服务的完整方案:单GPU处理172个查询/秒、10万并发仅需15美元/小时
本文将通过系统性实验不同的优化技术来构建自定义LLaMA模型服务,目标是高效处理约102,000个并行查询请求,并通过对比分析确定最优解决方案。
761 0
构建高性能LLM推理服务的完整方案:单GPU处理172个查询/秒、10万并发仅需15美元/小时
|
10月前
|
机器学习/深度学习 人工智能 算法
RAGEN:RL训练LLM推理新范式!开源强化学习框架让Agent学会多轮决策
RAGEN是一个基于StarPO框架的开源强化学习系统,通过马尔可夫决策过程形式化Agent与环境的交互,支持PPO、GRPO等多种优化算法,显著提升多轮推理训练的稳定性。
1292 5
RAGEN:RL训练LLM推理新范式!开源强化学习框架让Agent学会多轮决策
|
11月前
|
人工智能 并行计算 语音技术
Open-LLM-VTuber:宅男福音!开源AI老婆离线版上线,实时语音+Live2D互动还会脸红心跳
Open-LLM-VTuber 是一个开源的跨平台语音交互 AI 伴侣项目,支持实时语音对话、视觉感知和生动的 Live2D 动态形象,完全离线运行,保护用户隐私。
1455 10
Open-LLM-VTuber:宅男福音!开源AI老婆离线版上线,实时语音+Live2D互动还会脸红心跳
|
10月前
|
人工智能 自然语言处理 数据可视化
89.4K star!这个开源LLM应用开发平台,让你轻松构建AI工作流!
Dify 是一款开源的 LLM 应用开发平台,通过直观的可视化界面整合 AI 工作流、RAG 管道、智能代理等功能,助你快速实现从原型到生产的跨越。支持本地部署和云端服务,提供企业级功能与完整 API 接口。
742 4

热门文章

最新文章