在 Gemma 4 相關模型裡看到 assistant-MTP、assistant、MTP drafter 這類名字時,不要把它當成一個獨立聊天模型。
它更準確的定位是:Gemma 4 主模型配套的多 Token 預測草稿模型,用來做 Speculative Decoding,也就是投機解碼。
一句話概括:主模型負責最終判斷,assistant-MTP 負責提前打草稿。如果草稿猜對了,主模型一次確認多個 token,生成速度就能提高。
它到底是什麼
MTP 是 Multi-Token Prediction,意思是多 Token 預測。
Gemma 4 的 assistant-MTP 可以理解成一個輕量級輔助模型,也常被叫作 drafter、draft model 或草稿模型。它通常和對應的 Gemma 4 主模型配對使用,例如:
Gemma 4 12B搭配對應的12B assistant-MTPGemma 4 26B搭配對應的26B assistant-MTPGemma 4 31B搭配對應的31B assistant-MTP
它的作用不是直接回答使用者問題,而是替主模型預測接下來幾個可能出現的 token。
最終輸出仍然由主模型驗證後決定。所以 assistant-MTP 更像一個「預讀器」或「草稿頭」,不是新的聊天模型。
為什麼普通生成會慢
傳統自回歸語言模型生成文字時,一般是這樣:
- 根據已有上下文預測下一個 token。
- 把這個 token 加回上下文。
- 再預測下一個 token。
- 重複直到生成完成。
這個過程很穩,但天然是串行的。哪怕後面幾個 token 很容易猜,比如固定格式、程式碼模板、常見短語,模型也要一個一個算。
在本地推理或消費級顯卡上,這種逐 token 生成會放大顯存頻寬瓶頸:每生成一個 token,都要重複搬運大量模型權重,計算單元不一定被充分利用。
MTP 的思路就是利用這個空檔:讓更輕的草稿模型先猜多個 token,再交給主模型並行驗證。
投機解碼怎麼工作
可以把流程拆成四步:
-
assistant-MTP 先預測未來幾個 token。
例如一次猜 4 個候選 token。
-
主模型讀取這些候選 token。
主模型不盲信草稿,而是並行檢查這些 token 是否符合自己的分布。
-
猜對的 token 被接受。
如果前 3 個都通過驗證,就相當於主模型一次生成了 3 個 token。
-
猜錯的位置回退。
如果第 4 個不被接受,就從那裡重新按主模型邏輯繼續生成。
所以它不是「犧牲品質換速度」。主模型仍然負責最終驗證,只是把可能正確的後續 token 提前拿來檢查。
為什麼輸出可以保持一致
投機解碼最容易誤解的一點是:是不是用了小模型,結果就變差?
在標準 speculative decoding 裡,答案通常是否定的。因為草稿模型只負責提出候選,主模型負責驗收。被接受的 token 必須符合主模型的採樣邏輯;不符合的 token 會被拒絕。
這意味著理論上最終輸出分布可以保持與不使用草稿模型時一致。Google 對 Gemma 4 MTP drafter 的定位也是:在不降低輸出品質和推理邏輯的前提下提升速度。
實際工程裡,最終效果還取決於推理框架實作、採樣參數、MTP 支援是否完整、主模型和 assistant 模型是否正確配對。
它為什麼能加速
加速來自兩個因素:
- 草稿模型更輕,預測候選 token 的成本低。
- 主模型可以一次驗證多個候選 token,減少逐 token 等待。
如果 assistant-MTP 猜得準,一次主模型前向就能接受多個 token,吞吐會明顯提高。Google 發布時提到,Gemma 4 搭配 MTP drafter 在部分硬體和框架中最高可獲得約 3 倍速度提升。
但這個數字不是任何場景都能穩定復現。加速效果取決於:
- 主模型大小。
- assistant 模型和主模型的匹配程度。
- 每次預測多少 speculative tokens。
- prompt 類型。
- 採樣溫度。
- 推理框架實作。
- GPU / CPU / 記憶體頻寬。
通常來說,格式化文字、程式碼、固定結構、常見短語更容易被草稿模型猜中;高度開放、隨機性強、temperature 很高的生成,加速效果可能變弱。
如何使用
assistant-MTP 需要推理框架支援。不是下載了 assistant 模型就能直接聊天。
常見使用方式有兩類。
方式一:主模型內建 MTP 支援
部分框架會直接讀取 Gemma 4 的 MTP 相關結構,透過參數開啟。例如 vLLM 社群裡常見的方向是用 speculative config:
|
|
這種方式不一定需要單獨指定 assistant 模型,具體取決於模型格式和框架實作。
方式二:單獨載入 assistant / drafter 模型
在 GGUF / llama.cpp 這類本地推理場景裡,更常見的是主模型和 draft 模型分開載入。思路類似:
|
|
這裡的重點是:
-m指主模型。--model-draft指 assistant-MTP 草稿模型。--spec-type draft-mtp開啟 MTP 草稿模式。--spec-draft-n-max 4表示最多草擬 4 個 token。
不同 llama.cpp 版本參數可能會變化,實際使用前要以目前版本 --help 和模型卡說明為準。
參數怎麼調
--spec-draft-n-max
這個參數控制一次最多讓 assistant-MTP 草擬多少 token。
可以從小值開始:
|
|
再嘗試:
|
|
值越大,不一定越快。如果草稿命中率下降,主模型會頻繁拒絕候選,反而浪費計算。
temperature
temperature 越高,輸出越隨機,assistant-MTP 越難猜中主模型後續 token。
如果目標是加速和穩定,可以先用:
|
|
或者更低:
|
|
程式碼補全、格式修復、結構化輸出任務,低 temperature 通常更適合。
上下文長度
MTP 不是顯存魔法。主模型和草稿模型都需要占資源,長上下文仍然會吃 KV cache。
8GB 或 12GB 顯存機器不要一上來就開 64K / 128K。可以先用:
|
|
確認穩定後再往上調。
適合哪些任務
assistant-MTP 更適合這些場景:
- 程式碼補全。
- JSON / Markdown / XML 這類結構化輸出。
- 固定格式報告。
- 數學步驟或表格類輸出。
- 低溫度、確定性較強的問答。
- 本地模型聊天時降低延遲。
這些任務的共同點是:後續 token 有較強規律,草稿模型更容易猜中。
不適合哪些任務
它不適合被當作「提高模型智商」的工具。
assistant-MTP 不會讓主模型更聰明,也不會改善事實準確性。它解決的是生成速度問題,不是推理品質問題。
這些場景收益可能不明顯:
- temperature 很高的創意寫作。
- 強隨機採樣。
- 草稿模型和主模型不匹配。
- 推理框架 MTP 支援不完整。
- 顯存已經非常緊張,還要額外載入 draft 模型。
尤其是小顯存機器,要注意 assistant-MTP 也會占顯存或記憶體。速度收益可能被額外資源占用抵消。
常見誤區
誤區一:assistant-MTP 是聊天模型
不是。它是給主模型做 speculative decoding 的輔助模型。直接拿它聊天,沒有實際意義,也可能效果很差。
誤區二:用了 MTP 輸出一定不變
理論目標是保持主模型輸出分布一致,因為最終由主模型驗證。但工程實作、採樣參數、框架版本都會影響實際行為。生產使用前仍要對比測試。
誤區三:--spec-draft-n-max 越大越好
不一定。草擬越多,猜錯機率也可能越高。要看接受率和 tokens/s,不能只看參數值。
誤區四:它能解決顯存不足
不能。MTP 是推理加速,不是顯存壓縮。小顯存機器更應該先解決量化、上下文長度、GPU 卸載層數,再考慮 MTP。
怎麼判斷是否真的加速
不要只憑體感。建議對同一組 prompt 做 A/B 測試:
- 不開啟 MTP,記錄 tokens/s。
- 開啟 MTP,記錄 tokens/s。
- 保持相同模型、上下文、temperature、prompt。
- 比較輸出品質和延遲。
可以用三類 prompt 測:
|
|
|
|
|
|
如果這些結構化任務明顯變快,而且輸出品質沒有下降,說明 assistant-MTP 在你的環境裡值得保留。
小結
Gemma 4 的 assistant-MTP 是配合主模型使用的多 Token 預測草稿模型。它透過 speculative decoding 提前預測多個 token,再由主模型並行驗證,從而減少逐 token 生成帶來的延遲。
它的價值是加速,不是提升模型能力。正確使用方式是:主模型負責最終輸出,assistant-MTP 負責提前草擬;推理框架負責驗證和接受候選 token。
如果你已經能穩定跑 Gemma 4,再考慮 MTP。先從較小的 speculative token 數開始,觀察 tokens/s、顯存占用和輸出品質,再決定是否把它加入日常運行腳本。
參考資料: