Colibrì靠SSD讓16GB記憶體跑動GLM-5.2

一款叫Colibrì的開源推論引擎,最近在GitHub上衝到3萬7000多顆星、4000多個分支(fork)。它做的事情很直接:讓參數量從幾千億到破兆的MoE大型模型,能在一般人的電腦上跑起來。以智譜的GLM-5.2為例,專案給出的最低配置是16GB記憶體,建議24GB,顯示卡則非必要。

這個專案由Vincenzo Fornaro在7月1日建立,全部用C語言撰寫,執行時零外部相依套件,採用Apache 2.0授權。9月20日釋出的1.12.0版合併了81個提交請求(pull request),9月24日的1.12.1版又合併了96個,其中80個來自外部貢獻者。

權重放在硬碟裡,用到哪一層才讀哪一層

MoE模型的特色是參數總量龐大,但每個token實際用到的比例很低。GLM-5.2總參數7440億,每次呼叫實際只會啟用約400億。Colibrì的做法是不把整個模型塞進記憶體,而是把int4量化後的完整權重放在NVMe固態硬碟上,GLM-5.2大約佔372GB,GLM-5.3大約419GB。

這個專案把顯示記憶體、記憶體、固態硬碟當成同一層統一儲存空間來處理,作者稱之為「權重的即時編譯」。具體做法包括:每一層各自建立最近最少使用(LRU)快取、把高頻專家(expert)固定常駐、提前一層預先抓取下一層可能用到的專家、把多個token需要的專家合併成一次讀取、讀碟與運算重疊進行,並支援兩顆固態硬碟交錯(stripe)並行讀取。

README裡寫明了速度上的取捨:快速儲存裝置不夠時只會變慢,不會降低模型精準度,速度本身則「不做任何保證」。

實際能跑多快

專案提供了幾組實測數據:

  • 6張RTX 5090、權重全部常駐記憶體:每秒5.8至6.8個token
  • 128GB記憶體的純CPU桌機,快取預熱後:每秒約1.8個
  • 單張RTX 5070 Ti:每秒1.07個
  • 作者自己25GB記憶體的開發機,冷啟動時:每秒0.05至0.1個

9月中旬釋出的1.11.0版加入了DeepSeek V4.1 Flash,參數5520億、硬碟佔用510GB,在純CPU機器上直接讀取官方權重、不做格式轉換。作者記錄的冷啟動單輪耗時從78.7秒壓縮到25.1秒,連續五輪對話則穩定在每秒1.14至1.58個token。

1.12.0的主要新功能叫brio模式:呼叫端先給出答案只能從中挑選的幾個選項,引擎直接讀出每個選項的機率,不做取樣產生文字,輸出token數為零,答案不可能跑到選項範圍之外。對多數本機使用者來說,這比一個字一個字等回覆實用得多。

支援名單幾乎是一份中國開放模型清單

Colibrì目前支援九個模型家族:GLM-5.2/5.3與具備視覺能力的GLM-5.3-Flash、DeepSeek V4 Flash與V4.1 Flash、Kimi K3、Qwen3.6與Qwen3.8-Flash-Next,另外還有Inkling與OLMoE。除了後兩者,其餘全部來自智譜、DeepSeek、月之暗面、阿里巴巴這幾家中國公司。

對中國國內的開發者而言,這件事有兩層意義。一是資料不必出本機:律師事務所、醫院、製造業這類無法把文件傳到雲端的場域,只要一台128GB記憶體的工作站加一顆1TB固態硬碟,就能在本機跑動7440億參數的GLM。二是門檻下降:像Kimi K3這種2兆8000億參數的模型,int4權重約1.6TB、記憶體門檻要32GB以上,過去個人幾乎不可能在自己的機器上把它跑起來。

限制同樣明顯。每秒一兩個token的速度,要產出一千字左右的回覆得等上十幾分鐘;固態硬碟長時間高強度隨機讀取造成的壽命耗損,專案文件並未給出估算。作者自己也提醒,推測解碼(speculative decoding)帶來的加速效果只是實測結果,換一台機器未必能重現。

參考來源:Colibrì專案README、Colibrì 1.11至1.12.1版本說明、量子位、CocoLoop;速度數字以專案方公布的各組實測配置為準,星數則取自GitHub頁面。