在家用消费级GPU就能跑1760亿参数大模型,推理微调都很快。
还是用BT下载的方式实现。
这事儿可把AI爱好者们新鲜坏了。
这不,这个名为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上的模型资源也会被其他用户利用。
实际的操作过程中,PETALS的每个参与者,都会通过本地设备运行一个服务器/客户端,或者两者兼具。
服务器包含模型层子集,通常是Transformer块。同时,服务器会处理来自客户端的请求。
客户端则会形成以流水线形式并行的一连串服务器,来运行整个模型的推理/微调。
值得一提的是,微调后的子模型可以在模型中心共享,继续提供给其他人使用。
此外,为了提高分布式推理的性能,开发人员们还采取了以下策略:
动态量化,使每个GPU存储更多参数,减少连续设备和通信回合的数量;
优先考虑低延迟连接,即每个客户端优先考虑距离近的服务器;
服务器之间的负载均衡。
在这些优化措施的基础之上,研究人员证明,千亿参数级别的模型可以基于PETALS有效运行。
对了,如果你感兴趣,还可以直接在官方提供的Colab链接上试玩一下,地址文末奉上~
关于BigScience
前文说到,PETALS是BigScience项目的一部分。
BigScience是一个开放科学合作计划,旨在打破科技巨头对AI资源的垄断。
此前,在HuggingFace、法国国家大型计算中心等机构的牵头之下,BigScience汇聚来自60个国家和250多个机构的1000多名研究人员,一起搞出了“人人可用”、从代码到数据集通通开源的BLOOM语言大模型。
BLOOM有1760亿参数,支持59种语言,是目前最大的多语种开源语言模型。
目前,PETALS主要支持的就是BLOOM。不过开发人员表示,未来还将支持更多基础模型。
— 完 —