人工智能

2080 Ti就能跑70B大模型,上交大新框架让LLM推理增速11倍

字号+作者: 来源:量子位公众号 2023-12-21 08:49 评论(创建话题) 收藏成功收藏本文

声明:本文来自于微信公众号 量子位(ID:QbitAI),作者:上交大IPADS实验室,授权站长之家转载发布。原本需要一张16万元的80G A100干的活,现在只需要一张不到2万'...

声明:本文来自于微信公众号 量子位(ID:QbitAI),作者:上交大IPADS实验室,授权站长之家转载发布。sVK品论天涯网

原本需要一张16万元的80G A100干的活,现在只需要一张不到2万元的24G4090就够了!sVK品论天涯网

上海交大IPADS实验室推出的开源推理框架PowerInfer,让大模型推理速度加快了11倍。sVK品论天涯网

而且不用量化,就用FP16精度,也能让40B模型在个人电脑上运行;如果加入量化,2080Ti也能流畅运行70B模型。sVK品论天涯网

图片sVK品论天涯网

结合大模型的独特特征,通过CPU与GPU间的混合计算,PowerInfer能够在显存有限的个人电脑上实现快速推理。sVK品论天涯网

相比于llama.cpp,PowerInfer实现了高达11倍的加速,让40B模型也能在个人电脑上一秒能输出十个token。sVK品论天涯网

我们最熟悉的ChatGPT,一方面有时会因为访问量过大而宕机,另一方面也存在数据安全问题。sVK品论天涯网

图片sVK品论天涯网

开源模型能较好地解决这两个问题,但如果没有高性能的显卡,运行速度往往十分感人:sVK品论天涯网

图片sVK品论天涯网

而PowerInfer的出现,刚好解决了这个痛点。sVK品论天涯网

图片sVK品论天涯网

PowerInfer一经发布就引起热烈反响,不到24小时就获得了500+星标,其中还有一颗来自llama.cpp的作者Gerganov。sVK品论天涯网

图片sVK品论天涯网

目前,PowerInfer的源码和论文均已公开,下面就一起看看它的加速效果究竟有多强。sVK品论天涯网

推理速度最高11倍

在搭载x86CPU和NVIDIA GPU的消费级硬件平台上,PowerInfer以参数量从7B到175B的一系列LLM模型为基准,对PowerInfer的端到端推理速度进行了测试,并和同平台上性能最好的推理框架llama.cpp进行了对比。sVK品论天涯网

对于FP16精度的模型,在搭载了13代Intel Core i9和单张RTX4090的高端PC(PC-High)上,PowerInfer平均实现了7.23倍的速度提升,其中在Falcon40B上实现了高达11.69倍的速度提升。sVK品论天涯网

在所有测试用例上,PowerInfer平均达到了8.32tokens/s,在OPT30B和Falcon40B上最高分别达到16.06tokens/s和12.94tokens/s。sVK品论天涯网

借助PowerInfer,当今的消费级平台可以流畅运行30-40B级别的LLM,并以可以接受的速度运行70B级别的LLM。sVK品论天涯网

图片sVK品论天涯网

△PowerInfer在不同模型中不同输出长度下平均生成token速度测试图,纵坐标为加速比,每根柱状图上标注的数字代表了每秒钟能够生成的token数量

模型量化是端侧LLM推理非常常用的技术,PowerInfer也支持了INT4量化模型的推理。sVK品论天涯网

PowerInfer分别在高端PC(PC-High)和搭载单张RTX2080Ti的中低端PC(PC-Low)上测试了一系列INT4量化模型的推理速度。sVK品论天涯网

在PC-High上,PowerInfer能够高速运行40-70B规模的模型,最高达到了29.09tokens/s的推理速度,并且实现了平均2.89倍,最高4.28倍的速度提升。sVK品论天涯网

同时,在消费级硬件上运行OPT-175B这种规模的模型也成为可能。sVK品论天涯网

