Gemma 4 太慢了?加速指南(Mac/Windows/Linux)

2026/04/07

Gemma 4 下好了,跑起来了,但是……慢得要命。一秒两三个 token,甚至更慢。先别急着怪模型,大部分情况下调几个参数就能快 5-10 倍。这篇帮你一步步排查和解决。

第一步:找到慢的原因

Gemma 4 慢通常就这五个原因,挨个排查。

原因一:CPU 在跑,GPU 在看

这是最常见的速度杀手。模型跑在 CPU 上,GPU 完全没用上,但你可能根本没发现。

怎么检查:

# Mac:看 GPU 有没有在干活
sudo powermetrics --samplers gpu_power -n 1

# NVIDIA:利用率应该 > 0%
nvidia-smi

# AMD:同理
rocm-smi

如果推理时 GPU 利用率一直是 0%,那就是在用 CPU 跑。先解决这个,其他都是白搭。

原因二:量化选错了

不同量化对速度的影响非常大:

量化格式文件大小 (12B)速度质量适合场景
Q4_K_M~7 GB最快不错日常使用
Q5_K_M~8.5 GB更好对质量有要求
Q6_K~10 GB中等很好平衡选择
Q8_0~13 GB接近原始对质量敏感的任务
FP16~24 GB最慢原始质量显存充足才用
IQ4_XS~6 GB最快可接受显存紧张

如果你在跑 Q8 或 FP16 还嫌慢,换成 Q4_K_M 试试。质量差别在大部分任务上感知不到,但速度差别是真的大。各量化等级的详细对比看 GGUF 量化指南

原因三:上下文开太长了

Gemma 4 支持 256K 上下文,但上下文越长推理越慢,而且不是线性的:

上下文长度相对速度显存占用 (12B Q4)
2K1.0x(基准)~7 GB
8K~0.9x~8 GB
32K~0.7x~12 GB
128K~0.4x~20 GB
256K~0.25x~30 GB+

解决方法: 根据实际需要设上下文长度:

# Ollama:限制上下文
ollama run gemma4:12b --ctx-size 8192

# llama.cpp
./llama-server -m model.gguf -c 8192

# 不是真需要 256K 就别开 256K

原因四:KV 缓存膨胀

KV 缓存存的是注意力信息,对话越长缓存越大,吃显存还拖速度。

解决方法: 定期开新对话,或者量化缓存:

# llama.cpp:量化 KV 缓存
./llama-server -m model.gguf -c 8192 --cache-type-k q8_0 --cache-type-v q8_0

# 量化后的 KV 缓存省显存,质量损失很小

原因五:批处理大小不对

如果在做推理服务,批处理参数不对会严重影响吞吐:

# vLLM:调整批处理
python -m vllm.entrypoints.openai.api_server \
  --model google/gemma-4-12b-it \
  --max-num-batched-tokens 4096 \
  --max-num-seqs 8

各平台优化

Mac(Apple Silicon)

Mac 上性能完全取决于 Metal GPU 加速是否正常:

# 检查 Metal 支持
system_profiler SPDisplaysDataType | grep Metal

# Ollama 在 Apple Silicon 上自动用 Metal
# 如果还是慢,查内存压力:
memory_pressure

# llama.cpp 确保开启 Metal
cmake -B build -DGGML_METAL=ON
cmake --build build

# M 系列芯片推荐设置
./llama-server -m model.gguf -ngl 999 -c 8192
Mac 机型统一内存12B Q4 速度备注
M1 8GB8GB~12 tok/s能用但紧张
M1 Pro 16GB16GB~18 tok/s舒服
M2 Pro 16GB16GB~22 tok/s日常主力
M3 Pro 18GB18GB~25 tok/s甜点配置
M3 Max 36GB36GB~30 tok/s能跑 27B Q4
M4 Max 48GB48GB~35 tok/s什么都能跑

Mac 小贴士: 跑大模型前关掉 Chrome 和 Docker。Apple Silicon 的 CPU 和 GPU 共享内存,没有独立显存池。

Windows(NVIDIA CUDA)

# 确认 CUDA 在用
ollama ps

# Windows 常见问题:电源设置
# 改成「高性能」模式
# 笔记本在「平衡」模式下 GPU 会疯狂降频

# llama.cpp Windows 编译
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

Windows 小贴士: 把模型目录加到 Windows Defender 排除列表。实时扫描会扫每次文件读取,严重拖慢速度:

# PowerShell(管理员)
Add-MpPreference -ExclusionPath "C:\Users\你的用户名\models"

Linux(NVIDIA 或 AMD)

# NVIDIA:开启持久模式
sudo nvidia-smi -pm 1

# 设置 GPU 最大性能
sudo nvidia-smi -ac 1215,1410  # 具体值看你的 GPU

# AMD:确认 ROCm 正常
rocm-smi

快速加速清单

按这个清单过一遍:

1. [ ] GPU 加速在工作(不是 CPU 回退)
2. [ ] 在用 Q4_K_M 量化(除非对质量有极高要求)
3. [ ] 上下文长度设成实际需要的(不是默认 256K)
4. [ ] KV 缓存已量化(--cache-type-k q8_0)
5. [ ] Flash Attention 已开启(如果框架支持)
6. [ ] 关了吃内存的后台程序
7. [ ] 电源设置为「高性能」(笔记本)
8. [ ] 装了最新驱动

有些「慢」是正常的

有时候 Gemma 4 慢是预期行为:

  • 首 token 延迟:第一个 token 总是慢(在处理输入),这是正常的
  • 超长输入:处理 10 万 token 的输入,不管怎样都需要时间
  • 27B 跑在 16GB 上:能跑但勉强,考虑换 12B
  • 纯 CPU 推理:没有 GPU 就是 1-5 tok/s,这是 CPU 跑 LLM 的现实

如果不只是速度问题,还遇到了崩溃或报错,看看故障排除指南,有 OOM、GPU 检测等各种问题的解决方案。

下一步

加速优化说到底就是把基础搞对。解决 CPU 回退、选对量化、设合理的上下文长度——这三件事搞定,90% 的速度问题就解决了。

Gemma 4 AI

Gemma 4 AI

相关教程