蘋果如何最佳化端側大模型:靠快閃記憶體突破記憶體限制,跑 2 倍大模型
Apple 發表論文《LLM in a flash》,展示如何將模型引數存放在快閃記憶體並按需調入 DRAM。藉助視窗化複用與行列捆綁技術,裝置能執行自身記憶體 2 倍大的模型,GPU 推理提速最高達 25 倍。這為端側生成式 AI 落地鋪平了道路。

手機跑大語言模型,最大的攔路虎向來不是晶片算力不夠,而是記憶體太小。一臺手機的執行記憶體一共就那麼大,稍微像樣點的大模型動輒幾 GB 甚至十幾 GB,一塞進去系統直接卡死。
蘋果最近放出來的一篇重磅論文,偏偏就盯上了這個痛點。在題為《LLM in a flash: Efficient Large Language Model Inference with Limited Memory》的論文裡,蘋果研究團隊提出了一套全新方案:既然執行記憶體不夠,那就把模型引數扔進手機的快閃記憶體裡,用到哪部分,再臨時搬到記憶體裡。
快閃記憶體當記憶體用,蘋果用了兩記巧招
把快閃記憶體當記憶體使聽起來簡單,但快閃記憶體的讀取速度天生比執行記憶體慢得多。如果傻傻地每次現用現讀,手機能卡成幻燈片。
蘋果的做法是給快閃記憶體算了一筆精細賬。他們構建了一個專門針對快閃記憶體特性的推理成本模型,把力氣集中在兩件事上:儘量少從快閃記憶體往記憶體搬資料,以及只要搬,就一口氣搬大塊、連續的資料。
為了做到這兩點,蘋果設計了兩個關鍵技術。
第一個叫「視窗化」(windowing)。大模型在推理的時候,很多神經元其實是一直被啟用的。蘋果這套技術就是把之前啟用過的神經元複用起來,只搬運真正發生變化的新資料,從而大幅削減了資料傳輸量。
第二個叫「行列捆綁」(row-column bundling)。快閃記憶體最擅長順序讀取大塊資料,最討厭零散的隨機小讀取。蘋果根據這個特點,把快閃記憶體裡讀取的資料塊捆綁得更大、更連續,直接吃滿了快閃記憶體的順序讀取吞吐量。
兩招配合下來,手機能跑比自身可用執行記憶體大一倍的模型。而在推理速度上,相比傳統樸素載入方式,CPU 上的速度提升了 4 到 5 倍,GPU 上更是飆升了 20 到 25 倍。
手機廠商的端側軍備競賽
這項技術之所以引人矚目,是因為蘋果正憋著在 iOS 18 裡端出一整套生成式 AI 能力。
外界目前普遍預期,蘋果打算用生成式 AI 重塑 Siri 和簡訊應用,讓它們在回答複雜問題、自動補全句子時表現得更聰明。不僅如此,蘋果還在探索把這套能力塞進 Apple Music、Pages、Keynote 以及開發者離不開的 Xcode 裡。
蘋果顯然不是唯一急著把大模型塞進手機裡的巨頭。
三星剛剛釋出了自家端側大模型 Gauss,據報道馬上就要整合進 2024 年初發布的 Galaxy S24 系列旗艦機中,未來還會覆蓋筆記本和平板電腦。
Google 也沒閒著,之前就公佈了專為端側設計的 Gemini Nano 模型,正準備落實在 Pixel 8 手機上,用來實現錄音機自動生成摘要以及 Gboard 輸入法智慧回覆。
為什麼重要
這篇論文最值得關注的地方,在於它真正打到了端側 AI 的成本七寸。
對於普通使用者來說,這意味著你以後不需要為了用上最新本地 AI,被迫去買動輒 16GB 甚至更大記憶體的頂配手機。本地大模型不僅響應快,更關鍵的是隱私資料不需要上傳雲端,甚至沒網的時候也能跑。
從行業角度看,蘋果的做法非常聰明。手機硬體裡 DRAM 晶片成本高、耗電大,如果全靠死堆硬體記憶體,手機價格很難壓下來。蘋果沒有硬著頭皮堆料,而是靠軟硬體協同的演算法,把原本廉價但速度慢的快閃記憶體利用到了極致。
不過在我們看來,這種方案並不是沒有隱患。大模型頻繁從快閃記憶體搬運資料,快閃記憶體顆粒的讀寫擦寫壽命(TBW)和發熱消耗會承受多大壓力,論文裡並沒有給出長期的實測結論。
但不管怎麼說,蘋果已經指明瞭一條路:端側 AI 的主戰場,正在從比拼誰的模型引數更大,轉向誰能用更剋制的硬體把體驗壓進使用者口袋裡。
來源 (1)
- analyticsindiamag.com(在新分頁開啟)原文analyticsindiamag.com