![]()
「你的Mac跑不了這個(gè)模型」——這句話在過(guò)去三年里,成了無(wú)數(shù)開(kāi)發(fā)者的開(kāi)機(jī)畫面。GitHub上那個(gè)叫hypura的項(xiàng)目,最近用214個(gè)star證明:有人終于受夠了。
它干的事很簡(jiǎn)單:讓32G內(nèi)存的Mac Mini流暢運(yùn)行31G的Mixtral 8x7B,甚至能啃下40G的Llama 70B。而原版llama.cpp?直接崩潰,連OOM killer都懶得等。
蘋果給了一把好刀,但刀刃朝內(nèi)
蘋果Silicon的設(shè)計(jì)像個(gè)精致的陷阱。統(tǒng)一內(nèi)存帶寬夠快,NVMe(非易失性內(nèi)存主機(jī)控制器接口規(guī)范)順序讀取能到5.1GB/s,但容量鎖死——32G就是32G,焊在主板上,加錢都沒(méi)門。
傳統(tǒng)思路是內(nèi)存映射(mmap)。模型太大?扔給操作系統(tǒng),讓它自己swap(交換)去。結(jié)果是swap thrashing(交換抖動(dòng)):硬盤燈狂閃,風(fēng)扇起飛,最后系統(tǒng)一刀把你進(jìn)程砍了。這不是慢,是死。
hypura的作者看穿了這套邏輯。操作系統(tǒng)不懂模型架構(gòu),它只知道「這個(gè)頁(yè)最近沒(méi)訪問(wèn),踢出去」。但Transformer的注意力層和前饋網(wǎng)絡(luò),訪問(wèn)模式天差地別。讓OS(操作系統(tǒng))做決策,等于讓出租車司機(jī)幫你優(yōu)化供應(yīng)鏈——專業(yè)不對(duì)口。
三層存儲(chǔ),一場(chǎng)精密的接力賽
hypura把硬件拆成三級(jí):GPU顯存、RAM(內(nèi)存)、NVMe硬盤。每個(gè)tensor(張量)該住哪,它算得明明白白。
核心是一個(gè)placement optimization(放置優(yōu)化)問(wèn)題。系統(tǒng)先讀GGUF文件,再給你的硬件做CT:GPU工作集多大、RAM剩多少、NVMe帶寬實(shí)測(cè)多少。然后給每個(gè)tensor打分——放GPU多快、放RAM多快、放硬盤又要付出多少帶寬代價(jià)。
MoE(混合專家模型)模型在這里占了便宜。Mixtral 8x7B有8個(gè)專家,但每次只激活2個(gè)。hypura把非專家tensor焊死在GPU,專家tensor按需從NVMe流式讀取。2.2 tok/s的生成速度,夠你寫代碼時(shí)跟AI對(duì)話了。
非MoE模型更慘一點(diǎn)。Llama 70B沒(méi)有稀疏性可鉆,只能dense FFN-streaming(稠密前饋網(wǎng)絡(luò)流式傳輸)。0.3 tok/s,慢,但能跑完。原版?連這個(gè)數(shù)字都看不到。
零開(kāi)銷的隱藏承諾
有個(gè)細(xì)節(jié)容易被忽略:hypura對(duì)「能裝進(jìn)內(nèi)存的模型」承諾零開(kāi)銷。
這很重要。很多「優(yōu)化工具」為了展示極端場(chǎng)景的魔法,會(huì)在正常場(chǎng)景偷偷加稅。hypura沒(méi)這么干——如果模型fit(適配),它直接走M(jìn)etal GPU全速,不插一腳。
自動(dòng)調(diào)參也是真的自動(dòng)。pool buffer size(池緩沖區(qū)大小)、prefetch depth(預(yù)取深度)、memory budgets(內(nèi)存預(yù)算),全部從硬件profile(畫像)算出來(lái)。用戶不用啃文檔調(diào)yaml,這是產(chǎn)品經(jīng)理思維,不是研究員思維。
構(gòu)建依賴很克制:Rust 1.75+、CMake,沒(méi)了。沒(méi)有CUDA(英偉達(dá)并行計(jì)算平臺(tái))的尸山血海,沒(méi)有Python環(huán)境的九層地獄。蘋果生態(tài)的開(kāi)發(fā)者,cargo build之后就能跑。
214個(gè)star背后的沉默大多數(shù)
項(xiàng)目主頁(yè)沒(méi)寫作者是誰(shuí),但CLAUDE.md的存在泄露了線索——這大概是某個(gè)被Claude(Anthropic公司AI助手)輔助過(guò)的周末項(xiàng)目,或者反過(guò)來(lái)。
真正有趣的是benchmark(基準(zhǔn)測(cè)試)的誠(chéng)實(shí)。2.2 tok/s和0.3 tok/s都標(biāo)出來(lái)了,沒(méi)拿「理論峰值」糊弄人。M1 Max 32G的配置也寫得清楚,不是「最高配Mac Studio」的模糊說(shuō)法。
蘋果WWDC(全球開(kāi)發(fā)者大會(huì))上會(huì)不會(huì)出現(xiàn)類似功能?歷史經(jīng)驗(yàn)是:第三方把路探明白,官方才慢悠悠跟進(jìn)。Core ML(蘋果機(jī)器學(xué)習(xí)框架)對(duì)LLM(大語(yǔ)言模型)的支持至今像個(gè)半成品,而hypura已經(jīng)能跑70B了。
有個(gè)用戶場(chǎng)景被反復(fù)提及:「interactive speeds(交互速度)」。不是批處理,不是離線生成,是你在終端打字、AI實(shí)時(shí)回應(yīng)的那種流暢。2.2 tok/s夠慢,但夠用了。這是產(chǎn)品定義的勝利——先解決「能不能跑」,再優(yōu)化「跑多快」。
項(xiàng)目README的最后一行是構(gòu)建說(shuō)明,沒(méi)寫roadmap(路線圖),沒(méi)喊口號(hào)。但RESEARCH_INTEGRATION_PLAN.md的存在暗示:作者知道這東西的學(xué)術(shù)價(jià)值,只是沒(méi)急著發(fā)論文。
214個(gè)star,6個(gè)fork。數(shù)字不大,但點(diǎn)star的人里,大概有不少是默默刪掉llama.cpp、換上hypura之后,長(zhǎng)舒一口氣的32G Mac用戶。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.