0%

大模型本地部署实战:Ollama + vLLM 完整指南

大模型本地部署实战:Ollama + vLLM 完整指南

写在前面:2026 年,大模型本地部署成为企业 AI 落地的刚需。这篇文章详解 Ollama 和 vLLM 的部署方案,包含量化技术、性能优化和真实踩坑记录。


一、为什么需要本地部署?

1.1 云端 API 的局限

问题 说明 影响
数据隐私 敏感数据上传云端 合规风险
网络延迟 每次请求往返云端 响应慢
成本不可控 按 Token 计费 费用高
依赖外部 API 稳定性不可控 业务风险

1.2 本地部署优势

1
2
3
4
✅ 数据不出域 - 符合企业合规
✅ 零网络延迟 - 本地推理
✅ 成本固定 - 一次性硬件投入
✅ 完全可控 - 自主运维

二、Ollama 快速上手

2.1 安装 Ollama

Linux 一键安装

1
curl -fsSL https://ollama.ai/install.sh | sh

验证安装

1
2
ollama --version
# 输出:ollama version 0.1.32

2.2 下载模型

查看可用模型

1
ollama list

下载模型

1
2
3
4
5
6
7
8
# Qwen2.5-7B(推荐)
ollama pull qwen2.5:7b

# Llama3-8B
ollama pull llama3:8b

# ChatGLM3-6B
ollama pull chatglm3:6b

模型大小对比

模型 大小 推荐显卡 速度
qwen2.5:7b 4.7GB RTX 3060(12G)
llama3:8b 4.9GB RTX 3060(12G)
chatglm3:6b 4.2GB RTX 3060(12G)
qwen2.5:72b 41GB 2×RTX 3090

2.3 运行模型

交互式对话

1
ollama run qwen2.5:7b

命令行调用

1
ollama run qwen2.5:7b "你好,请介绍一下自己"

API 调用

1
2
3
4
5
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "你好",
"stream": false
}'

三、vLLM 高性能推理

3.1 为什么用 vLLM?

特性 Ollama vLLM
吞吐量 高(2-5 倍)
并发 高(PagedAttention)
量化 支持 支持更多格式
易用性 简单 中等

3.2 安装 vLLM

1
2
3
4
5
6
# 创建虚拟环境
python3 -m venv vllm-env
source vllm-env/bin/activate

# 安装 vLLM
pip install vllm

3.3 启动服务

单卡部署

1
2
3
4
python -m vllm.entrypoints.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--port 8000 \
--tensor-parallel-size 1

多卡部署

1
2
3
4
python -m vllm.entrypoints.api_server \
--model Qwen/Qwen2.5-72B-Instruct \
--port 8000 \
--tensor-parallel-size 4 # 4 张卡

3.4 性能测试

测试脚本

1
2
3
4
5
6
7
8
9
10
11
12
from vllm import LLM, SamplingParams

llm = LLM(model="Qwen/Qwen2.5-7B-Instruct")
prompts = ["你好"] * 100 # 100 个请求

sampling_params = SamplingParams(
temperature=0.7,
max_tokens=100
)

outputs = llm.generate(prompts, sampling_params)
print(f"处理了 {len(outputs)} 个请求")

性能对比

方案 吞吐量 延迟 显存
Ollama 50 req/s 200ms 6GB
vLLM 200 req/s 100ms 5GB

四、量化技术详解

4.1 量化原理

1
2
3
FP16(16 位浮点) → INT8(8 位整数) → INT4(4 位整数)
14GB 7GB 4GB
100% 精度 98% 精度 95% 精度

4.2 量化格式对比

格式 大小 精度损失 速度提升
FP16 14GB 0% 1x
INT8 7GB 1-2% 1.5x
INT4 4GB 3-5% 2x
AWQ 4GB 2-3% 2.5x

4.3 Ollama 量化

自动量化

1
2
# Ollama 自动选择合适量化
ollama pull qwen2.5:7b

手动指定

1
2
3
4
5
# 4bit 量化
ollama pull qwen2.5:7b-q4_K_M

# 8bit 量化
ollama pull qwen2.5:7b-q8_0

4.4 vLLM 量化

AWQ 量化

1
2
3
python -m vllm.entrypoints.api_server \
--model TheBloke/Qwen-2.5-7B-AWQ \
--quantization awq

GPTQ 量化

1
2
3
python -m vllm.entrypoints.api_server \
--model TheBloke/Qwen-2.5-7B-GPTQ \
--quantization gptq

五、消费级显卡部署方案

5.1 显卡选型建议

