AI News HubLIVE
站內改寫3 分鐘閱讀

通過多令牌預測,Gemma 4 在 MLX 上運行更快

在 Ollama 0.31 中,Gemma 4 在 Apple Silicon 上通過多令牌預測(MTP)顯著提速。在編碼代理基準測試中,性能提升高達 90%。該加速默認開啓,且不改變模型輸出。

2026 年 6 月 29 日

Gemma 4 在 Ollama 0.31 中獲得了顯著的速度提升。在 Apple Silicon 上,它在編碼代理基準測試中平均令牌生成速度提高了近 90%。這一加速默認開啓,且不會改變模型的輸出質量。

速度提升源於多令牌預測(MTP)技術。Gemma 4 配備了一個小巧快速的草稿模型,與主模型並行運行,負責提議接下來的幾個令牌。主模型隨後在單次驗證中檢查這些提議,並保留與其一致的令牌。由於草稿模型體積遠小於主模型,其提議成本低廉;一旦提議正確,模型就能以生成一個令牌的代價提交多個令牌。

代碼文本尤其具有可預測性:包含大量閉合括號、重複標識符和樣板代碼,因此草稿模型的提議被頻繁接受。這對編碼代理尤為重要,因為它們需要持續調用模型來讀取文件、運行工具和處理任務。更快的生成速度使這些代理的響應更加靈敏。

可靠地實現這一效果是難點。理想的草稿令牌數量隨情況變化,草稿過多可能使多令牌預測比不進行推測解碼更慢。Ollama 在運行時自動調整這一數量,因而無需用户配置即可獲得加速。

我們使用 Aider 多語言基準進行測量,該基準通過真實編程任務運行編碼代理。MTP 的收益嚴重依賴工作負載,合成基準幾乎可以展示任何結果。這些數字反映了實際使用中的預期表現。

生成速度

令牌/秒 · 越高越好

開啓 MTP 後,Gemma 4 在 Aider 多語言基準上令牌生成速度提升近 90%。 數據基於 M5 Max 上的 Gemma 4 12B(nvfp4)。

工作原理

三項改進協同工作:草稿長度的選擇方式、引擎每輪運行的機制,以及 GPU 處理任務的方式。

自動調整草稿長度

並不存在一個普適的最佳草稿令牌數量。它取決於模型、量化方式、硬件以及文本在特定時刻的可預測性。在一套配置上表現良好的值可能在另一套上失效。草稿數量過少會浪費性能;草稿過多則會花費更多時間檢查被拒絕的提議,反而得不償失,最終使 MTP 比普通解碼更慢。

Ollama 在運行時確定草稿長度。在生成過程中,它追蹤提議被接受的概率以及每次驗證所需的時間,然後選擇能產生最高令牌速率的長度。隨着文本變化,它會持續調整;當提議不再被接受時,它會退回到逐令牌解碼模式。因此,當推測解碼不再有幫助時,它不會拖慢生成速度。

引擎中的推測解碼

每一輪從草稿模型開始。它預測一個令牌,將其反饋以預測下一個,如此重複直到獲得一串短提議。主模型隨後一次性驗證整個提議序列,在每個位置採樣以確定哪些提議被接受。整個流程在 GPU 上作為單次傳遞完成:草稿、採樣、驗證以及後續採樣,中間無需返回 CPU。

接受的令牌被保留。被拒絕的令牌處理起來更復雜,因為在被拒絕時它們已經寫入了緩存——模型保存的可重用狀態,用於避免重新計算之前的令牌。撤銷它們代價很低。引擎在每個提議之前記錄一個回滾點,拒絕操作將狀態回滾到最後一個被接受的令牌。更早之前的令牌不會被觸及或重新計算。

更快的批量驗證方式

大部分成本來自驗證,而非草稿。草稿模型較小,因此提議令牌成本低。驗證需要在整個提議批次上運行完整模型,而批次的規模通常很尷尬——2 到 8 個令牌。矩陣乘法內核通常針對單個令牌(解碼)或大批量(預填充)優化,而幾個草稿令牌恰好介於兩者之間。

我們為 MLX 貢獻了一個針對這種情況的內核,其他模型也可以使用,而不僅限於 Ollama 中的 Gemma 4。該內核一次性讀取並解包每個權重塊,並在整個批次中複用,而不是為每個令牌重複讀取權重。在 M5 Max 上使用 nvfp4 時,這使得 Gemma 4 最大的矩陣乘法運算速度提升了 2 到 2.5 倍。計算本身完全相同,加速源於消除了冗餘工作。

開始使用

下載 Ollama 0.31 或更高版本的 macOS 版:

下載 Ollama

然後使用 ollama launch 啓動由 Gemma 4 驅動的編碼代理:

ollama launch claude --model gemma4:12b-mlx

注意:如果您之前下載過 Gemma 4,請使用 ollama pull gemma4:12b-mlx 重新拉取以獲得支持 MTP 的版本。

ollama launch 也支持 Codex、Droid、OpenCode、Copilot 等模型。

Gemma 4 是首個獲得此性能改進的模型,後續將有更多模型跟進。