本地推理深度解析
方案对比
| 特性 | Ollama | vLLM | llama.cpp |
|---|---|---|---|
| 安装难度 | 低 | 中 | 中 |
| GPU 支持 | 是 | 强 | 是 |
| CPU 推理 | 支持 | 有限 | 擅长 |
| 量化格式 | 内置 | AWQ/GPTQ | GGUF |
| 生产部署 | 适合中小规模 | 高并发首选 | 轻量场景 |
| API 兼容 | OpenAI 风格 | OpenAI 兼容 | 需封装 |
Ollama 详解
Ollama 以「一键运行」著称,支持:
- 多平台:macOS、Linux、Windows
- 模型管理:
ollama pull llama3、ollama list - OpenAI 兼容 API:
/v1/chat/completions - 与 LangChain、LlamaIndex 等框架直接对接
典型用法:
ollama pull llama3
ollama run llama3
# 或通过 API:curl http://localhost:11434/v1/chat/completions
vLLM 详解
vLLM 面向高吞吐生产场景:
- PagedAttention 提升显存利用率
- 连续批处理(Continuous Batching)
- 支持 Tensor Parallel、多 GPU
- 与 OpenAI API 兼容,便于迁移
适用于:多用户、高 QPS 的推理服务。
llama.cpp 详解
- C++ 实现,跨平台、无重型依赖
- GGUF 量化格式,支持 Q4_K_M、Q5 等
- CPU 推理优化,适合无 GPU 或老旧设备
- 被 Ollama、LM Studio 等作为底层引擎
量化选型
| 精度 | 显存占用 | 质量 | 推荐场景 |
|---|---|---|---|
| FP16 | 高 | 最好 | 大显存、追求质量 |
| INT8 | 中 | 较好 | 平衡 |
| INT4 (Q4_K_M) | 低 | 可接受 | 消费级 GPU、边缘 |
| 更低 (Q2_K) | 很低 | 有损 | 极限省显存 |
GPU 配置建议
- 8GB 显存:7B 量化模型
- 12–24GB:13B 量化或 7B 全精度
- 48GB+:34B+ 或 多模型并行
与 RAG、Agent 的闭环
本地推理可与 RAG、Agent、Embedding 形成完整链路:
- Embedding:BGE、M3 等本地 Embedding 模型
- RAG:向量检索 + 本地 LLM 生成
- Agent:Ollama 作为工具调用的 LLM 后端
- LangChain/LlamaIndex:通过
langchain-community对接 Ollama
LM Studio 与 TGI
LM Studio
- 定位:桌面端图形化工具,Windows/macOS
- 特点:可视化模型下载、量化、聊天界面,开发调试友好
- API:内置本地 OpenAI 兼容端点,可与 LangChain 等对接
TGI(Text Generation Inference)
- 定位:Hugging Face 官方推理服务
- 特点:Docker 部署、多模型、安全与限流
- 适用:企业级、需要标准化模型管理与多模型部署
推理参数调优
| 参数 | 说明 | 建议 |
|---|---|---|
temperature | 随机性 | 0–0.3 事实性任务,0.7–1.0 创意任务 |
top_p | 核采样 | 0.9–0.95 常用 |
max_tokens | 最大生成长度 | 按业务设定,避免过长浪费 |
repeat_penalty | 重复惩罚 | 1.1–1.2 减少重复 |
num_ctx | 上下文长度(Ollama) | 越大显存越高,按需设置 |
与推理服务的关系
- Ollama / llama.cpp:偏本地、单机、开发与小规模
- vLLM / TGI:偏生产、多实例、高并发,参见 模型部署与推理服务
本地推理可为生产前的验证环境,或作为边缘、离线场景的独立部署形态。
总结
根据场景选择:开发体验选 Ollama,生产高并发选 vLLM,资源受限选 llama.cpp。量化是本地部署的关键手段,合理选择可显著 降低成本与硬件门槛。LM Studio 适合桌面调试,TGI 适合企业级多模型部署。