在 Mac 上运行 Gemma 4:Tempo9 安装与性能测试

2026-10-27

English · 中文

在 Apple Silicon Mac 上运行 Gemma 4,不需要搭建复杂的推理环境。Tempo9 可以直接加载 GGUF 模型,启动兼容 OpenAI API 的本地服务。本文以 M5 Pro、24 GB 统一内存 为例,介绍从安装到调用的基本步骤,并附上与 llama.cpp 的测试结果。

1. 安装 Tempo9

使用 Homebrew 安装:

brew install thinkspread/tap/tempo9

2. 下载 Gemma 4 模型

选择 E2B 或 E4B。下面使用 Unsloth 提供的 Q4_K_M GGUF 文件:

python3 -m pip install -U huggingface_hub
mkdir -p ~/models/gemma4-e
cd ~/models/gemma4-e

# E2B:较小的模型
hf download unsloth/gemma-4-E2B-it-GGUF \
  gemma-4-E2B-it-Q4_K_M.gguf --local-dir .

# E4B:较大的模型(可按需下载)
hf download unsloth/gemma-4-E4B-it-GGUF \
  gemma-4-E4B-it-Q4_K_M.gguf --local-dir .

3. 启动本地推理服务

以 E2B 为例:

tempo9 --gguf ~/models/gemma4-e/gemma-4-E2B-it-Q4_K_M.gguf

如果要运行 E4B,将文件路径替换为 gemma-4-E4B-it-Q4_K_M.gguf 即可。服务默认监听 localhost:11435。

4. 通过 API 调用

可以直接使用兼容 OpenAI Chat Completions 的接口:

curl http://localhost:11435/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4",
    "messages": [
      {"role": "user", "content": "Explain speculative decoding in simple terms."}
    ],
    "max_tokens": 256
  }'

5. 与 llama.cpp 的简短性能对比

我们在同一台 M5 Pro 上,用 Tempo9 1.2.1 和 llama.cpp 0.7.0 加载同一份 Q4_K_M GGUF。以下是这组测试的结果,并不代表其他模型、设备或参数下的普遍表现。

模型Tempo9 1.2.1llama.cpp 0.7.0
E2B 单流135–140 tok/s117–119 tok/s
E4B 单流75–76 tok/s68–69 tok/s
E2B 16 路总吞吐1,029–1,079 tok/s637–644 tok/s
Gemma 4 E2B:合计吞吐 tok/s llama.cpp 0.7.0 Tempo9 1.2.1 N 个并发客户端各 256 个贪心 token;越高越好;两轮交替。 4 个客户端 Tempo9 1.2.1, 4 个客户端: 370–381 370–381 llama.cpp 0.7.0, 4 个客户端: 178–179 178–179 8 个客户端 Tempo9 1.2.1, 8 个客户端: 631–667 631–667 llama.cpp 0.7.0, 8 个客户端: 328–330 328–330 16 个客户端 Tempo9 1.2.1, 16 个客户端: 1029–1079 1029–1079 llama.cpp 0.7.0, 16 个客户端: 637–644 637–644

对这两个模型,在我们的测试配置下,Tempo9 的单流速度领先约 10–16%;16 路并发时,总吞吐约为 llama.cpp 的 1.6 倍。

性能提升主要来自两类优化:针对 Gemma 4 Attention 的专用计算路径,以及降低长上下文 Prefill 和 KV Cache 管理开销。这里仅介绍使用效果,不展开引擎内部实现。

测试方法与版本

测试使用 macOS 26.6.2、M5 Pro 24 GB、Tempo9 1.2.1(引擎 935b18586)、llama.cpp 0.7.0(620d2225c)。单流测试各生成 256 个 token;并发测试为 16 个独立客户端,结果按 API 报告的完成 token 数计算。流式单流速率已核对响应事件数与报告 token 数一致,但这一检查不等于逐 token 解码校验。

需要完整复现时,可下载公开的 Benchmark 脚本和固定测试提示词。

更多安装和更新信息见 Tempo9 Releases。