用BT下載的方式在家跑千億大模型,推理/微調(diào)速度10倍提升
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
在家用消費級GPU就能跑1760億參數(shù)大模型,推理微調(diào)都很快。
還是用BT下載的方式實現(xiàn)。
這事兒可把AI愛好者們新鮮壞了。
這不,這個名為PETALS的項目剛開源沒多久,GitHub標(biāo)星數(shù)就達(dá)到了1.3k。
老司機們都知道,BT下載這玩意兒,下載同一個文件的人越多,這個文件的下載速度就越快,因為每個下載用戶都會成為一個“資源節(jié)點”,互通有無。
PETALS道理差不多,就是把大家伙的GPU都利用起來,協(xié)同推理/微調(diào)同一個大模型。
用上它,你的GPU實際上只需要加載大模型的一小部分,就能把模型跑起來,速度還嘎嘎快:
推理速度能達(dá)到1秒/token,比offloading的方式快10倍。
offloading是通過提高GPU利用率,加速模型訓(xùn)練的一種方法,
什么是PETALS
具體來說,PETALS來自BigScience這個科研合作項目。此前人人皆可用的1760億參數(shù)開源大模型BLOOM也來自于該項目。
至于PETALS具體是怎么個用法,先來看看下面這個例子:
張三想基于BLOOM搞個懂法語的語言大模型,而李四則想微調(diào)BLOOM讓它學(xué)會C++編程。
盡管任務(wù)不同,但兩者涉及的一些步驟卻是共通的。
此時包括張三李四在內(nèi)的PETALS用戶們,自個兒的GPU里已分別加載好了模型的一部分(子集)。
于是,張三和李四就可以通過網(wǎng)絡(luò)尋求其他用戶的幫助,利用別人已經(jīng)擁有的模型子集,在最短時間內(nèi)對BLOOM進行微調(diào)。同時,他們GPU上的模型資源也會被其他用戶利用。
實際的操作過程中,PETALS的每個參與者,都會通過本地設(shè)備運行一個服務(wù)器/客戶端,或者兩者兼具。
服務(wù)器包含模型層子集,通常是Transformer塊。同時,服務(wù)器會處理來自客戶端的請求。
客戶端則會形成以流水線形式并行的一連串服務(wù)器,來運行整個模型的推理/微調(diào)。
值得一提的是,微調(diào)后的子模型可以在模型中心共享,繼續(xù)提供給其他人使用。
此外,為了提高分布式推理的性能,開發(fā)人員們還采取了以下策略:
- 動態(tài)量化,使每個GPU存儲更多參數(shù),減少連續(xù)設(shè)備和通信回合的數(shù)量;
- 優(yōu)先考慮低延遲連接,即每個客戶端優(yōu)先考慮距離近的服務(wù)器;
- 服務(wù)器之間的負(fù)載均衡。
在這些優(yōu)化措施的基礎(chǔ)之上,研究人員證明,千億參數(shù)級別的模型可以基于PETALS有效運行。
對了,如果你感興趣,還可以直接在官方提供的Colab鏈接上試玩一下,地址文末奉上~
關(guān)于BigScience
前文說到,PETALS是BigScience項目的一部分。
BigScience是一個開放科學(xué)合作計劃,旨在打破科技巨頭對AI資源的壟斷。
此前,在HuggingFace、法國國家大型計算中心等機構(gòu)的牽頭之下,BigScience匯聚來自60個國家和250多個機構(gòu)的1000多名研究人員,一起搞出了“人人可用”、從代碼到數(shù)據(jù)集通通開源的BLOOM語言大模型。
BLOOM有1760億參數(shù),支持59種語言,是目前最大的多語種開源語言模型。
目前,PETALS主要支持的就是BLOOM。不過開發(fā)人員表示,未來還將支持更多基礎(chǔ)模型。
Colab地址:https://colab.research.google.com/drive/1Ervk6HPNS6AYVr3xVdQnY5a-TjjmLCdQ?usp=sharing