English

本機推論 · 硬體技術報告版本 2026-04-30 · 資料截止 2026-04-27

Gemma 4 · Apple Silicon · Claude Code / Copilot CLI 整合分析

真正的瓶頸是 KV Cache 與 prefill,不是 token 上限

這份報告分析在本機執行 Gemma 4 並接上 agentic CLI 工具所需的硬體條件。結論可以先說:在 agentic 工作流下,決定體感的是 prefill 速度與 KV Cache 佔用,而不是模型能吃多少 context。這也是活躍參數僅 4B 的 26B-A4B MoE 成為本機 agentic 甜蜜點的原因。

  • 60–70%Gemma 5:1 attention 帶來的 KV Cache 減量
  • ÷2每多 25% offload 至 CPU,吞吐大致砍半
  • ~99 sM4 Pro 24G 上單次 tool-call cycle 延遲
  • 5–7×同預算 PC 相對 Mac 的 24/7 電費倍數

關於數據來源

tokens/sec、KV Cache、能耗等實測數據來自 llama.cpp、Unsloth、LLMCheck、Hardware Corner、Reddit r/LocalLLaMA 等社群來源。對未實測的組合會明確標註為估算值。內容不構成購買建議,價格與型號會隨時間變動。

先釐清:Gemma 4 的命名不是 1B/4B/12B/27B 常見的對應錯誤

2026-04-02 Google DeepMind 發布的 Gemma 4 採用 E2B / E4B / 26B-A4B / 31B 命名。1B / 4B / 12B / 27B 實際對應的是 Gemma 3(2025 至 2026 上半年),現仍可從 Ollama 取得。以下表格同時列出兩個世代。

常見說法Gemma 4 SKU架構最大 ctx
1BE2BDense + PLE128K
4BE4BDense + PLE128K
12B無對應(最近為 26B-A4B)MoE,128 experts / 8 active256K
27B31B Dense(旗艦)Dense256K

PLE = Per-Layer Embeddings。E2B/E4B 在效能上等同 Dense 模型,但實際參數量較大;以「有效參數」計大致為 2.3B / 4.5B。

GGUF 權重大小 Unsloth Dynamic 2.0

模型Q4_K_MQ8_0BF16
Gemma 4 E2B(~2.3B 有效)~1.6 GB~2.6 GB~4.6 GB
Gemma 4 E4B(~4.5B 有效)~3.0~5.0~9.0
Gemma 4 26B-A4B MoE16.926.950.5
Gemma 4 31B Dense18.332.661.4
Gemma 3 12B6.6~1324
Gemma 3 27B14.1–15.1~2854

KV Cache:可以壓到三分之一 Gemma 5:1 local-to-global attention

KV 大小的公式為 2 × L × H_kv × T × d_head × bytes_per_element,其中 bytes_per_element 為 FP16=2 / Q8_0=1 / Q4_0=0.5。實務上啟用 --cache-type-k q8_0 -fa on(llama.cpp)或 OLLAMA_KV_CACHE_TYPE=q8_0(Ollama),32K context 的 KV 可從約 15 GB 壓到約 5 GB。

  • 60–70%Gemma 3/4 的 5:1 local-to-global attention(local sliding window = 1024)相對純 global attention 的減量。
  • ×0.5啟用 Q8_0 KV 量化直接砍半。
  • ~30%Flash Attention 降低 activation buffer;Gemma 4 的 hybrid local/global 仰賴 FA sliding window。

macOS 統一記憶體需求 含權重 + KV(FP16, FA on)+ OS 4–6 GB

量化(權重)8K32K128K256K
26B-A4B Q4(16.9 G)24243232
26B-A4B Q8(26.9 G)32484864
31B Q4(18.3 G)24323248
31B Q8(32.6 G)48486496
31B BF16(61.4 G)9696128192

Apple Silicon 的三個已知陷阱 Metal / Flash Attention

  • 會直接 hang

    Ollama + Gemma 4 + FA

    v0.20.3

    • prompt 超過 500 tokens 時整個 hang。
    • Codex CLI 的系統 prompt 約 27K tokens,幾乎一定觸發
    • 解法:改用 llama.cpp 直連,加 -fa on -ctk q8_0 -ctv q8_0
  • 帶寬倒退

    M3 Pro 陷阱

    • Apple 將 M3 Pro 帶寬從 200 GB/s 降至 150 GB/s
    • 部分使用者在 LLM 工作負載上反而比 M2 Pro 慢。
  • 紅利

    MLX 後端

    • 在 <14B 模型上比 llama.cpp 快 20–87%
    • Ollama 0.19+ 在 32 GB 以上統一記憶體的 Mac 自動啟用,多數模型 decode 提升約 93%。

NVIDIA 對照:VRAM 與速度 Q4_K_M · 4K ctx · tokens/sec

顯卡8B14B26B-MoE31B Dense
RTX 3060 12 G4223–29OOMOOM
RTX 4060 Ti 16 G503560–70OOM
RTX 4080 16 G755090–110OOM
RTX 4090 24 G10475–95140–1507.8 *
RTX 5090 32 G130–150100–120180+35

* 4090 跑 31B Q4 因部分需 swap 至 system RAM,反被工作站級多通道 DDR5 + 64 核 CPU(8.8 tok/s)超越。這一格是整張表最重要的一格——它說明裝不下的代價不是變慢一點,而是換一個數量級

VRAM 不足的代價 混合推理的規律

