为什么在本地运行 LLM?
- 隐私:数据永远不会离开你的机器。
- 成本:设置后零 token 费用。
- 速度:推理无网络延迟。
- 离线:无需互联网连接即可工作。
安装 Ollama
- 从 [ollama.com](https://ollama.com) 下载——支持 macOS、Linux 和 Windows。
- 运行 `ollama pull llama3` 下载模型。
- 运行 `ollama run llama3` 开始对话。
热门模型
- Llama 3 8B:通用模型,8GB 内存可运行。
- Llama 3 70B:更智能,需 48GB+ 内存。
- Qwen 2.5:中文和多语言任务表现出色。
- Mistral 7B:编程任务快速高效。
- Phi-3 Mini:微软的小型但能力强的模型。
API 使用
Ollama 在 `http://localhost:11434` 提供本地 REST API。
- 可通过覆盖 base URL 兼容 OpenAI SDK。
性能预期
- M2 MacBook 上 7B 模型:约 30 tokens/秒。
- RTX 4090 上 7B 模型:约 60 tokens/秒。
选择合适的本地模型
选择取决于硬件和用例。笔记本上编程推荐 Qwen2.5-Coder 7B 或 Llama 3.1 8B(4-bit 量化)。通用对话推荐 Mistral 7B v0.3 或 Gemma 2 9B。有 24GB+ 显存可试 Llama 3.1 70B Q4 量化,接近云端质量。
性能调优
- 量化:Q4_K_M 性价比最高。Q5_K_M 略好但大 20%。除非万不得已不要用 Q2/Q3——质量急剧下降。
- 上下文长度:默认通常 2048 或 4096 token。仅在需要时增加——更长上下文消耗更多内存。
- GPU 卸载:用 --n-gpu-layers 把尽可能多的层卸载到 GPU。层数越多 = 速度越快。
- 批大小:显存允许时增加 --batch-size 以加快提示处理。
常见坑
第一个错误是运行超出硬件能力的模型。16GB 内存跑 70B 模型会极慢(1–2 token/秒)。不如跑 7B 模型达到 30+ token/秒。第二个错误是忽略系统提示词——本地模型对它非常敏感。精心编写的系统提示词能让平庸的模型变成有用的助手。