为什么把推理放到本地

平台赠额有有效期、限速和区域限制;而开源模型(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 且对延迟敏感的场景。