Google Gemma 4(2026-06-03 发布)在 Apple M4 / 32GB 统一内存上的完整测试记录: 短任务 + 长上下文压测 + 多模态视觉 + OpenCode 集成 + 5 条踩坑清单。
| 维度 | E4B Q4_K_M | 12B Q4_K_M |
|---|---|---|
| 模型大小 | 5.0 GB | 7.1 GB |
| 短任务生成速度 | 19 tok/s | 8 tok/s |
| 短任务 TTFT | < 1s | 1-2s |
| 长 ctx 安全上限 | 64K | 32K |
| Vision 速度 | 17-20s/张 | 43-60s/张 |
| 角色定位 | 实时对话伙伴 | 批处理重活外包 |
核心结论:M4 base 内存带宽 120 GB/s 是真正的瓶颈,12B 的 8 tok/s 不是算力不够、是带宽喂不饱。本地小模型不适合当 OpenCode 编码 agent(system prompt 太长撑不住);E4B 当 chat、12B 当批处理、Vision 当截图理解,三件套覆盖 80% 实用本地 AI 场景。
| 文件 | 内容 |
|---|---|
| SUMMARY.md | 总报告 —— 一站式 TL;DR + 完成度 + 实测 + 踩坑 + 场景推荐 |
| PLAN.md | 原始执行计划 |
| REPORT.md | 短任务 bench(翻译 / Swift 代码 / 数据分析) |
| REPORT-longctx.md | 长上下文压测(E4B 4 档 + 12B 3 档) |
| REPORT-vision.md | 多模态视觉测试(E4B vs 12B) |
| dashboard/README.md | 直连 Ollama 聊天面板(by judy) |
| 文件 | 用途 |
|---|---|
bench.py |
短任务 benchmark 脚本 |
longctx.py |
长上下文压测脚本 |
dashboard/server.py + dashboard/index.html |
网页直连 Ollama 聊天面板 |
results.json— 短任务 6 条原始记录longctx-results.json— 长上下文 7 条longctx-results.thinking-on.json— 第一轮废数据(thinking 模式踩坑现场)vision-12b-results.json— 12B vision 2 条longctx.log— 长上下文压测运行日志
opencode-tui-build-mode.png— OpenCode TUI Build mode 卡住 E4B 的现场(系统 prompt 撞 4B 模型)web-direct-ollama-chat.png— 网页直连 Ollama 秒回的对比
- Mac mini M4(Mac16,10)/ Apple M4 SoC / 10 核 CPU(4P+6E)/ 10 核 GPU
- 统一内存 32 GB / 内存带宽 120 GB/s
- macOS 26.5.1
- Ollama 0.30.5(cask 版 —— brew formula 在 macOS 26/arm64 上是坏的)
- 关键参数:
OLLAMA_FLASH_ATTENTION=1+OLLAMA_KV_CACHE_TYPE=q8_0
brew install --cask ollama-app(不要用brew install ollama,formula 缺 binary)OLLAMA_MODELS=<大容量盘>/ollama-models ollama serveollama pull gemma4:e4b和ollama pull gemma4:12b- Vision 需要单独 create 带
ADAPTER指向 mmproj 的 Modelfile(详见 REPORT-vision.md 配方) - 跑
python3 bench.py或python3 longctx.py,确保 API 调用带"think": false(否则 token 全跑进 thinking 字段、response为空)
MIT。数据和脚本可自由使用、复制、改造。