本地部署大模型完全指南:从 Ollama 到 vLLM

把大模型跑在自己机器上,好处是隐私、离线、零 API 成本、可深度定制。难点在于:选哪个工具、需要什么硬件、怎么量化、怎么接入应用。本文从硬件账算起,对比主流部署方案,并给出 Ollama / llama.cpp / vLLM 三条由易到难的完整路径。

一、先算硬件账

决定你能跑多大模型的,主要是显存(VRAM),其次是内存与带宽。模型大小由参数量量化精度共同决定。

量化是什么

原始模型权重是 16 位浮点(fp16)。量化把权重压成更低位宽(如 4 位),体积和显存需求大幅下降,质量损失通常可接受。GGUF 格式里常见的量化档位:

量化位宽质量适用
Q4_K_M~4bit好,性价比之王绝大多数人首选
Q5_K_M~5bit更好显存有富余时
Q8_08bit接近原版追求质量
fp1616bit原版训练/对精度敏感场景

参数量与显存对照(Q4 量化,约数)

模型规模大致显存需求能跑的设备举例
1.5B–3B2–4 GB几乎所有带独显的笔记本
7B–8B5–6 GBRTX 3060 12G / M 系 16G
13B–14B8–10 GBRTX 4070 / M 系 24G
32B20–24 GBRTX 4090 / M 系 32–48G
70B40–48 GB双卡 / M 系 64G+

Apple Silicon 的统一内存可被 GPU 直接当显存用,64G 内存的 Mac 能跑 70B 量化模型,是本地推理性价比很高的选择。NVIDIA 在高并发、生产部署(vLLM)上仍是唯一解。

二、方案对比

工具定位上手难度适用场景内核
Ollama一键跑模型个人日常、开发联调llama.cpp
LM Studio图形界面不想碰命令行llama.cpp/MLX
llama.cpp底层推理引擎★★★极致控制、嵌入式自身
vLLM高并发推理服务★★★生产、多用户、API 服务自身
Open WebUI前端界面★★给后端套个 ChatGPT 式 UI对接 Ollama/OpenAI

路线建议:个人用 Ollama,要 UI 加 Open WebUI,要榨干单机性能用 llama.cpp,要对外提供服务用 vLLM。

三、入门:Ollama(强烈推荐起步)

Ollama 把「下载模型 + 推理引擎 + OpenAI 兼容 API」打包成一条命令。

3.1 安装

# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh

# macOS / Windows 也可直接下载安装包:https://ollama.com/download

3.2 拉取并运行模型

# 直接运行(首次会自动下载)
ollama run qwen2.5:7b

# 其他常用模型
ollama run llama3.1:8b
ollama run deepseek-r1:7b
ollama run gemma2:9b

进入交互后直接对话;/bye 退出。模型名冒号后是 tag(参数量/量化),不写默认拉 Q4 量化版。

3.3 OpenAI 兼容 API

Ollama 启动后在 http://localhost:11434 提供服务,并兼容 OpenAI 接口,现有代码几乎零改动即可接入:

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5:7b",
    "messages": [{"role": "user", "content": "用一句话解释量化"}]
  }'

Python(用官方 openai 库,只改 base_url):

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)

3.4 用 Modelfile 自定义

可以基于现有模型固化 system prompt、参数,做成自己的「角色」:

# Modelfile
FROM qwen2.5:7b
PARAMETER temperature 0.3
SYSTEM "你是一个简洁、只说重点的中文技术助手。"
ollama create my-assistant -f Modelfile
ollama run my-assistant

常用管理命令:

ollama list        # 已安装模型
ollama ps          # 正在运行的模型
ollama rm <model>  # 删除

四、给它一个界面:Open WebUI

Ollama 是命令行,想要 ChatGPT 式网页界面,用 Open WebUI(Docker 最省事):

docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:main

浏览器打开 http://localhost:3000,它会自动发现本机 Ollama 的模型。支持多用户、对话历史、RAG 上传文档、联网等。

不想用命令行的话,LM Studiolmstudio.ai 下载)是另一条路:图形化搜索/下载 GGUF 模型、内置聊天界面,并能一键开启 OpenAI 兼容本地服务器。Mac 上还支持 MLX 加速。

五、进阶:llama.cpp(榨干单机)

Ollama 底层就是 llama.cpp。直接用它能获得最细的控制(GPU 层数、上下文、批处理、各种量化)。

5.1 编译

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
# NVIDIA GPU
cmake -B build -DGGML_CUDA=ON
# Apple Silicon(Metal,默认开启)
# cmake -B build
cmake --build build --config Release -j

5.2 跑推理

下载一个 GGUF 模型后:

# -ngl 把多少层放到 GPU;-c 上下文长度
./build/bin/llama-cli -m qwen2.5-7b-instruct-q4_k_m.gguf \
  -ngl 99 -c 8192 -p "解释一下 PagedAttention"

5.3 起一个 OpenAI 兼容服务

./build/bin/llama-server -m model.gguf -ngl 99 -c 8192 --host 0.0.0.0 --port 8080

之后 http://localhost:8080/v1 即是 OpenAI 兼容端点。-ngl 调小可在显存不足时把部分层放 CPU(速度换显存)。

六、生产级:vLLM(高并发 API 服务)

如果要对外提供服务、多人并发,Ollama/llama.cpp 的吞吐就不够了。vLLM 用 PagedAttention 和连续批处理(continuous batching)把 GPU 利用率拉满,是自建推理 API 的主流选择(需要 NVIDIA GPU)。

6.1 安装与启动

pip install vllm

# 启动 OpenAI 兼容服务器
vllm serve Qwen/Qwen2.5-7B-Instruct \
  --port 8000 \
  --max-model-len 8192

6.2 多卡与量化

# 4 张卡张量并行跑大模型
vllm serve Qwen/Qwen2.5-72B-Instruct-AWQ \
  --tensor-parallel-size 4 \
  --quantization awq \
  --gpu-memory-utilization 0.9
  • --tensor-parallel-size:用几张 GPU 切分模型。
  • --quantization:支持 AWQ / GPTQ 等量化权重,降低显存。
  • --gpu-memory-utilization:显存占用上限,避免 OOM。

6.3 调用

接口与 OpenAI 完全一致:

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"hi"}]}'

vLLM 默认按未量化或权重量化加载,显存需求远高于 Ollama 的 GGUF Q4。上生产前务必按上表估算显存,并用 --max-model-len 控制 KV Cache 占用。

七、接入实际应用

本地起好 OpenAI 兼容端点后,可以接到各种工具里(它们都支持自定义 base_url):

  • 写代码:在 VS Code 装 Continue / Cline,把模型指向本地端点,离线 AI 补全与对话。
  • 知识库 / RAG:Open WebUI、AnythingLLM、Dify 都能挂本地模型做文档问答。
  • 自动化:任何用 OpenAI SDK 的脚本,改 base_url 即可切到本地。

八、常见问题

现象原因处理
加载就 OOM模型超显存换更小参数 / 更低量化(Q4),或减 -ngl
速度很慢跑在 CPU 上确认 GPU 编译/驱动,加大 -ngl
输出乱码/重复模板或参数不对用 instruct 版模型,调低 temperature
上下文截断上下文窗口太小加大 -c / --max-model-len(吃显存)
中文效果差模型本身偏英文选 Qwen 等中文友好模型

九、选型速查

  • 就想本地随便聊聊 / 开发联调 → Ollama(+ Open WebUI)
  • 完全不想碰命令行 → LM Studio
  • 要极致控制、嵌入式、老硬件 → llama.cpp
  • 对外提供 API、多人并发、生产 → vLLM
  • 中文场景模型 → Qwen 系列;推理/数学 → DeepSeek-R1;通用英文 → Llama / Gemma

参考

在 GitHub 上编辑此页

本地部署大模型完全指南:从 Ollama 到 vLLM
https://asharca.github.io/deploy-local-llm/
作者
Ashark
发布于
2026年6月15日
许可协议