Ollama 本地模型性能调优与量化

9b 模型在 8GB 内存的 VPS 上跑,日常使用没问题,但要更快、更省显存,可以做几层优化。

什么是量化

大模型的参数通常是 FP32(32 位浮点),量化就是用更少的位数表示同样的信息:

| 精度 | 内存占用 | 效果 |

|------|----------|------|

| FP32 | 100% | 原生精度 |

| FP16 | 50% | 几乎无损 |

| Q8 | 25% | 微小损失 |

| Q4 | 12.5% | 明显损失 |

| Q2 | 6% | 质量较差 |

量化后模型体积变小,推理更快,内存占用更低。

本地量化

Ollama 支持直接拉取量化好的模型:

# 拉取量化版本

docker exec ollama ollama pull qwen3.5:4b

4b 比 9b 小一半,8GB 内存绰绰有余。

内存限制

给 Ollama 容器加内存上限,防止它把整个机器拖垮:

deploy:

resources:

limits:

memory: 6G

reservations:

memory: 2G

实测 6GB 限制下 9b 能跑,但响应速度会变慢。如果是 4b,限制 3GB 足够。

并发优化

Ollama 默认单请求处理。如果要并发:

# 设置并发数

export OLLAMA_NUM_PARALLEL=2

不建议开太高,内存会炸。

GPU 加速

有 NVIDIA 显卡的机器,加:

environment:

- CUDA_VISIBLE_DEVICES=0

然后拉取 GPU 版本:

docker exec ollama ollama pull qwen3.5:9b

Ollama 会自动用 GPU 推理,速度快 5-10 倍。

批量推理

如果要给一批文本做处理,用批处理模式:

docker exec ollama ollama run qwen3.5:9b << 'EOF'

帮我概括这段文章:

[你的文章内容]

EOF

比 API 调用快,省去网络开销。

踩坑记录

坑 1:量化后质量下降

Q2/Q4 量化确实有损失。写代码、翻译这种精确任务用 9b 原生,摘要、闲聊用 4b 量化版。

坑 2:内存还是不够

加了限制后模型加载失败。检查宿主机空闲内存:

free -h

至少留 2GB 给系统。

坑 3:GPU 不工作

驱动没装或者版本不对。检查:

nvidia-smi

没输出说明没有 CUDA 环境,别折腾了,用 CPU 版。

我的配置

- 模型:qwen3.5:9b(日常),qwen3.5:4b(轻量任务)

- 内存限制:6GB

- 并发:1(不并发,稳为主)

总结

Ollama 性能优化就几点:

- 选对模型 — 4b 省内存,9b 质量好

- 内存限制 — 别让模型把机器拖垮

- 量化 — 牺牲一点点质量换速度

- GPU — 有显卡就用,没有就用 CPU

8GB 内存跑 9b 够用,但别同时开其他大容器。