为什么把推理放到本地
平台赠额有有效期、限速和区域限制;而开源模型(Llama 系、Qwen 系、Mistral 系、DeepSeek 系等)的权重可自由下载,推理成本只剩电费和硬件折旧。对个人开发者和小团队,这意味着 Token 供给从「按次领取」变成「按需生产」。
操作步骤
1. 先确认硬件门槛
- 7B–9B 的 4-bit 量化模型:约 8GB 显存可跑,16GB 内存的纯 CPU 也能勉强出字,但速度慢。
- 14B–32B 的 4-bit 量化:通常需要 16GB–24GB 显存。
- 70B 级别:需要 48GB 以上显存,或双卡/多卡。
先量力选模型,不要反过来。
2. Ollama:最快跑通单机方案
```bash
# 安装后拉取量化模型
ollama pull qwen2.5:14b-instruct-q4_K_M
ollama run qwen2.5:14b-instruct-q4_K_M
```
Ollama 默认在 11434 端口提供类 OpenAI 的 /v1/chat/completions 接口,可直接被多数 SDK 指向:
```bash
export OPENAI_BASE_URL=http://localhost:11434/v1
export OPENAI_API_KEY=ollama
```
适用:单人开发、原型验证、离线环境。限制:并发能力弱,不适合多人同时压。
3. vLLM:把单机变成可服务的端点
vLLM 的 PagedAttention 与连续批处理能显著提高吞吐,适合团队共享。
```bash
pip install vllm
vllm serve Qwen/Qwen2.5-14B-Instruct \
--quantization awq \
--max-model-len 8192 \
--gpu-memory-utilization 0.90 \
--port 8000
```
同样暴露 OpenAI 兼容接口:
```bash
export OPENAI_BASE_URL=http://localhost:8000/v1
export OPENAI_API_KEY=dummy
```
关键参数:--max-model-len 控制上下文上限,--gpu-memory-utilization 决定显存占用,--max-num-seqs 控制并发批大小。
4. 加一层网关做限流与计量
用 LiteLLM 或 Nginx 反代把本地端点包一层:
- 按 API Key 分配配额,避免一个脚本吃满显存;
- 记录每用户 Token 用量,便于团队内部分账;
- 配置超时与重试,防止长请求拖垮服务。
5. 监控与稳定性
- 用
nvidia-smi或nvtop观察显存; - vLLM 自带 Prometheus 指标,可接 Grafana;
- 设置 systemd 或 Docker restart 策略,进程崩溃自动拉起。
注意事项
- 量化会损失精度,4-bit 在代码与数学任务上退化明显,重要任务用 8-bit 或全精度。
- 本地模型没有厂商的内容安全层,需要自行加过滤。
- 电费与硬件折旧是真实成本,长时间高并发不一定比 API 便宜。
- 模型许可证各不相同,商用前核对权重协议。
适用场景
- 数据不能出内网的合规场景;
- 高频、低价值的批量任务(分类、摘要、格式化);
- 离线或弱网环境;
- 需要固定成本预算的团队。
不适用场景
- 需要最强推理能力的复杂任务,仍应调用前沿闭源模型;
- 没有 GPU 且对延迟敏感的场景。