摘要 · 技術報告
本機推論 · 硬體技術報告版本 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 等社群來源。對未實測的組合會明確標註為估算值。內容不構成購買建議,價格與型號會隨時間變動。
起 · 模型與記憶體 · 內容 1 / 4
先釐清: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 |
|---|---|---|---|
| 1B | E2B | Dense + PLE | 128K |
| 4B | E4B | Dense + PLE | 128K |
| 12B | 無對應(最近為 26B-A4B) | MoE,128 experts / 8 active | 256K |
| 27B | 31B Dense(旗艦) | Dense | 256K |
PLE = Per-Layer Embeddings。E2B/E4B 在效能上等同 Dense 模型,但實際參數量較大;以「有效參數」計大致為 2.3B / 4.5B。
GGUF 權重大小 Unsloth Dynamic 2.0
| 模型 | Q4_K_M | Q8_0 | BF16 |
|---|---|---|---|
| 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 MoE | 16.9 | 26.9 | 50.5 |
| Gemma 4 31B Dense | 18.3 | 32.6 | 61.4 |
| Gemma 3 12B | 6.6 | ~13 | 24 |
| Gemma 3 27B | 14.1–15.1 | ~28 | 54 |
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
| 量化(權重) | 8K | 32K | 128K | 256K |
|---|---|---|---|---|
| 26B-A4B Q4(16.9 G) | 24 | 24 | 32 | 32 |
| 26B-A4B Q8(26.9 G) | 32 | 48 | 48 | 64 |
| 31B Q4(18.3 G) | 24 | 32 | 32 | 48 |
| 31B Q8(32.6 G) | 48 | 48 | 64 | 96 |
| 31B BF16(61.4 G) | 96 | 96 | 128 | 192 |
承 · 硬體與陷阱 · 內容 2 / 4
Apple Silicon 的三個已知陷阱 Metal / Flash Attention
會直接 hang
Ollama + Gemma 4 + FA
- 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
| 顯卡 | 8B | 14B | 26B-MoE | 31B Dense |
|---|---|---|---|---|
| RTX 3060 12 G | 42 | 23–29 | OOM | OOM |
| RTX 4060 Ti 16 G | 50 | 35 | 60–70 | OOM |
| RTX 4080 16 G | 75 | 50 | 90–110 | OOM |
| RTX 4090 24 G | 104 | 75–95 | 140–150 | 7.8 * |
| RTX 5090 32 G | 130–150 | 100–120 | 180+ | 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。
轉 · CLI 整合與延遲 · 內容 3 / 4
Claude Code CLI 與 Copilot CLI 兩者都能接本機模型,協定不同
| 項目 | Claude Code | Copilot CLI |
|---|---|---|
| Ollama 原生 | 是(0.14+,2026-01) | 是(BYOK,2026-04) |
| 連線協定 | Anthropic Messages | OpenAI Chat Completions |
| 最低建議 ctx | 64K | 128K |
| Tool calling | 必要 | 必要 + streaming |
| Offline 模式 | 部分支援 | 完全(COPILOT_OFFLINE=true) |
| 推薦本地模型 | GLM-4.7-flash、Gemma 4 26B-A4B | qwen3-coder、glm-5 |
本地模型的 agentic 評分 Tool calling 成功率與多步能力
| 模型 | 規模 | Tool calling | 多步 |
|---|---|---|---|
| GLM-4.7-flash | 30B MoE | 98% | 強 |
| Qwen3-Coder 30B-A3B | 30B MoE | 93% | 極強(SWE 71.3) |
| Devstral-2 24B | 24B | 88% | 中–強 |
| Gemma 4 31B Dense | 31B | 85% | 強(τ2 86.4) |
| Gemma 4 26B-A4B | 26B MoE | 85% * | 中–強 |
| Qwen3 14B | 14B | 75% | 中等 |
| Llama 3.1 8B | 8B | 50% | 弱 |
Ollama tool-calling 的已知問題 會讓整條 agentic 流程失效
- Qwen 3.5 35B-A3B 在 Ollama 上 tool calling 完全失效——renderer 與 parser 對
<think>標籤、tool call prefix 處理錯位;repeat_penalty/presence_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 s | llama.cpp + Gemma 4 26B Q4,含 prefill 27K tokens |
| DGX Spark 128 G | ~52 s | Blackwell GB10 + Ollama + Gemma 4 31B Q4(Codex CLI) |
| 雲端 Sonnet 4 | ~12 s | high 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× 的速度回退。
合 · 選購與總持有成本 · 內容 4 / 4
Mac mini 配置層級 以 24/7 常駐使用為前提
| 層級 | 配置 | 台灣售價 | 可跑 |
|---|---|---|---|
| 入門 | M4 16 G / 256 G | NT$19,900 | 8B agent |
| 入門+ | M4 16 G / 512 G | NT$26,900 | 8B + 多版本存儲 |
| 中階 ★ | M4 24 G / 512 G | NT$33,900 | 14B Q4 + 32K ctx |
| 進階 | M4 Pro 12C,24 G / 512 G(273 GB/s) | NT$46,900 | 26B-A4B Q4 |
| 進階+ | M4 Pro 14C/20G | NT$53,900 | 26B-A4B Q4 以上 |
| 理想 dev box | M4 Pro 14C/20G,48 G / 1 TB | NT$66,900 | Q5/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 G | 3–4 | 35–45 | NT$60 | NT$22,000 |
| Mac mini M4 Pro 24 G | 25–30 | 78–92 | NT$140 | NT$52,000 |
| PC + RTX 4060 Ti 16 G | ~80 | ~280 | ~NT$400 | NT$52,400 |
| PC + RTX 4090 24 G | 80–110 | 380–450 | ~NT$750 | NT$110,000 |
| PC + RTX 5090 32 G | ~110 | ~500 | ~NT$900 | NT$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 從「可用」變成「順暢」,這是整條曲線上體感差距最大的一級。