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 够用,但别同时开其他大容器。
Nginx/OpenResty Ollama本地模型性能调优
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法