爱笑的小姐姐 · 2023年01月18日

用BT下载的方式在家跑千亿大模型,推理/微调速度10倍提升

鱼羊 发自 凹非寺

量子位 | 公众号 QbitAI

在家用消费级GPU就能跑1760亿参数大模型,推理微调都很快。

还是用BT下载的方式实现。

这事儿可把AI爱好者们新鲜坏了。

image.png

这不,这个名为PETALS的项目刚开源没多久,GitHub标星数就达到了1.3k。

老司机们都知道,BT下载这玩意儿,下载同一个文件的人越多,这个文件的下载速度就越快,因为每个下载用户都会成为一个“资源节点”,互通有无。

PETALS道理差不多,就是把大家伙的GPU都利用起来,协同推理/微调同一个大模型。

用上它,你的GPU实际上只需要加载大模型的一小部分,就能把模型跑起来,速度还嘎嘎快:

推理速度能达到1秒/token,比offloading的方式快10倍。

offloading是通过提高GPU利用率,加速模型训练的一种方法,

什么是PETALS

具体来说,PETALS来自BigScience这个科研合作项目。此前人人皆可用的1760亿参数开源大模型BLOOM也来自于该项目。

至于PETALS具体是怎么个用法,先来看看下面这个例子:

张三想基于BLOOM搞个懂法语的语言大模型,而李四则想微调BLOOM让它学会C++编程。

尽管任务不同,但两者涉及的一些步骤却是共通的。

此时包括张三李四在内的PETALS用户们,自个儿的GPU里已分别加载好了模型的一部分(子集)。

于是,张三和李四就可以通过网络寻求其他用户的帮助,利用别人已经拥有的模型子集,在最短时间内对BLOOM进行微调。同时,他们GPU上的模型资源也会被其他用户利用。

image.png

实际的操作过程中,PETALS的每个参与者,都会通过本地设备运行一个服务器/客户端,或者两者兼具。

服务器包含模型层子集,通常是Transformer块。同时,服务器会处理来自客户端的请求。

客户端则会形成以流水线形式并行的一连串服务器,来运行整个模型的推理/微调。

值得一提的是,微调后的子模型可以在模型中心共享,继续提供给其他人使用。

image.png

此外,为了提高分布式推理的性能,开发人员们还采取了以下策略:

  • 动态量化,使每个GPU存储更多参数,减少连续设备和通信回合的数量;
  • 优先考虑低延迟连接,即每个客户端优先考虑距离近的服务器;
  • 服务器之间的负载均衡。

在这些优化措施的基础之上,研究人员证明,千亿参数级别的模型可以基于PETALS有效运行。

image.png

对了,如果你感兴趣,还可以直接在官方提供的Colab链接上试玩一下,地址文末奉上~

image.png

关于BigScience

前文说到,PETALS是BigScience项目的一部分。

BigScience是一个开放科学合作计划,旨在打破科技巨头对AI资源的垄断。

此前,在HuggingFace、法国国家大型计算中心等机构的牵头之下,BigScience汇聚来自60个国家和250多个机构的1000多名研究人员,一起搞出了“人人可用”、从代码到数据集通通开源的BLOOM语言大模型。

BLOOM有1760亿参数,支持59种语言,是目前最大的多语种开源语言模型。

image.png

目前,PETALS主要支持的就是BLOOM。不过开发人员表示,未来还将支持更多基础模型。

Colab地址:
https://colab.research.google.com/drive/1Ervk6HPNS6AYVr3xVdQnY5a-TjjmLCdQ?usp=sharing

参考链接:
[1]https://github.com/bigscience-workshop/petals
[2]https://news.ycombinator.com/item?id=34215665

作者:关注前沿科技
文章来源:量子位

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18808
内容数
1351
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息