手機(jī)流暢運(yùn)行470億大模型:上交大發(fā)布LLM手機(jī)推理框架PowerInfer-2,提速29倍
相信很多大家對(duì)手機(jī)流暢運(yùn)行470億大模型:上交大發(fā)布LLM手機(jī)推理框架PowerInfer-2,提速29倍還不知道吧,今天菲菲就帶你們一起去了解一下~.~!
蘋(píng)果一出手,在手機(jī)等移動(dòng)設(shè)備上部署大模型不可避免地成為行業(yè)關(guān)注焦點(diǎn)。
然而,目前在移動(dòng)設(shè)備上運(yùn)行的模型相對(duì)較?。ㄌO(píng)果的是3B,谷歌的是2B),并且消耗大量?jī)?nèi)存,這在很大程度上限制了其應(yīng)用場(chǎng)景。
即使是蘋(píng)果,目前也需要與OpenAI合作,通過(guò)將云端GPT-4o大模型嵌入到操作系統(tǒng)中來(lái)提供能力更強(qiáng)的服務(wù)。
這樣一來(lái),蘋(píng)果的混合方案引起了非常多關(guān)于數(shù)據(jù)隱私的討論和爭(zhēng)議,甚至馬斯克都下場(chǎng)討論。
既然終端側(cè)本地部署大模型的方案既讓手機(jī)用戶(hù)享受到AI強(qiáng)大的智能,又能保護(hù)好自己的隱私安全,為什么蘋(píng)果還要冒著侵犯隱私的風(fēng)險(xiǎn)選擇聯(lián)手OpenAI采用云端大模型呢?主要挑戰(zhàn)有兩點(diǎn):
手機(jī)內(nèi)存不夠大:按照大模型的Scaling Law法則,模型參數(shù)越大,能力對(duì)應(yīng)的也就越強(qiáng),這就意味著能力更強(qiáng)的模型對(duì)內(nèi)存的要求越高。
手機(jī)算力不夠強(qiáng):即使勉強(qiáng)把通過(guò)量化等手段把模型塞進(jìn)手機(jī)了,推理速度也慢,適合的應(yīng)用場(chǎng)景也就非常有限了。
為了解決上述挑戰(zhàn),上海交大IPADS實(shí)驗(yàn)室推出了面向手機(jī)的大模型推理引擎(目前論文已在arxiv公開(kāi)):PowerInfer-2.0。
PowerInfer-2.0能夠在內(nèi)存有限的智能手機(jī)上實(shí)現(xiàn)快速推理,讓Mixtral47B模型在手機(jī)上達(dá)到11tokens/s的速度。
與熱門(mén)開(kāi)源推理框架llama.cpp相比,PowerInfer-2.0的推理加速比平均達(dá)到25倍,最高達(dá)29倍。
為了充分釋放出PowerInfer-2.0框架的最大潛力,上海交大團(tuán)隊(duì)還提出了配套的大模型優(yōu)化技術(shù)Turbo Sparse,相關(guān)論文近期也上傳了arxiv,并且已經(jīng)在業(yè)內(nèi)引起關(guān)注。
另外值得一提的是,去年底上海交大團(tuán)隊(duì)提出了針對(duì)PC場(chǎng)景的快速推理框架PowerInfer-1.0,在4090等消費(fèi)級(jí)顯卡的硬件上,實(shí)現(xiàn)了比llama.cpp高達(dá)11倍的推理加速,曾連續(xù)三天登頂GitHub趨勢(shì)榜,5天獲得了5k的GitHub star,目前已達(dá)到7.1k star。
相比PC,手機(jī)的內(nèi)存和算力受到的約束更多,那么這次的PowerInfer-2.0是如何針對(duì)手機(jī)場(chǎng)景加速大模型推理呢?
動(dòng)態(tài)神經(jīng)元緩存
首先,針對(duì)手機(jī)運(yùn)行內(nèi)存(DRAM)不足的問(wèn)題,PowerInfer-2.0利用了稀疏模型推理時(shí)的一個(gè)特點(diǎn):每次只需要激活一小部分神經(jīng)元,即“稀疏激活”。沒(méi)有被激活的神經(jīng)元即使不參與AI模型的推理計(jì)算,也不會(huì)對(duì)模型的輸出質(zhì)量造成影響。
稀疏激活為降低模型推理的內(nèi)存使用創(chuàng)造了新的機(jī)會(huì)。為了充分利用稀疏激活的特性,PowerInfer-2.0把整個(gè)神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元分成了冷、熱兩種,并在內(nèi)存中基于LRU策略維護(hù)了一個(gè)神經(jīng)元緩存池。
近期頻繁激活的”熱神經(jīng)元”被放置在運(yùn)行內(nèi)存中,而“冷神經(jīng)元”只有在被預(yù)測(cè)激活的時(shí)候,才會(huì)被拉進(jìn)內(nèi)存,大幅降低了內(nèi)存使用量。
其實(shí)冷熱神經(jīng)元分類(lèi),是繼承自PowerInfer-1.0已有的做法。
而在去年12月,蘋(píng)果在面向端側(cè)的大語(yǔ)言模型推理方案“LLM in a Flash”中提出了和神經(jīng)元緩存類(lèi)似的“滑動(dòng)窗口”技術(shù)。但這些工作主要針對(duì)的都是PC環(huán)境,直接遷移到手機(jī)環(huán)境,還會(huì)遇到新的難題。
首先手機(jī)平臺(tái)的硬件條件遠(yuǎn)不及PC,無(wú)論是算力、內(nèi)存總量還是存儲(chǔ)帶寬,都與PC存在較大差距。
其次,手機(jī)硬件平臺(tái)存在CPU、GPU、NPU三種異構(gòu)的計(jì)算單元,十分復(fù)雜。各大硬件平臺(tái)宣發(fā)時(shí)都會(huì)強(qiáng)調(diào)一個(gè)總算力,實(shí)際上是把CPU、GPU、NPU提供的算力加起來(lái)。然而真正跑起大模型來(lái),能不能高效利用各種異構(gòu)算力還是個(gè)問(wèn)題。
以神經(jīng)元簇為粒度的異構(gòu)計(jì)算
針對(duì)這一點(diǎn),PowerInfer-2.0進(jìn)一步把粗粒度的大矩陣計(jì)算分解成細(xì)粒度的“神經(jīng)元簇”。
每個(gè)神經(jīng)元簇可以包含若干個(gè)參與計(jì)算的神經(jīng)元。對(duì)于不同的處理器,會(huì)根據(jù)處理器的特性來(lái)動(dòng)態(tài)決定劃分出來(lái)的神經(jīng)元簇的大小。
例如,NPU擅長(zhǎng)于做大矩陣的計(jì)算,那么可以把所有神經(jīng)元合并成一個(gè)大的神經(jīng)元簇,一起交給NPU計(jì)算,這樣就可以充分利用NPU的計(jì)算能力。而在使用CPU時(shí),可以拆出多個(gè)細(xì)粒度的神經(jīng)元簇,分發(fā)給多個(gè)CPU核心一起計(jì)算。
具體而言,PowerInfer-2.0為模型推理的預(yù)填充階段(Prefill)和解碼階段(Decoding)分別設(shè)計(jì)了兩套神經(jīng)元簇的劃分方案:
預(yù)填充階段會(huì)一次性輸入很多token,基本上絕大部分神經(jīng)元都會(huì)被激活,因此選擇使用大神經(jīng)元簇交給NPU計(jì)算。CPU此時(shí)也沒(méi)有閑著,在后臺(tái)為NPU執(zhí)行反量化模型權(quán)重的操作。
解碼階段每次只有一個(gè)token,具有較高的稀疏性,因此更加適合劃分成若干細(xì)粒度的神經(jīng)元簇,交給CPU靈活調(diào)度和執(zhí)行計(jì)算。
神經(jīng)元簇這一概念除了能夠更好的適應(yīng)手機(jī)的異構(gòu)計(jì)算環(huán)境,還能天然地支持計(jì)算與存儲(chǔ)I/O的流水線(xiàn)并行執(zhí)行。
PowerInfer-2.0提出了分段神經(jīng)元緩存和神經(jīng)元簇級(jí)的流水線(xiàn)技術(shù),在一個(gè)神經(jīng)元簇等待I/O的同時(shí),可以及時(shí)地把另一個(gè)已經(jīng)準(zhǔn)備好的神經(jīng)元簇調(diào)度到處理器上進(jìn)行計(jì)算,從而充分隱藏了I/O的延遲。
同時(shí),這種基于神經(jīng)元簇的流水線(xiàn)打破了傳統(tǒng)推理引擎中逐矩陣計(jì)算的方式,可以允許來(lái)自不同參數(shù)矩陣的神經(jīng)元簇交錯(cuò)執(zhí)行,達(dá)到最高的并行效率。
I/O加載神經(jīng)元的速度對(duì)于模型推理也至關(guān)重要。
分段緩存會(huì)針對(duì)不同的權(quán)重類(lèi)型采取不同策略(如注意力權(quán)重、預(yù)測(cè)器權(quán)重、前饋網(wǎng)絡(luò)權(quán)重)采取不同的緩存策略,提高緩存命中率,減少不必要的磁盤(pán) I/O。
緩存還會(huì)使用LRU替換算法動(dòng)態(tài)更新每個(gè)神經(jīng)元的實(shí)際冷熱情況,確保緩存中放著的都是最熱的神經(jīng)元。此外PowerInfer-2.0還針對(duì)手機(jī)UFS4.0存儲(chǔ)的性能特點(diǎn),設(shè)計(jì)了專(zhuān)門(mén)的模型存儲(chǔ)格式,提高讀取性能。
最后再來(lái)看一下實(shí)測(cè)成績(jī),使用一加12和一加Ace2兩款測(cè)試手機(jī),在內(nèi)存受限的情況下,PowerInfer-2.0的預(yù)填充速度都顯著高于llama.cpp與LLM in a Flash(簡(jiǎn)稱(chēng)“LLMFlash”):
解碼階段同樣是PowerInfer-2.0占據(jù)很大優(yōu)勢(shì)。特別是對(duì)于Mixtral47B這樣的大模型,也能在手機(jī)上跑出11.68tokens/s的速度:
而對(duì)于Mistral7B這種可以放進(jìn)手機(jī)運(yùn)行內(nèi)存的模型,PowerInfer-2.0可以節(jié)約40%內(nèi)存的情況下,達(dá)到與llama.cpp和MLC-LLM同水平甚至更快的解碼速度:
PowerInfer-2.0是一個(gè)模型-系統(tǒng)協(xié)同設(shè)計(jì)的方案,也就是需要模型中可預(yù)測(cè)稀疏性的配合。
如何以低成本的形式調(diào)整模型以適配PowerInfer-2.0框架,也是一個(gè)重大挑戰(zhàn)。
低成本高質(zhì)量地大幅提升模型稀疏性
傳統(tǒng)簡(jiǎn)單的ReLU稀疏化會(huì)給模型原本的能力造成不小的影響。
為了克服這個(gè)問(wèn)題,上海交大IPADS聯(lián)合清華和上海人工智能實(shí)驗(yàn)室提出一個(gè)低成本地稀疏化方法,不僅大幅提升模型的稀疏性,還能保持住模型原本的能力!
首先,論文深入分析了模型稀疏化中的問(wèn)題:
在類(lèi)LLaMA模型中中簡(jiǎn)單引入ReLU,雖然能引入一定程度的稀疏性,但稀疏度仍然有限。
稀疏化過(guò)程由于訓(xùn)練語(yǔ)料的不足和訓(xùn)練token的不足導(dǎo)致模型精度下降的問(wèn)題。
為了提升模型的稀疏度,論文在ReLU基礎(chǔ)上提出dReLU激活函數(shù),采用替換原有激活函數(shù)后繼續(xù)預(yù)訓(xùn)練的方式增加模型稀疏性。
將SwiGLU替換為dReLU一方面直觀地提高了輸出值中的零元素比例,另一方面能更有效地在稀疏化的過(guò)程中復(fù)用原本模型訓(xùn)練完成的gate和up矩陣權(quán)重。
為了克服模型能力下降的問(wèn)題,團(tuán)隊(duì)收集了包括網(wǎng)頁(yè)、代碼和數(shù)學(xué)數(shù)據(jù)集在內(nèi)的多樣化繼續(xù)訓(xùn)練語(yǔ)料庫(kù)。高質(zhì)量、多樣化的訓(xùn)練數(shù)據(jù)有助于模型在稀疏化后更好地保持和提升性能。
最后,團(tuán)隊(duì)訓(xùn)練了2個(gè)TurboSparse大模型進(jìn)行驗(yàn)證,分別是8x7B和7B的大模型。得益于高質(zhì)量的繼續(xù)訓(xùn)練語(yǔ)料,TurboSparse系列模型模型的精度甚至還能反超原版模型(具體見(jiàn)表6)。
而在稀疏度方面效果也非常顯著。相比于原本的Mixtral模型需要激活13B參數(shù)量,TurboSparse-Mixtral只需要激活4.3B的參數(shù)量,激活的參數(shù)量是原本模型的三分之一。
而關(guān)于稀疏化過(guò)程的成本問(wèn)題,TurboSparse論文中介紹,改造過(guò)程中模型需要繼續(xù)訓(xùn)練150B tokens,相比于預(yù)訓(xùn)練(假設(shè)3T tokens)還不到5%,說(shuō)明其成本是很低的。
讓技術(shù)加速走出實(shí)驗(yàn)室
從推理框架和改造模型兩個(gè)角度出發(fā),上海交大團(tuán)隊(duì)的成果實(shí)現(xiàn)了大語(yǔ)言模型在手機(jī)等資源受限場(chǎng)景下的快速推理。
而且這套方案的潛力不止于手機(jī),未來(lái)在車(chē)載設(shè)備、智能家居等方向還有更多應(yīng)用前景。
最后再正式介紹一下團(tuán)隊(duì)。上海交通大學(xué)并行與分布式系統(tǒng)研究所(簡(jiǎn)稱(chēng)IPADS),由陳海波教授領(lǐng)導(dǎo),現(xiàn)有13名教師,100多名學(xué)生。
IPADS長(zhǎng)期從事計(jì)算機(jī)系統(tǒng)的研究,近10年在權(quán)威榜單CSRankings的Operating Systems領(lǐng)域排名全球前二,僅次于MIT;上海交大也是排名前十中唯一上榜的亞洲高校。
目前,上海交大IPADS已經(jīng)在Huggingface上開(kāi)放了稀疏化的模型權(quán)重。在未來(lái),如果PowerInfer-2.0能夠與手機(jī)廠商進(jìn)一步緊密合作,相信可以加速相關(guān)技術(shù)走出實(shí)驗(yàn)室,落地到各種真實(shí)場(chǎng)景。
PowerInfer-2論文:https://arxiv.org/abs/2406.06282
TurboSparse論文:https://arxiv.org/abs/2406.05955
模型權(quán)重:https://huggingface.co/PowerInfer/TurboSparse-Mixtral
—完—
以上就是關(guān)于【手機(jī)流暢運(yùn)行470億大模型:上交大發(fā)布LLM手機(jī)推理框架PowerInfer-2,提速29倍】的相關(guān)內(nèi)容,希望對(duì)大家有幫助!