显卡 显存 推荐模型 价格
RTX 3060 12G 12GB 7B 模型(INT4) ¥2000
RTX 3090 24G 24GB 13B 模型(INT4) ¥5000
RTX 4090 24G 24GB 13B 模型(FP16) ¥12000
2×3090 48GB 70B 模型(INT4) ¥10000

5.2 RTX 3060 12G 部署方案

推荐配置

1
2
3
4
5
6
# 模型:Qwen2.5-7B(INT4 量化)
# 显存占用:6GB
# 剩余显存:6GB(可用于其他任务)

ollama pull qwen2.5:7b-q4_K_M
ollama run qwen2.5:7b-q4_K_M

性能

  • 生成速度:30 tokens/s
  • 并发:5-10 请求
  • 延迟:200-500ms

5.3 多卡部署方案

2×RTX 3090 部署 70B 模型

1
2
3
4
5
# vLLM 多卡部署
python -m vllm.entrypoints.api_server \
--model Qwen/Qwen2.5-72B-Instruct \
--tensor-parallel-size 2 \
--port 8000

性能

  • 生成速度:15 tokens/s
  • 并发:20-50 请求
  • 延迟:500-800ms

六、OpenClaw 集成实战

6.1 配置本地模型

修改 openclaw.json

1
2
3
4
5
6
7
8
9
10
11
{
"models": {
"default": "local/qwen2.5-7b",
"providers": {
"local": {
"baseUrl": "http://localhost:11434/v1",
"apiKey": "ollama"
}
}
}
}

6.2 性能对比

场景 云端 API 本地部署
响应延迟 500-1000ms 100-300ms
Token 成本 ¥0.02/1K ¥0
数据隐私 云端处理 本地处理
稳定性 依赖网络 完全可控

6.3 混合部署策略

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def get_model_provider(task_type):
"""根据任务类型选择模型"""

if task_type == "simple_qa":
# 简单问答用本地模型
return "local/qwen2.5-7b"

elif task_type == "complex_reasoning":
# 复杂推理用云端模型
return "aliyun/qwen-plus"

elif task_type == "code_generation":
# 代码生成用本地模型
return "local/codellama-7b"

七、常见问题与解决方案

7.1 问题 1:显存不足

现象

1
CUDA out of memory. Tried to allocate 2.00 GiB

解决

1
2
3
4
5
6
7
8
# 方案 1:使用量化模型
ollama pull qwen2.5:7b-q4_K_M

# 方案 2:减少并发
--max-num-seqs 16

# 方案 3:使用 CPU 卸载
--gpu-memory-utilization 0.8

7.2 问题 2:生成速度慢

现象

1
生成速度 < 10 tokens/s

解决

1
2
3
4
5
6
7
8
# 方案 1:使用 vLLM
python -m vllm.entrypoints.api_server ...

# 方案 2:量化模型
ollama pull qwen2.5:7b-q4_K_M

# 方案 3:减少生成长度
--max-tokens 512

7.3 问题 3:模型下载失败

现象

1
Error: model not found

解决

1
2
3
4
5
6
7
8
# 方案 1:检查模型名称
ollama list # 查看可用模型

# 方案 2:使用镜像源
export OLLAMA_MIRROR=https://ollama.azhaoai.com

# 方案 3:手动下载
wget https://ollama.ai/models/qwen2.5-7b.gguf

八、最佳实践

8.1 模型选择建议

场景 推荐模型 理由
日常问答 Qwen2.5-7B 速度快,够用
代码生成 CodeLlama-7B 代码能力强
复杂推理 Qwen2.5-72B 推理能力强
多语言 Llama3-70B 多语言支持好

8.2 性能优化技巧

技巧 效果 实施难度
量化 2 倍速度
批处理 3 倍吞吐 ⭐⭐
缓存 50% 减少
多卡 线性提升 ⭐⭐⭐

8.3 监控指标

1
2
3
4
5
6
7
8
# 显存使用
nvidia-smi

# 请求延迟
curl -w "@curl-format.txt" http://localhost:11434/api/generate

# 吞吐量
watch -n 1 'curl http://localhost:8000/metrics'

九、总结

9.1 核心要点

  1. Ollama - 快速上手,适合个人
  2. vLLM - 高性能,适合企业
  3. 量化 - 减少显存,提升速度
  4. 消费级显卡 - 性价比最高

9.2 行动建议

个人开发者

  • RTX 3060 12G + Ollama + Qwen2.5-7B

中小企业

  • 2×RTX 3090 + vLLM + Qwen2.5-72B

大型企业

  • A100/H100集群 + 自研推理引擎

十、相关链接


作者:John
创建时间:2026-02-22
最后更新:2026-02-22
文档版本:v1.0