首页 > 其他分享 >Berkeley vLLM:算力减半、吞吐增十倍

Berkeley vLLM:算力减半、吞吐增十倍

时间:2024-05-12 09:53:08浏览次数:23  
标签:服务 PagedAttention 吞吐量 内存 LLM Berkeley vLLM 算力

Berkeley vLLM:算力减半、吞吐增十倍

来源 https://zhuanlan.zhihu.com/p/697142422

 

随着大语言模型(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 LLM
prompts = ["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 的相关研究论文也即将放出。

 

============= End

 

标签:服务,PagedAttention,吞吐量,内存,LLM,Berkeley,vLLM,算力
From: https://www.cnblogs.com/lsgxeva/p/18187514

相关文章

  • 从移动互联网终端到算力互联网平台,单点创新推动市场变革
     很多科技产品的创新,往往都是从一个不起眼的单点创新开始,而且往往能够在随后的不长时间里,引发或引爆一场巨大的市场革命。从早期的图形界面操作系统:Windows、Macintosh,到后来的移动互联网终端:iPhone,再到如今的算力互联网平台:Laxcus分布式操作系统,都是这样的产品。它们都是通过单......
  • vllm 通过不同的chat_template推理部署常见qwen、chatglm、llama3等开源大模型
    vllm版本4.0.0镜像vllmgithub官方镜像gpuv10032ga80080gopenaiapi方式出现的问题通过chat-template聊天模板解决1推理部署qwen系列模型测试我是谁问题:回答内容含有分词符,回答有杂论冗余内容模型文件没有默认聊天模板vllm官方也没有聊天模板找不到不过......
  • 前瞻AI算力规模,超出我们普通常人概念
    前瞻AI算力规模,超出我们普通常人概念:从网上得到的信息,一个语言大模型需要的算力,从中可见一斑,参数规模:1亿个参数,联动需要多大算力支持?4月23日讯(编辑赵昊)据媒体报道,日本软银集团将在今明两年投资1500亿日元(约合9.6亿美元),为其计算设施提供开发“世界级生成式人工智能所需的数......
  • AIGC爆发算力引领数据中心(IDC)长期需求
    什么是IDC?互联网数据中心(IDC)是指拥有完善的设备(包括高速互联网接入带宽、高性能局域网络、安全可靠的机房环境等)、开展互联网业务的数据中心¹。我国数据中心行业由基础电信运营商和第三方IDC运营商主导。根据中国信通院测算,2022年第三方数据中心运营商市场份额51.7%,首次超越基......
  • 基于vllm,探索产业级llm的部署
    一、基本情况vLLM部署大模型官方网址:https://vllm.aigithub地址:https://github.com/vllm-project/vllmvLLM是一个快速且易于使用的库,用于进行大型语言模型(LLM)的推理和服务。它具有以下特点:速度快:在每个请求需要3个并行输出完成时的服务吞吐量。vLLM比HuggingFace......
  • 科技驱动未来,提升AI算力,GPU扩展正当时
    要说这两年最火的科技是什么?我想“AI人工智能”肯定是最有资格上榜的,尤其ChatGPT推出后迅速在社交媒体上走红,短短5天,注册用户数就超过100万,2023年一月末,ChatGPT的月活用户更是突破1亿,成为史上增长最快的消费者应用。不少人认为,ChatGPT的热度,与其出色语言理解和文本生成能力有......
  • 李彦宏:闭源才有真正商业模式才能聚集算力和人才;史上首位数学和计算机最高奖双得主丨RT
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • 随着AI算力需求不断增强,800G光模块的需求不断增大
    在人工智能芯片(AIGC)和算力不断发展的背景下,光模块产业正在迎来快速发展的时期。随着光模块朝着更高速率的技术发展,硅光技术的成本也在逐步降低,同时降低功耗也成为市场需求的重要方面。预计到2024年,硅光方案将逐渐在400G和800G光模块的需求中占据市场份额,而1.6T时代也将逐年提......
  • 特斯拉革新交通方式?算力需求所需多少?
    特斯拉又放大招?发布无人驾驶出租车!前言北京时间的4月6日,马斯克在推特平台发布了一则重磅消息——特斯拉将在本年的8月8日推出AI驾驶出租车(robotaxi)!那么这次的robotaxi究竟如何呢?我们接着往下看。介绍Robotaxi马斯克声称robotaxi在未来的数量会超过手动驾驶车辆,这款......
  • 全国首个!天翼云上海临港国产单池万卡液冷算力集群启用!
    3月22日,中国电信宣布,天翼云上海临港国产万卡算力池正式启用,八家合作伙伴宣布将作为首批用户入驻临港国产算力池。这是国内首个投入正式运营的国产单池万卡液冷算力集群,也是业内领先的全国产化云智一体公共智算中心。通过中国电信天翼云打造的人工智能公共算力服务平台,将以公共......