以 RTX 4060 8 G 跑 Qwen 3 8B Q4 為例:25/37 layers offload 時,速度由 40.58 降至 8.62 tok/s——慢 4.7 倍,換來的只是 VRAM 從 7.2 GB 降到 4.8 GB。一般規律是每多 25% offload 至 CPU,吞吐大致砍半,而 agent 工作流(多輪 tool calling)會把這個差距等比放大。

  • 30 秒 → 2–3 分鐘原本 30 秒可完成的 tool-call 循環,VRAM 不足時的實際體感。
  • ~4 tok/snum_gpu=0(純 CPU)的速度,幾乎不可用於 agentic loop。

Claude Code CLI 與 Copilot CLI 兩者都能接本機模型,協定不同

項目Claude CodeCopilot CLI
Ollama 原生是(0.14+,2026-01)是(BYOK,2026-04)
連線協定Anthropic MessagesOpenAI Chat Completions
最低建議 ctx64K128K
Tool calling必要必要 + streaming
Offline 模式部分支援完全(COPILOT_OFFLINE=true)
推薦本地模型GLM-4.7-flash、Gemma 4 26B-A4Bqwen3-coder、glm-5

本地模型的 agentic 評分 Tool calling 成功率與多步能力

模型規模Tool calling多步
GLM-4.7-flash30B MoE98%
Qwen3-Coder 30B-A3B30B MoE93%極強(SWE 71.3)
Devstral-2 24B24B88%中–強
Gemma 4 31B Dense31B85%強(τ2 86.4)
Gemma 4 26B-A4B26B MoE85% *中–強
Qwen3 14B14B75%中等
Llama 3.1 8B8B50%

Ollama tool-calling 的已知問題 會讓整條 agentic 流程失效

  • Qwen 3.5 35B-A3B 在 Ollama 上 tool calling 完全失效——renderer 與 parser 對 <think> 標籤、tool call prefix 處理錯位;repeat_penaltypresence_penalty 被默默忽略(ollama/ollama#14493)。解法為 llama.cpp 直連 + --jinja
  • Gemma 4 streaming tool call:v0.20.3 的 streaming 路徑會把 tool_calls 錯放到 reasoning channel,Codex/Claude Code 解析全失敗;需 v0.20.5 以上。
  • 預設 ctx 過小:Ollama 預設 num_ctx = 2048,對 Claude Code 完全不夠(系統 prompt 約 27K)。需設 OLLAMA_CONTEXT_LENGTH=131072 或在 Modelfile 顯式指定。
  • CUDA 13.2 對 Gemma 4 GGUF 有品質問題(Unsloth 建議降到 12.8)。

單次 tool-call cycle 的實際延遲 這是體感的來源

環境延遲條件
Mac M4 Pro 24 G~99 sllama.cpp + Gemma 4 26B Q4,含 prefill 27K tokens
DGX Spark 128 G~52 sBlackwell GB10 + Ollama + Gemma 4 31B Q4(Codex CLI)
雲端 Sonnet 4~12 shigh reasoning;Opus 4.5 約 15 s

Timeout 要調

Claude Code 預設 stream_idle_timeout_ms = 600,000(10 分鐘)對本地推理只是勉強夠。實務上應拉到 1,800,000(30 分鐘)以應付 Mac 上的 prefill。另一項社群建議:pin 住 llama.cpp 版本——build 之間曾出現 3.3× 的速度回退。

Mac mini 配置層級 以 24/7 常駐使用為前提

層級配置台灣售價可跑
入門M4 16 G / 256 GNT$19,9008B agent
入門+M4 16 G / 512 GNT$26,9008B + 多版本存儲
中階 ★M4 24 G / 512 GNT$33,90014B Q4 + 32K ctx
進階M4 Pro 12C,24 G / 512 G(273 GB/s)NT$46,90026B-A4B Q4
進階+M4 Pro 14C/20GNT$53,90026B-A4B Q4 以上
理想 dev boxM4 Pro 14C/20G,48 G / 1 TBNT$66,900Q5/Q8 30B(超出預算)

Mac mini 在 2026-04-30 仍停留在 2024 年 10 月發布的 M4 / M4 Pro。教育價約折 NT$2,000–4,500(依機型)。至於筆電:M5 Max 的 prompt processing 比 M4 Max 快約 2.3×、token decode 快約 28%,新增的 Neural Accelerators 對 TTFT 影響顯著——對 agentic 使用而言,prompt processing 正是瓶頸所在。

24/7 電費與三年總持有成本 50% 推理 + 50% idle · NT$3.5 / kWh

機種Idle W推理 W月電費3 年 TCO
Mac mini M4 16 G3–435–45NT$60NT$22,000
Mac mini M4 Pro 24 G25–3078–92NT$140NT$52,000
PC + RTX 4060 Ti 16 G~80~280~NT$400NT$52,400
PC + RTX 4090 24 G80–110380–450~NT$750NT$110,000
PC + RTX 5090 32 G~110~500~NT$900NT$130,000+

對「持續運行的個人 AI 助手」而言

同預算下 Windows 規格的性能比可以贏,但 24/7 電費是 Mac 的 5–7 倍。在 NT$20–50k 這個區間,Mac mini 幾乎沒有對手:靜音、低耗、三年 TCO 顯著低於同預算 PC。要注意的限制是 eGPU 不可期——要更多可用記憶體,唯一辦法是換更大記憶體的機型,買了就定型。

最推薦的中位選擇

M4 24 G / 512 G(NT$33,900):能完整 GPU offload 跑 14B Q4 + 32K ctx 加 agent,三年電費僅約 NT$2,200。若預算能到 NT$46,900 的 M4 Pro 12C,273 GB/s 帶寬會讓 14B decode 從 25 提升到 50 tok/s——agent 從「可用」變成「順暢」,這是整條曲線上體感差距最大的一級。