本地大模型部署运维:Ollama 入门与 vLLM 高并发推理

大模型要真正用起来,迟早要落到自己的机器上。本地部署的好处是数据不出内网、成本可控、不用看厂商脸色。这篇讲 Ollama 快速上手和 vLLM 高并发推理,目标是:今天装上,今天就能跑。

一、Ollama 入门:十分钟跑起来

# Linux 一键安装
curl -fsSL https://ollama.com/install.sh | sh

# 拉模型、跑起来(qwen2.5:7b 约 4.7GB)
ollama pull qwen2.5:7b
ollama run qwen2.5:7b "用一句话介绍自己"

# 看已装的模型和正在跑的模型
ollama list
ollama ps

Ollama 默认监听 11434 端口,提供 OpenAI 兼容的 API。跑起来之后,任何能调 OpenAI 接口的程序,把 base_url 指到 http://localhost:11434/v1 就能用,不用改代码。

# 用 OpenAI 客户端调本地 Ollama
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": "写一个备份脚本的思路"}],
)
print(resp.choices[0].message.content)

二、Ollama 运维要点

  • 模型存在哪:默认在 ~/.ollama/models,磁盘不够就改 OLLAMA_MODELS 指到大盘上。
  • 显存够不够:7B 模型 FP16 要 14GB 左右显存,量化版(Q4)只要 4GB 出头,消费级显卡也能跑。先用 nvidia-smi 看余量再拉模型。
  • 端口与远程访问:默认只监听本地,要给局域网用就设 OLLAMA_HOST=0.0.0.0:11434,同时记得加防火墙和鉴权,别裸奔上公网。
  • systemd 托管:写个 service 文件,开机自启,挂了自动拉起来,别靠手动跑。

三、vLLM 高并发推理

Ollama 适合单人用、快速验证;要给整个团队或者线上服务供推理,就上 vLLM。它的核心是 PagedAttention(显存按需分配,不浪费)和 continuous batching(请求来了就插队,不用等一整批跑完),同样一张卡,吞吐能差几倍。

# 启动 vLLM 服务(OpenAI 兼容接口,端口 8000)
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-7B-Instruct \
  --gpu-memory-utilization 0.9 \
  --max-num-seqs 256 \
  --port 8000

# 验证:调聊天接口
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "Qwen/Qwen2.5-7B-Instruct", "messages": [{"role": "user", "content": "你好"}]}'
  • --gpu-memory-utilization:显存利用率,0.9 是常用值,留一点给系统和突发。
  • --max-num-seqs:最大并发序列数,调高吞吐上去,延迟也会上去,按实测定。
  • --max-model-len:上下文长度,设大了 KV cache 占显存多,设小了长文档进不来。
  • 多卡:--tensor-parallel-size 张量并行,一台机器多张卡分一个模型。

四、选型:什么时候用哪个

  • 个人用、快速验证:Ollama,装完就能跑。
  • 团队用、高并发:vLLM,吞吐和延迟都更好。
  • 显卡不够:先上量化模型(Q4/Q8),效果损失可接受,显存直接减半再减半。

本地部署就一句话:先让 Ollama 跑起来验证需求,再上 vLLM 做服务。模型、显存、并发三个数想清楚,剩下的就是巡检和告警的老活儿了。

发表回复

后才能评论