为什么要本地部署

  • 隐私:数据不出公司
  • 成本:高频调用云 API 烧钱
  • 延迟:数据中心到用户的网络延迟
  • 离线:网络不好的环境
  • 定制:装自己微调的模型

Ollama:开发 / 单机 / 个人

# 装 Ollama(Mac/Linux/Windows 都有)
curl -fsSL https://ollama.com/install.sh | sh

# 拉模型
ollama pull llama3.1
ollama pull qwen2.5:7b

# 跑
ollama run qwen2.5:7b

# REST API(自动开在 11434 端口)
curl http://localhost:11434/api/chat -d '{
  "model": "qwen2.5:7b",
  "messages": [{"role":"user","content":"你好"}]
}'

Python 调 Ollama

import requests

resp = requests.post(
    "http://localhost:11434/api/chat",
    json={
        "model": "qwen2.5:7b",
        "messages": [{"role": "user", "content": "你好"}],
        "stream": False,
    },
)
print(resp.json()["message"]["content"])

或用 OpenAI 兼容 API:

from openai import OpenAI
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama",       # 任意值
)
resp = client.chat.completions.create(
    model="qwen2.5:7b",
    messages=[{"role": "user", "content": "你好"}],
)

几乎零配置 + OpenAI 兼容——开发首选。

Ollama 的硬件要求

  • 7B 模型:8 GB 内存 / 显存
  • 13B 模型:16 GB
  • 70B 模型:48 GB(一般要 2 张 4090)

不够就跑量化版(qwen2.5:7b-q4_K_M 之类)。

vLLM:生产 / 高并发

pip install vllm
vllm serve Qwen/Qwen2.5-7B-Instruct --port 8000

OpenAI 兼容 API:

client = OpenAI(base_url="http://localhost:8000/v1", api_key="x")
client.chat.completions.create(model="Qwen/Qwen2.5-7B-Instruct", ...)

vLLM 的杀手锏

  • PagedAttention:显存利用率超高
  • Continuous Batching:动态批处理,吞吐量比 transformers 高 10–20 倍
  • 量化支持:AWQ / GPTQ / FP8
  • Tensor Parallelism:跨多卡部署大模型

单 A100 跑 70B?vLLM 是答案。

选哪个

场景
本地开发 / Mac / 个人玩 Ollama
团队部署 / Linux 服务器 / 中等流量 Ollama 或 vLLM
生产环境 / 高并发 / SaaS 产品 vLLM
手机 / 嵌入式 llama.cpp / MLX (Mac)
Windows + 显卡 / 桌面 GUI LM Studio

llama.cpp:CPU 也能跑

C++ 实现,支持 CPU 推理 + 量化到 4-bit。Mac 上跑 LLM 几乎都基于它(MLX / Ollama 内部都用)。

brew install llama.cpp     # 或源码编译
llama-cli -m model.gguf -p "你好"

该不该自托管:成本对比

云 API 按 token 计费,输入便宜、输出贵几倍——具体数字请看各家定价页(OpenAI / Anthropic),价格随时调整。

本地 7B QLoRA:一张 RTX 4090 + 电费,月成本约几十元到一两百元(取决于使用率和电价)。

经验区间

  • 月 token < 千万:云 API 几乎一定划算
  • 月 token 千万 ~ 亿级:要算账,看具体模型和并发模式
  • 数据不能出境 / 有合规要求:必须自托管,价格不是首要因素

经验法则

先用 Claude / GPT 跑通 → 上线后看实际流量 → 决定要不要换本地。

不要一开始就自托管——浪费精力调环境,业务还没跑通。

下一篇讲怎么把模型包成 API 部署。