比HuggingFace快24倍!伯克利LLM推理系统开源碾压SOTA,GPU砍半
编辑:桃子 好困
(资料图片仅供参考)
【新智元导读】打「排位赛」的大模型们背后秘密武器曝光!UC伯克利重磅开源神级LLM推理系统——vLLM,利用PagedAttention,比HuggingFace/Transformers快24倍,GPU数量减半。
过去2个月,来自UC伯克利的研究人员给大语言模型们安排了一个擂台——Chatbot Arena。
GPT-4等大语言模型玩家打起了「排位赛」,通过随机battle,根据Elo得分来排名。
这一过程中,每当一个用户访问并使用网站,就需要同时让两个不同的模型跑起来。
他们是如何做到的?
这不,就在今天,UC伯克利重磅开源了世界最快LLM推理和服务系统vLLM。
简之,vLLM是一个开源的LLM推理和服务引擎。它利用了全新的注意力算法「PagedAttention」,有效地管理注意力键和值。
配备全新算法的vLLM,重新定义了LLM服务的最新技术水平:
值得一提的是,「小羊驼」Vicuna在demo中用到的就是FastChat和vLLM的一个集成。
正如研究者所称,vLLM最大的优势在于——提供易用、快速、便宜的LLM服务。
这意味着,未来,即使对于像LMSYS这样计算资源有限的小型研究团队也能轻松部署自己的LLM服务。
项目地址:https://github.com/vllm-project/vllm
现在,所有人可以在GitHub仓库中使用一个命令尝试vLLM了。论文随后也会发布。
性能全面碾压SOTA
今天,这个由UC伯克利创立的开放研究组织LMSYS介绍道:
「一起来见证vLLM:Chatbot Arena背后的秘密武器。FastChat-vLLM的集成使LMSYS使用的GPU数量减少了一半,同时每天平均提供3万次请求。」
vLLM的性能具体如何?
UC伯克利团队将vLLM的吞吐量与最受欢迎的LLM库HuggingFace Transformers(HF),以及HuggingFace文本生成推理(TGI),先前的最新技术水平进行了比较。
团队在两个设置中进行评估:在NVIDIA A10G GPU上运行LLaMA-7B模型,在NVIDIA A100 GPU(40GB)上运行LLaMA-13B模型。
然后,研究人员从ShareGPT数据集中抽样请求的输入/输出长度。
在实验中,vLLM的吞吐量比HF高达24倍,并且比TGI高达3.5倍。
在每个请求只需要一个输出完成时的服务吞吐量。vLLM比HF的吞吐量高出14倍-24倍,比TGI的吞吐量高出2.2倍-2.5倍
在每个请求需要3个并行输出完成时的服务吞吐量。vLLM比HF的吞吐量高出8.5倍-15倍,比TGI的吞吐量高出3.3倍-3.5倍
秘密武器:PagedAttention
在vLLM中,团队发现LLM服务的性能受到内存的限制。
在自回归解码过程中,LLM的所有输入token都会生成注意力键(key)和值(value)张量,并且这些张量被保留在GPU内存中以生成下一个token。
这些缓存的键和值张量通常被称为KV缓存。KV缓存具有以下特点:
1. 内存占用大:在LLaMA-13B中,单个序列的KV缓存占用高达1.7GB的内存。
2. 动态化:其大小取决于序列长度,而序列长度高度易变,且不可预测。
因此,有效管理KV缓存是一个重大挑战。对此,研究团队发现现有系统由于碎片化和过度保留而浪费了60%至80%的内存。
用团队的导师Joey Gonzalez的一句话来讲:GPU内存碎片化=慢。
为了解决这个问题,团队引入了PagedAttention,一种受到操作系统中虚拟内存和分页经典概念启发的注意力算法。
与传统的注意力算法不同,PagedAttention允许在非连续的内存空间中存储连续的键和值。
具体来说,PagedAttention将每个序列的KV缓存分为若干块,每个块包含固定数量token的键和值。在注意力计算过程中,PagedAttention内核能够高效地识别和提取这些块。
PagedAttention:KV缓存被分割成块,这些块在内存中不需要连续
由于这些块在内存中不需要连续,因此也就可以像操作系统的虚拟内存一样,以更灵活的方式管理键和值——将块看作页,token看作字节,序列看作进程。
序列的连续逻辑块通过块表映射到非连续的物理块。随着生成新的token,物理块会按需进行分配。
使用PagedAttention的请求生成过程示例
PagedAttention将内存浪费控制在了序列的最后一个块中。
在实践中,这带来了接近最优的内存使用——仅有不到4%的浪费。
而这种内存效率的提升,能让系统将更多的序列进行批处理,提高GPU利用率,从而显著提高吞吐量。
此外,PagedAttention还具有另一个关键优势:高效的内存共享。
比如在并行采样中,就能从相同的提示生成多个输出序列。在这种情况下,提示的计算和内存可以在输出序列之间共享。
并行采样的示例
PagedAttention通过块表自然地实现了内存共享。
类似于进程共享物理页的方式,PagedAttention中的不同序列可以通过将它们的逻辑块映射到相同的物理块来共享块。
为了确保安全,PagedAttention会跟踪物理块的引用计数,并实现了写时复制机制。
采样多个输出的请求示例生成过程
PagedAttention的内存共享极大减少了复杂采样算法(如并行采样和束搜索)的内存开销,将它们的内存使用量减少了高达55%。这可以将吞吐量提高多达2.2倍。
总结而言,PagedAttention是vLLM的核心技术,它是LLM推断和服务的引擎,支持各种模型,具有高性能和易于使用的界面。
GitHub上,团队也介绍了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等)
小羊驼和排位赛的「幕后英雄」
4月初,UC伯克利学者联手UCSD、CMU等,最先推出了一个开源全新模型——130亿参数的Vicuna,俗称「小羊驼」。
从那时起,Vicuna已在Chatbot Arena为数百万用户提供服务。
最初,LMSYS的FastChat采用基于HF Transformers的服务后端来提供聊天demo。
但随着demo变得越来越受欢迎,峰值流量猛增了好几倍,而HF后端也因此成了一个重大的瓶颈。
为了解决这一挑战,LMSYS与vLLM团队紧密合作,全力开发出了全新的FastChat-vLLM集成——通过将vLLM作为新的后端,来满足不断增长的需求(最多增加5倍的流量)。
根据LMSYS内部微基准测试的结果,vLLM服务后端可以实现比初始HF后端高出30倍的吞吐量。
4月-5月期间,Chatbot Arena的后端已经部落了FastChat-vLLM的集成。实际上,有超过一半的Chatbot Arena请求都使用FastChat-vLLM集成服务的
自4月中旬以来,最受欢迎的语言模型,如Vicuna、Koala和LLaMA,都已成功使用FastChat-vLLM集成提供服务。
FastChat作为多模型聊天服务前端,vLLM作为推理后端,LMSYS能够利用有限数量的GPU(学校赞助的),以高吞吐量和低延迟为数百万用户提供Vicuna服务。
现在,LMSYS正在将vLLM的使用扩展到更多的模型,包括Databricks Dolly、LAION的OpenAsssiant和Stability AI的StableLM等。
vLLM使用教程
使用以下命令安装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的更多方法,请查看快速入门指南:
https://vllm.readthedocs.io/en/latest/getting_started/quickstart.html
团队介绍
李卓翰
Zhuohan Li(李卓翰)是加州大学伯克利分校计算机科学专业的博士生,研究兴趣是机器学习和分布式系统的交叉领域。
在此之前,他在北京大学获得了计算机科学学士学位,指导老师是王立威和贺笛。
Woosuk Kwon
Woosuk Kwon是加州大学伯克利分校的博士生,研究兴趣是为大语言模型等新兴应用建立实用、灵活和高性能的软件系统。
团队其他成员包括庄思源、盛颖、郑怜悯、Cody Yu。团队导师包括Joey Gonzalez,Ion Stoica和张昊。
其中,团队的大部分成员同时也是LMSYS成员。
参考资料:
https://vllm.ai
关键词:
推荐阅读
域名抢注是是什么意思?投资角度来看什么域名好?
域名抢注是是什么意思域名抢注是通过抢先注册的方式获得互联网删除的域名的使用权。域名是由点分隔的一串数字,用于标记一台计算机或一组计 【详细】
捷达保养费用是多少?捷达是哪个国家的品牌?
捷达保养费用是多少?全新捷达的保修期为2年或6万公里,以先到者为准,新车可享受一次免费保养,首次免费保养在5000-7500km或1年内进行。如 【详细】
天然气泄露会造成爆炸吗?天然气泄漏怎么办?
天然气泄露会造成爆炸吗?家里用的天然气如果泄露是会发生爆炸的。当空气中含有混合天然气时,在与火源接触的一系列爆炸危险中,就会发生爆 【详细】
四部门明确App收集个人信息范围 个人信息保护范围判断标准
四部门明确App收集个人信息范围近日,国家互联网信息办公室、工业和信息化部、公安部、国家市场监督管理总局联合印发《常见类型移动互联网 【详细】
丰田致炫介绍 致炫威驰对比汇总
丰田致炫介绍参考价格: 6 88ー10 28W,基本参数: 1 3升 1 5升 5mt,5 3升 100公里。YARiS L致炫是YARiS L的替代传统车型,也是我们中国 【详细】
相关新闻
- 比HuggingFace快24倍!伯克利LLM推理系统开源碾压SOTA,GPU砍半
- 泰坦号内爆5位富豪遇难!AI复原最后恐怖瞬间,设计缺陷真相公开
- 什么是模块化(软件开发中什么是模块化开发) 每日热文
- 《人世间》获得白玉兰“最佳中国电视剧”等多项大奖|世界微资讯
- 闹大了,韩国200多艘船只海上集结,抗议日本核污水排海|世界微头条
- 全球要闻:机动车副驾驶不系安全带怎么处罚_副驾驶不系安全带怎么处罚扣几分
- 全球即时看!三星 Galaxy Watch6系列智能手表曝光:搭载Exynos W930 芯片
- 科学家开始进行3D打印义眼的试验
- 一趟火车上千人,却连几十份快餐也卖不掉?答案来了
- 即时:微软发布13亿个参数的微型AI代码编程模型,性能上超越GPT-3.5
- 印度式不讲武德的"杀猪盘":磨刀霍霍向小米_即时
- 每日消息!气不足吃什么食物好(女性气血不足吃什么食物)
- 环球看热讯:好六街游园会曾黎保护王鹤棣好有安全感赵露思曝理想型
- 环球快报:风吹十里荷花香 “莲”通乡村“致富路”
- 日本强推核污染水排海 日本民众:不应做危害子孙后代的事
- 热点!AI即将完全取代人类!盘点近年人工智能发展
- 中国人类基因图谱的公开,或是“精英”们精心策划中的一部分! 环球新动态
- 环球焦点!博格巴:我在尤文得到了球迷和俱乐部的爱 但在曼联没有
- 肛门痒挂什么科(我老公老是肛门瘙痒,如果爱爱过后我也会痒,我们想去医院看看,不知道挂...)_全球动态
- 斯凯孚轴承型号含义(6312轴承型号含义)