RTX 3090 + vLLM + OpenWebUI 一键部署方案(Docker版,生产可用)

下面是介绍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. 速度慢

优化顺序:

  1. vLLM
  2. FlashAttention
  3. 4bit模型
  4. 降 context

🎯 十一、最终推荐配置(3090最佳)

项目推荐
模型Qwen2.5-7B / 14B AWQ
推理vLLM
UIOpenWebUI
精度4bit
context4K~8K

🚀 总结

这套方案可以让你的 3090 变成:

💬 ChatGPT 本地替代版
⚡ 支持多用户
🧠 支持大模型
🌐 带网页 UI


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部