小羊驼背后的英雄,伯克利开源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 的相关研究论文也即将放出。


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
打赏
0
0
0
0
367
分享
相关文章
基于Knative的LLM推理场景弹性伸缩方案
Knative的基于请求弹性配置与大语言模型(LLM)的推理场景高度契合。此外,它的资源降配特性可以显著帮助用户降低成本。本文详细介绍基于 Knative 的 LLM 推理场景弹性伸缩方案。
LLM高效推理:KV缓存与分页注意力机制深度解析
随着大型语言模型(LLM)规模和复杂性的增长,高效推理变得至关重要。KV缓存和分页注意力是优化LLM推理的两项关键技术。KV缓存通过存储键值对减少重复计算,而分页注意力则通过将序列分割成小块来降低内存消耗,从而有效处理长序列。本文深入剖析这些技术的工作原理及其在仅解码器模型中的应用,探讨其优势与挑战,并展示其实现示例。
22 9
LLM高效推理:KV缓存与分页注意力机制深度解析
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
1055 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
仅7B的模型数学推理能力完虐70B?MIT哈佛推出行动思维链COAT让LLM实现自我反思并探索新策略
Satori 是由 MIT 和哈佛大学等机构联合推出的 7B 参数大型语言模型,专注于提升推理能力,具备强大的自回归搜索和自我纠错功能。
82 6
仅7B的模型数学推理能力完虐70B?MIT哈佛推出行动思维链COAT让LLM实现自我反思并探索新策略
KAG:增强 LLM 的专业能力!蚂蚁集团推出专业领域知识增强框架,支持逻辑推理和多跳问答
KAG 是蚂蚁集团推出的专业领域知识服务框架,通过知识增强提升大型语言模型在特定领域的问答性能,支持逻辑推理和多跳事实问答,显著提升推理和问答的准确性和效率。
528 46
KAG:增强 LLM 的专业能力!蚂蚁集团推出专业领域知识增强框架,支持逻辑推理和多跳问答
Nature:人类亲吻难题彻底难倒LLM,所有大模型全部失败!LLM根本不会推理,只是工具
近期,《自然》杂志发表的研究显示,所有大型语言模型(LLM)在解释特定情境下人类亲吻行为时均失败。尽管LLM在语言处理和文本生成上表现出色,但在理解和推理复杂人类行为方面存在显著限制,表明其缺乏对人类情感、社会及文化背景的深入理解。专家认为LLM更像是工具而非智能体,虽在客户服务、内容创作等领域有价值,但在复杂推理和理解方面仍显不足。
86 37
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
本教程演示如何在ACK中使用vLLM框架快速部署DeepSeek R1模型推理服务。
MoBA:LLM长文本救星!月之暗面开源新一代注意力机制:处理1000万token能快16倍,已在Kimi上进行验证
MoBA 是一种新型注意力机制,通过块稀疏注意力和无参数门控机制,显著提升大型语言模型在长上下文任务中的效率。
55 3
首个可保留情感的音频LLM!Meta重磅开源7B-Spirit LM,一网打尽音频+文本多模态任务
Meta AI 研究团队提出了一种名为 SpiRit-LM 的新型多模态语言模型,该模型能够处理文本和音频,实现两者无缝融合。SpiRit-LM 通过“交织”方法训练,具备多模态融合、情感保留和多任务学习能力,在自动语音识别、文本转语音等任务上表现出色。它有 Base 和 Expressive 两个版本,后者能更好地捕捉情感表达。研究团队在多个基准上测试了其性能,并探索了其在语音助手、内容创作、教育和音频编辑等领域的应用前景。
28 1
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多种配置,包括CPU+GPU、FPGA等,适用于人工智能、机器学习和深度学习等计算密集型任务。本文整理了阿里云GPU服务器的优惠价格,涵盖NVIDIA A10、V100、T4等型号,提供1个月、1年和1小时的收费明细。具体规格如A10卡GN7i、V100-16G卡GN6v等,适用于不同业务场景,详情见官方页面。
136 11

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等