优化 Ollama 性能可以从多个方面入手:
1. 模型量化选择: Ollama 支持不同量化级别的模型,权衡精度和性能:
q4_0/q4_k_m- 4-bit 量化,速度快,精度略低q5_0/q5_k_m- 5-bit 量化,平衡速度和精度q8_0- 8-bit 量化,精度高,速度较慢f16- 16-bit 浮点,最高精度,最慢
bash# 下载不同量化版本 ollama pull llama3.1:8b-q4_k_m ollama pull llama3.1:8b-q8_0
2. 参数调优:
dockerfile# Modelfile 中设置 PARAMETER temperature 0.7 # 控制随机性,0-1 PARAMETER top_p 0.9 # 核采样,0-1 PARAMETER top_k 40 # 采样候选数 PARAMETER num_ctx 4096 # 上下文窗口大小 PARAMETER repeat_penalty 1.1 # 重复惩罚 PARAMETER num_gpu 1 # GPU 层数
3. GPU 加速: 确保正确配置 GPU:
bash# Linux/macOS export CUDA_VISIBLE_DEVICES=0 # 检查 GPU 使用 nvidia-smi
4. 批处理优化:
bash# API 调用时设置批量大小 curl http://localhost:11434/api/generate -d '{ "model": "llama3.1", "prompt": "Hello", "options": { "num_batch": 512, "num_gpu": 99 } }'
5. 内存管理:
dockerfile# 限制上下文长度以减少内存使用 PARAMETER num_ctx 2048 # 使用较小的模型 FROM llama3.1:8b # 而不是 70b
6. 并发请求:
Ollama 支持并发处理多个请求,但受限于硬件资源。可以通过增加 num_parallel 参数优化:
dockerfilePARAMETER num_parallel 2
7. 缓存策略: Ollama 会缓存模型和响应,首次加载较慢,后续请求会更快。
性能监控:
bash# 查看资源使用 ollama ps # 查看日志 ollama logs