在PC-Low这种中低端PC上,PowerInfer可以流畅运行30-70B规模的模型,并实现平均5.01倍,最高8.00倍的速度提升,这主要得益于INT4量化后模型大部分热神经元得以放置在显存中。sVK品论天涯网

图片sVK品论天涯网

△PowerInfer在INT4量化模型中的推理速度,纵坐标为加速比,每根柱状图上标注的数字代表了每秒钟能够生成的token数量

最后,PowerInfer对比了PC-High上运行PowerInfer相比于云端顶级计算卡A100运行SOTA框架vLLM的端到端推理速度,测试模型为FP16精度的OPT-30B和Falcon-40B(ReLU)。sVK品论天涯网

当输入长度为64时,PowerInfer对A100的速度差距从93%-94%缩小到了28%-29%;在输入长度为1的纯生成场景中,这一差距会被进一步缩小到低至18%。sVK品论天涯网

这代表着PowerInfer借助稀疏激活和CPU/GPU混合推理,极大地弥合了消费级显卡到顶尖服务端计算卡的推理速度差距。sVK品论天涯网

图片sVK品论天涯网

PowerInfer在4090上与vLLM在A100的性能对比

那么,PowerInfer是如何实现消费级硬件上的高速推理的呢?sVK品论天涯网

充分利用模型和硬件特点

PowerInfer实现高速推理的秘诀,在于充分利用了稠密模型存在的高局部性的稀疏激活,并与CPU和GPU的运算特点进行了充分结合。sVK品论天涯网

何谓“稀疏激活”?

最近Mixtral MoE大模型引爆了整个AI圈,稀疏模型重新进入大家的视野。sVK品论天涯网

一个有趣的事实是:像OPT、LLaMA(ReLU)这样被视为稠密模型的LLM,同样存在稀疏激活的特征。sVK品论天涯网

什么是稠密模型的稀疏激活呢?sVK品论天涯网

和MoE模型中一个输入token只需要激活FFN layer其中一个或者两个专家模块类似,以OPT模型的稠密FFN层为例,只需要激活一小部分(实验显示约10%)神经元即可保证输出的正确性。sVK品论天涯网

其他的神经元虽然参与了计算,但并没有对输出产生明显贡献。sVK品论天涯网

换句话说,稠密模型中的每一个神经元都是一个专家!sVK品论天涯网

图片sVK品论天涯网

左图来自Alexander Clark论文(aRXiv编号:2101.03961)

MoE模型可以在专家FFN层之前通过路由模块将输入分发给其中一个或者两个专家进行计算,那么稠密模型中的稀疏激活又该如何路由或者在计算之前就知道哪些专家神经元会对结果产生贡献呢?sVK品论天涯网

答案是为稠密模型增加路由预测模块sVK品论天涯网

在模型开始服务前,PowerInfer首先会对模型进行离线分析,通过将模型在通用数据集中进行推理获取每一层输入与激活神经元之间的对应关系,进而为稠密模型每一层训练一个小的预测路由模块来预测每一个输入会激活的神经元,只计算路由激活的神经元(专家)。sVK品论天涯网

在多个下游任务的测试中,PowerInfer的路由模块几乎没有引入额外的精度损失。sVK品论天涯网

稀疏激活带来的推理局部性

稀疏激活的另一个有趣事实是,尽管对于不同的输入token,激活的神经元分布存在差异;但如果在足够多的数据上进行推理,并将每次激活的分布叠加,PowerInfer发现少部分神经元总体上被激活的概率更高。sVK品论天涯网

也就是说,统计意义上大模型神经元的激活符合Power Law分布(Power Law分布是一种统计规律,表示少数事件的发生频率远高于大量其他事件)。sVK品论天涯网

如下图(a)所示,对于OPT-30B和LLaMA(ReGLU)-70B两个模型里的某一层FFN网络,统计意义上26%和43%的神经元分别贡献了80%的激活。sVK品论天涯网

而在整个模型的尺度上,如下图(b)所示,17%和26%的神经元贡献了80%的激活。sVK品论天涯网

图片sVK品论天涯网

