下面是介绍RTX 3090 + vLLM + OpenWebUI 一键部署方案(Docker版,生产可用),目标是:
✔ 3090 本地跑大模型
✔ vLLM 提供 OpenAI API
✔ OpenWebUI 做网页聊天界面
✔ 一键启动 / 停止 / 重建
🚀 一、整体架构
浏览器(OpenWebUI)
↓
OpenWebUI(UI界面)
↓ OpenAI API协议
vLLM(模型推理服务)
↓
RTX 3090 GPU
🧱 二、准备环境(必须)
1. 安装 Docker + NVIDIA 支持
Ubuntu(推荐)
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
2. 安装 NVIDIA Container Toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo systemctl restart docker
3. 测试 GPU
docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi
看到 3090 信息说明成功 ✔
📦 三、一键部署(核心)
目录结构
mkdir -p qwen-3090
cd qwen-3090
🧠 四、docker-compose 一键配置
创建:
nano docker-compose.yml
粘贴以下内容👇
version: "3.9"
services:
vllm:
image: vllm/vllm-openai:latest
container_name: vllm-3090
restart: always
runtime: nvidia
ports:
- "8000:8000"
environment:
- NVIDIA_VISIBLE_DEVICES=all
command: >
--model Qwen/Qwen2.5-7B-Instruct
--gpu-memory-utilization 0.90
--max-model-len 4096
--host 0.0.0.0
--port 8000
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui
restart: always
ports:
- "3000:8080"
environment:
- OPENAI_API_BASE_URL=http://vllm:8000/v1
- OPENAI_API_KEY=sk-no-key-required
depends_on:
- vllm
🚀 五、启动系统(一键运行)
docker compose up -d
🌐 六、访问界面
启动成功后:
👉 OpenWebUI
http://localhost:3000
👉 vLLM API
http://localhost:8000/v1/models
🧪 七、测试 API
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [
{"role": "user", "content": "你好,介绍一下你自己"}
]
}'
⚡ 八、3090 性能优化(重要)
1. 改更强模型(推荐)
你可以修改 docker-compose:
🔥 14B(需要4bit)
--model Qwen/Qwen2.5-14B-Instruct-AWQ
2. 提升速度参数
--gpu-memory-utilization 0.92
--max-num-batched-tokens 8192
3. 开启长上下文优化
--max-model-len 8192
🧊 九、升级:支持多模型(进阶)
你可以加多个 vLLM:
vllm-qwen:
vllm-llama:
vllm-mistral:
然后 OpenWebUI 自动切换模型。
🧯 十、常见问题
❌ 1. GPU 不识别
解决:
nvidia-smi
如果失败 → 重装 nvidia-container-toolkit
❌ 2. 显存爆了
解决:
- 换 7B
- 用 AWQ 4bit
- 降 max-model-len
❌ 3. OpenWebUI 连不上
检查:
OPENAI_API_BASE_URL=http://vllm:8000/v1
❌ 4. 速度慢
优化顺序:
- vLLM
- FlashAttention
- 4bit模型
- 降 context
🎯 十一、最终推荐配置(3090最佳)
| 项目 | 推荐 |
|---|---|
| 模型 | Qwen2.5-7B / 14B AWQ |
| 推理 | vLLM |
| UI | OpenWebUI |
| 精度 | 4bit |
| context | 4K~8K |
🚀 总结
这套方案可以让你的 3090 变成:
💬 ChatGPT 本地替代版
⚡ 支持多用户
🧠 支持大模型
🌐 带网页 UI