在 VPS 上部署 Ollama 运行本地大模型

本地跑大模型这事,听起来高大上,其实门槛已经很低了。一台 4 核 8G 的 VPS 就能跑小模型,效果不比 ChatGPT 差多少。

我这台 VPS 跑了 qwen3.5:9b,响应速度比调用远程 API 快,还不担心数据隐私。

为什么本地部署

成本考量

调用 OpenAI API 便宜,但:

- 网络延迟不可控

- 某些敏感内容会被拒

- 数据要经过第三方

本地部署后:

- 响应快 — 局域网延迟几毫秒

- 隐私安全 — 数据不出服务器

- 无限调用 — 不受 API 配额限制

适合的场景

- 文章润色、摘要、翻译

- 代码审查、注释生成

- 客服机器人、知识库问答

- 批量处理文本(不用排队等 API)

不适合:需要最新知识、超级复杂推理、多模态(目前本地跑不动图生图)。

硬件要求

| 型号 | 内存 | 磁盘 | 能跑什么 |

|------|------|------|----------|

| qwen3.5:0.8b | 2GB | 1GB | 简单对话 |

| qwen3.5:4b | 4GB | 4GB | 中等任务 |

| qwen3.5:9b | 8GB | 6GB | 编程+写作 |

| qwen3.5:14b | 16GB | 10GB | 复杂推理 |

我的是 KVM 8GB 内存,跑 9b 刚好。再开其他容器时会有压力,建议非高峰期单独跑。

Docker 部署

version: "3.8"

services:

ollama:

image: ollama/ollama:latest

container_name: ollama

restart: unless-stopped

ports:

- "11434:11434"

volumes:

- ./ollama-data:/root/.ollama

environment:

- OLLAMA_HOST=0.0.0.0

networks:

- app

networks:

app:

driver: bridge

docker compose up -d

拉取模型

容器启动后,进容器拉模型:

docker exec -it ollama ollama pull qwen3.5:9b

第一次拉取要几分钟,模型文件 6GB 左右。

API 调用

部署好就能当 API 用:

curl http://127.0.0.1:11434/api/chat -d '{

"model": "qwen3.5:9b",

"messages": [{"role": "user", "content": "用一句话介绍你自己"}],

"stream": false

}'

返回:

{

"message": {

"role": "assistant",

"content": "你好!我是通义千问 Qwen3.5,一个由阿里云开发的 AI 助手..."

},

"done": true

}

对接 OpenWebUI

命令行不够友好,装个 Web UI:

services:

openwebui:

image: ghcr.io/open-webui/open-webui:main

container_name: openwebui

restart: unless-stopped

ports:

- "3000:8080"

environment:

- OLLAMA_BASE_URL=http://ollama:11434

volumes:

- ./webui-data:/app/backend/data

depends_on:

- ollama

networks:

- app

访问 http://IP:3000 就能用网页聊天了。

资源限制(重要)

9b 模型一跑就是 6-8GB 内存,不限制的话会影响其他服务:

deploy:

resources:

limits:

memory: 6G

reservations:

memory: 4G

实测 6GB 限制下响应速度会有影响,但不会 OOM。

踩坑记录

坑 1:GPU 不可用

我这是纯 CPU 推理,没 CUDA。Ollama 自动Fallback 到 CPU,速度比 GPU 慢但能跑。

如果你是 GPU 方案,加:

environment:

- CUDA_VISIBLE_DEVICES=0

坑 2:模型下载不动

国内拉取海外模型很慢。用阿里云的镜像:

mirror set models https://mirrors.aliyun.com/models

坑 3:内存不够被 OOM Kill

之前没加 limits,9b 一加载就把内存吃满,Linux 杀其他容器。后来加了 swap + 内存限制,稳定多了。

坑 4:API 超时

默认超时太短,大模型生成慢会超时。curl 加 --max-time 300

实际应用

我现在用 Ollama 做什么:

1. 写博客 — 帮我润色文章大纲和段落

2. 代码审查 — 提交前让模型过一遍,提建议

3. 翻译 — 英译中比 Google 翻译自然

4. 定时任务 — 每天早上自动生成行业摘要

总结

Ollama 让本地跑大模型变成"拉个镜像"那么简单。

- 成本:一台 8GB VPS 就能跑

- 速度:局域网延迟几毫秒

- 用途:写作、编程、客服、自动化

唯一要注意的就是内存。8GB 跑 9b 刚好,16GB 以上可以考虑 14b 或 32b。