在家用消費級 GPU就能跑 1760 億參數大模型,推理微調都很快。
這事兒可把 AI 愛好者們新鮮壞了。
這不,這個名為PETALS的項目剛開源沒多久,GitHub 标星數就達到了 1.3k。
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
參考鍊接:
[ 1 ] https://github.com/bigscience-workshop/petals
[ 2 ] https://news.ycombinator.com/item?id=34215665