4

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

 1 year ago
source link: https://www.qbitai.com/2023/01/41306.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

head.jpg鱼羊 2023-01-17 13:36:43 来源:量子位

Colab在线可玩

鱼羊 发自 凹非寺

量子位 | 公众号 QbitAI

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

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

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

b6aabbdb270a46179538ca75735d0f23~tplv-tt-shrink:640:0.image

这不,这个名为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上的模型资源也会被其他用户利用。

e503c5e5fbb7448a95df9d0dea83f12e~tplv-tt-shrink:640:0.image

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

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

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

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

ebb027e415ba4e18be54b0d89f48bd63~tplv-tt-shrink:640:0.image

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

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

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

e0824493d7ed48c6ab771face4a3d5e3~tplv-tt-shrink:640:0.image

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

dbd35b8c581949ffa8896664c4eb1ebc~tplv-tt-shrink:640:0.image

关于BigScience

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

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

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

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

f22e66c96363442eaeda69bb91c97d53~tplv-tt-shrink:640:0.image

目前,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

版权所有,未经授权不得以任何形式转载及使用,违者必究。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK