AI-LECTURER 速報課|2026-07-30|約 28 分鐘

260億參數只吃2GB記憶體?揭開TurboFieldfare讓舊Mac也能跑大型AI的秘密

📍 真實場景
陳雨薇,一位接案十年的日文自由譯者,長期替科技業客戶處理商業合約與新產品發表稿的翻譯

她想在自己那台8GB記憶體的M1 MacBook Air上,用本地端AI幫忙抓翻譯後的小錯字、順一下語氣,因為客戶簽了保密協議,合約內容完全不能上傳到雲端AI

😖 卡住的地方:只要嘗試在電腦上開啟任何『看起來夠聰明』的大型語言模型,系統就跳出『記憶體不足,應用程式已結束』的警告,逼她要不忍受又貴又不安全的雲端AI,要不就得花七、八萬升級電腦
💡 這堂課會告訴她,有工程師做出一套引擎,能讓一個260億參數的大模型只用2GB記憶體就跑起來——連她那台最陽春的8GB Mac都跑得動,靠的不是硬體變便宜,而是一個很聰明的記憶體管理招數

🧭 這到底是什麼(白話版)

有工程師開源了一套叫TurboFieldfare的引擎,讓一個「參數AI模型裡用來記住規律、判斷答案的一堆數字旋鈕,數量越多通常代表模型腦容量越大」高達260億(26B)個的大型AI模型Gemma 4,可以在只有2GBRAM(記憶體)電腦正在使用中、隨時要抓取資料運算的暫存空間,速度快但容量有限,跟硬碟這種「長期倉庫」不一樣的情況下正常運作,而且連8GB記憶體、最陽春的Apple M系列Mac都跑得動。

這麼大的模型能被塞進這麼小的空間,關鍵在於Gemma 4本身是一種叫做「混合專家模型 MoE不是一個模型從頭到尾都是同一組,而是內部拆成很多個專門的小網路,叫做「專家」,每次只挑其中幾個出來工作,而不是整組一起動」的架構。雖然全部專家加起來高達26B參數,但每次推論讓已經訓練好的AI模型根據你輸入的問題去產生答案的過程,跟「訓練」模型是不同的兩件事,推論只是在使用它生成一個字的時候,其實只真正用到大約3.88B(所以官方叫它26B-A4B,A代表Active啟用)。

TurboFieldfare做的事情,就是把「常用的共用核心」跟負責記住對話內容的「KV快取AI在生成一段話時,把前面已經算過的重點暫存起來,才不用每次都從頭重新計算一遍」放在記憶體裡長駐,剩下沒被選到的專家全部留在硬碟上睡覺,只有輪到某個專家上場時,才用「串流(streaming)不是一次把全部資料搬進記憶體,而是需要用到哪一塊,才臨時去硬碟搬那一小塊過來」的方式現抓現用,用完馬上釋放。另外,所有權重都先做過「量化(quantization)把模型內部的數字用比較粗略、佔用空間更小的方式儲存,像把照片存成低畫質版本,檔案小很多、效果差不了太多」處理,壓縮成4-bit,只有負責挑專家的「路由器」保留8-bit精度,確保它不會選錯人。

結果就是,一台連遊戲都嫌貴要省著買的入門8GB Mac,也能跑起一個原本被認為「一定要32GB以上高階機器才跑得動」的大模型,速度雖然不算快(每秒5-6個字),但重點是「能跑」,而且完全在自己電腦上執行,不用把任何資料傳到雲端。

🎯 為什麼值得你花時間

隱私敏感的工作者不用被迫用雲端AI像陳雨薇這種簽了保密協議的譯者、律師、醫療工作者,原本因為記憶體不夠只能被迫選擇雲端AI(有外洩風險)或乾脆不用AI。現在同一台舊電腦就能在本地跑一個夠聰明的大模型,機密文件完全不用離開自己的硬碟。
把『必須買新電腦』的門檻打掉以前想跑得動大模型,通常要16GB、32GB甚至更高規格的機器。這套技術證明只要是M系列Mac,連最低階的8GB機型都能執行等級媲美更大模型的AI,省下的可能是好幾萬元的硬體升級費用。
揭示了一個趨勢:比拚硬體不如比拚工程巧思這件事說明未來AI能不能普及,不只是看誰的顯卡更貴、記憶體更大,而是看誰能把「怎麼載入、怎麼捨棄、怎麼壓縮」這些軟體工程細節做得夠聰明。這種巧思讓一般人用舊設備也能享受到先進AI。

⚙️ 它是怎麼運作的

1
先把模型拆成一堆『專家』模組Gemma 4 26B-A4B內部不是一整塊,而是被設計成很多個專門的小網路(專家),每個負責處理一部分任務,而不是每次都要動用全部26B參數。
2
安裝時,把最常用的『共用核心』留在記憶體裡大約1.35GB的共用核心,加上負責記住對話內容的KV快取,會一直常駐在記憶體裡,因為這些幾乎每個字都會用到,反覆從硬碟搬很浪費時間。
3
生成每個字時,路由器決定要找哪幾位專家一個保留8-bit精度的『路由器』,會根據當下的上下文,從眾多專家裡挑出這次真正需要的少數幾個,而不是把26B參數全部叫出來工作。
4
現抓現用:只把被選中的專家從硬碟串流進記憶體沒被選到的專家繼續留在SSD裡休息,用完的專家也會馬上被釋放,騰出空間給下一個字要用的專家,記憶體用量因此能一直壓在2GB左右。
5
同一份程式碼,低階與高階Mac都能跑,只是速度不同8GB的入門M2 MacBook Air跑起來大約每秒5.1-6.3個字,24GB的M5 Pro則能到每秒31-35個字,兩台機器執行的是同一套引擎、同一個模型。
傳統整包載入 vs. TurboFieldfare串流載入,關鍵差異一覽
比較項目傳統整包載入模式TurboFieldfare串流模式
記憶體需求要接近完整模型大小(約14.3GB以上)只需要約2GB
最低可跑的Mac機型通常要16GB以上記憶體連8GB的入門M系列Mac都能跑
8GB M2機型的實際狀況記憶體不足,通常直接無法執行可正常執行,約每秒5-6個字
硬碟I/O需求低(模型先整包讀進記憶體)較高(邊生成邊從硬碟讀取專家)

🔍 程式碼漫遊(點有 ● 的行看白話講解)

用一段簡化過的假想程式碼,示範『路由器』怎麼幫每個字挑專家、以及為什麼記憶體只需要一咪咪就夠用

all_experts = load_experts_list_from_disk() # 26個(示意)專家清單,並沒有真的讀進記憶體
💬 這裡只讀取『清單』,不是真的把每個專家的參數都搬進RAM——這是省記憶體的第一步。
shared_core, kv_cache = load_into_ram(shared_core_path) # 約1.35GB,常駐記憶體
💬 共用核心跟KV快取幾乎每個字都會用到,所以乾脆一直留在記憶體裡,不用重複搬運。
for token in generate_next_tokens(prompt):
💬 以下這段迴圈,每產生一個字就會執行一次。
chosen_ids = router.pick_top_k(token, k=2) # 用8-bit router選出2個真正要用的專家
💬 路由器決定這個字該找哪幾位專家幫忙,而不是每次都叫全部26個專家出來。
experts_in_ram = stream_from_ssd(chosen_ids) # 現抓現用,從硬碟臨時搬進記憶體
💬 這一行就是『串流』的關鍵:只把剛剛選中的一兩個專家從硬碟搬進記憶體。
output = compute(shared_core, experts_in_ram, kv_cache)
💬 用共用核心+剛搬進來的專家+之前的對話記憶(KV快取),一起算出這個字。
release_from_ram(experts_in_ram) # 用完即丟,騰出空間給下一個字的專家
💬 這行是重點中的重點:專家用完立刻釋放記憶體,才能讓整體用量一直維持在2GB左右。

🛠️ 動手做:模擬對決:記憶體8GB的舊電腦,兩種載入方式誰能活下來?

  1. 先看左邊「傳統模式」:頁面一打開,記憶體用量就已經超過8GB上限,直接顯示應用程式已被強制關閉。
  2. 再點右邊的「▶ 產生下一個字」按鈕,連續點個5~10次。
  3. 觀察每次點擊,右邊只有2顆「專家」圓圈會亮起來(變綠色放大),其餘6顆維持灰色不動。
  4. 留意右邊「記憶體用量」的數字——就算生成了好幾個字,也幾乎維持在2GB上下,不會像左邊一樣爆掉。
  5. 看看下方的說明文字,確認每一次到底是哪幾位專家被叫出來工作、其他人有沒有被打擾到。
  6. 想一想:如果你是那位需要保密文件的自由譯者,兩種模式哪一種能在你的8GB Mac上真正跑起來?
👇 下面是活的,直接操作

🧠 工程思維透鏡(資深工程師看到的是什麼)

🔭 為什麼要把模型拆成很多個『專家』,而不是乾脆把26B參數全部拿來一起用?
這是MoE架構的核心取捨:把模型容量(能記住多少知識)跟推論成本(算一次答案要花多少運算)拆開處理。專家分工讓模型『腦容量』可以做得很大,但每次真正動用的只是一小部分,運算量跟記憶體都能大幅下降。代價是路由器的選擇準不準,直接決定輸出品質——選錯專家,答案就會變差。
🔭 為什麼要把大部分權重壓成4-bit,卻讓路由器保留8-bit精度?
這是典型的『該省的地方省、該花的地方花』的工程判斷。一般專家算錯一點點,頂多讓某個答案稍微不夠精確;但路由器如果因為精度太低而選錯專家,等於整個推論方向就跑偏了。所以作者選擇讓佔記憶體大宗的專家權重狠狠壓縮,但唯獨負責『做決策』的路由器留一手,用比較高的精度換取判斷的可靠性。
🔭 為什麼作者選擇替單一模型量身訂做runtime,而不是包一層通用的MLX或llama.cpp wrapper?
通用框架的優點是彈性大、能跑很多種模型,但也因為要照顧各種情況,很難把某個特定模型的記憶體管理做到極致。作者選擇犧牲『泛用性』(這套引擎目前只服務Gemma 4這個模型),換取針對這個模型的結構去客製化Metal kernel、快取策略跟串流時機,才擠得出2GB就能跑的成果。這是效能與維護成本之間很現實的取捨:新模型出來,可能得重新做一套。
🔭 為什麼作者要花力氣做103筆量測實驗紀錄,而不是直接放一支Demo影片就好?
這反映出『宣稱效能』跟『可驗證效能』之間的差距。單一支Demo影片可能挑最順的那一次錄,但103筆橫跨kernel、快取、I/O、prefill、decode各面向的量測數據,代表作者有系統性地測試不同情境下的表現,並且讓其他人可以照著方法在自己的機器上重現結果。對開源專案來說,這種『可被驗證、可被複製』的透明度,往往比一支漂亮的展示影片更能建立長期信任。

📝 隨堂考(點選答案,立即回饋)

Q1. TurboFieldfare能讓26B參數的Gemma 4模型,壓縮到大約多少記憶體就能執行?
✅ 因為只把共用核心與KV快取留在記憶體裡常駐,其餘專家用完即丟、現抓現用,所以整體只需要大約2GB。
Q2. 這個引擎能省下大量記憶體,核心關鍵技術是什麼?
✅ 關鍵在於MoE架構讓每次只需要用到少數幾個專家,加上串流機制讓沒被選到的專家一直留在硬碟上,不佔記憶體。
Q3. 為什麼路由器(router)用8-bit精度,而不是像其他專家權重一樣壓到4-bit?
✅ 路由器的判斷準確度直接影響整個推論結果,所以即使其他權重都壓縮成4-bit,路由器仍保留較高的8-bit精度來確保選擇正確。
Q4. TurboFieldfare是『模型專屬(model-specific)』的runtime,而不是像llama.cpp那種通用wrapper,這代表什麼樣的工程取捨?
✅ 通用框架要照顧各種模型,難以把單一模型的記憶體管理做到極致;model-specific的做法犧牲了泛用性,換來針對這個模型量身訂做的效能與省記憶體效果。
Q5. Gemma 4「26B-A4B」這個命名裡,「A4B」代表什麼意思?
✅ A代表Active(啟用),意思是雖然模型總共有26B參數,但MoE架構讓每次生成一個字時,真正被動用計算的只有大約3.88B(約4B)個參數。

🃏 翻牌記憶卡(先想答案,再點開對答)

混合專家模型(MoE)點我翻面
把模型拆成很多個小『專家』,每次只挑其中幾個出來用,而不是全部一起動,藉此省下大量運算與記憶體。
量化(quantization)點我翻面
把模型參數用比較粗略的位元數(如4-bit)儲存,檔案變小、速度變快,但會犧牲一點點精準度。
推論(inference)點我翻面
使用一個已經訓練好的AI模型來產生答案的過程,跟『訓練』模型完全是兩回事。
KV快取(KV cache)點我翻面
AI在生成一段話時,暫存前面已經算過的內容,讓它不用每個字都從頭重新計算一遍。
串流載入(streaming)點我翻面
不是一次把全部資料搬進記憶體,而是需要什麼才臨時去硬碟搬一小塊過來用。
啟用參數(Active Parameters)點我翻面
模型雖然總共有很多參數(如26B),但每次實際只動用一小部分(如3.88B)去計算,其餘的暫時用不到。

✅ 離開前自測(全勾=這課真的學會了)

0%