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