用BT下載的方式在家跑千億大模型,推理/微調速度10倍提升
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
在家用消費級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。不過開發人員表示,未來還將支持更多基礎模型。
Colab地址:https://colab.research.google.com/drive/1Ervk6HPNS6AYVr3xVdQnY5a-TjjmLCdQ?usp=sharing