因此,当只考虑对最终激活有贡献的运算时,LLM具有推理局部性:对权重的访问倾向于集中在一定的区域,而不是均匀分布在所有的神经元上。sVK品论天涯网

在推理运算中它显现为程序的局部性:对内存空间的访问倾向于集中在一定的区域,而不是均匀分布在整个内存空间。sVK品论天涯网

在常见的个人电脑中,GPU具有较少的显存和更强的计算能力,适合处理频繁访问且计算强度高的任务;而CPU拥有更大的内存容量但相对较弱的算力,适合处理少量访问且计算强度低的任务。sVK品论天涯网

因此,理想情况下,一小部分经常访问的神经元应该存储在显存中,相比之下更大、访问频率更低的神经元更适合存储在内存中,由CPU进行计算。sVK品论天涯网

这启发了PowerInfer基于局部性特征进行CPU/GPU混合推理系统的设计。sVK品论天涯网

CPU/GPU混合推理设计

根据上述神经元的Power Law和由此产生的局部性,PowerInfer通过提前静态分析每一个神经元的冷热性,将少量的热神经元加载在GPU显存上,剩余的冷神经元加载到CPU的内存中。sVK品论天涯网

以神经元为粒度的模型混合加载,会出现一层内有些神经元在GPU上,有些神经元在CPU上。sVK品论天涯网

为此,PowerInfer设计了细粒度的CPU/GPU混合推理引擎。sVK品论天涯网

以下图为例,对于某一层的输入,PowerInfer会首先预测该输入会激活神经元为3,4,5。sVK品论天涯网

然后CPU、GPU会分别根据预测信息,执行位于其内存中的神经元的计算。sVK品论天涯网

具体以下图的例子来说,CPU上会计算第四个神经元,GPU上会计算第三个、第五个神经元,然后再GPU上对两边的计算结果进行合并。sVK品论天涯网

图片sVK品论天涯网

PowerInfer混合计算的方式

PowerInfer的整体架构

总体而言,PowerInfer利用基于稠密模型的稀疏激活及其引入的局部性特性,开发出了一种创新的CPU/GPU混合推理引擎。sVK品论天涯网

在接入一个大型语言模型(LLM)时,PowerInfer首先在离线阶段对模型的预测路由模块进行训练,并深入分析模型的激活特征。sVK品论天涯网

同时,结合目标硬件的带宽和容量等关键信息,计算出最佳的神经元放置策略。sVK品论天涯网

在此基础上,PowerInfer会根据这些计算结果,将神经元优化地分布在内存或显存中。sVK品论天涯网

在在线推理阶段,CPU和GPU分别处理存储在其内存中的神经元,随后在GPU上对这些独立计算的结果进行高效合并。sVK品论天涯网

图片sVK品论天涯网

PowerInfer整体架构图

总结与展望

对于端侧用户而言,PowerInfer的高效推理框架打开了新的可能性。sVK品论天涯网

首先,它使得个人电脑用户能够在本地运行先进的大型语言模型,而无需昂贵的专业硬件。sVK品论天涯网

这不仅促进了人工智能应用的普及化,也为爱好者、研究人员和小型企业提供了前所未有的机会。sVK品论天涯网

在云端部署方面,PowerInfer同样存在巨大的潜力。sVK品论天涯网

现有的云端CPU也有强大的AMX计算单元支持,通过利用CPU、GPU间的异构特征,可以乐观地认为PowerInfer能够使用更少的高端计算卡,做到更高的服务吞吐。sVK品论天涯网

论文地址:sVK品论天涯网

https://ipads.se.sjtu.edu.cn/_media/publications/powerinfer-20231219.pdfsVK品论天涯网

本网除标明“PLTYW原创”的文章外,其它文章均为转载或者爬虫(PBot)抓取; 本文只代表作者个人观点,不代表本站观点,仅供大家学习参考。本网站属非谋利性质,旨在传播马克思主义和共产主义历史文献和参考资料。凡刊登的著作文献侵犯了作者、译者或版权持有人权益的,可来信联系本站删除。 本站邮箱[email protected]