tutorials

用 Docker 自建 AI 服務:本地部署 LLM 完整教學(2025 版)

引言

愈來愈多香港用戶關注 AI 私隱同數據安全。與其將資料交俾第三方雲端服務,不如喺自己嘅電腦或者 VPS 上本地部署 LLM(大型語言模型)。呢篇文章會由零開始,教你用 Docker 喺本地或 VPS 上自建 AI 服務。

無論你係用緊:

  • 🖥️ 桌面電腦(NVIDIA GPU / Apple Silicon)
  • ☁️ VPS 伺服器(例如 Hetzner、Contabo)
  • 🍓 Raspberry Pi(行得慢但可以玩下)

呢篇教學都啱你用。

事前準備

硬件要求

模型大小 最低 RAM 推薦 VRAM 硬碟空間
7B 模型(如 Llama 3、Qwen 2.5) 8GB 6GB VRAM 10GB
13B 模型 16GB 12GB VRAM 20GB
70B 模型 48GB 40GB VRAM 60GB

軟件要求

  1. Docker 已安裝
  2. NVIDIA Container Toolkit(如有 GPU)

安裝 Docker

Ubuntu / Debian(包括大部分 VPS)

# 安裝必要套件
sudo apt update && sudo apt install -y ca-certificates curl

# 加入 Docker 官方 GPG key
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 加入 Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 將自己加入 docker group(避免每次打 sudo)
sudo usermod -aG docker $USER

# 重新登入或執行 newgrp docker
newgrp docker

macOS

brew install --cask docker
# 或者直接去 https://docs.docker.com/desktop/setup/install/mac-install/ 下載 Docker Desktop

Windows

Docker Desktop 官網 下載安裝檔,或者用 WSL2 模式行:

wsl --install -d Ubuntu
# 然後喺 WSL2 入面跟上面 Ubuntu 教學安裝

方案一:Ollama(最簡單、適合初學者)

Ollama 係目前最簡單嘅本地 LLM 運行方案,一行指令就搞掂。

用 Docker 執行 Ollama

# 啟動 Ollama 伺服器
docker run -d --name ollama -p 11434:11434 \
  -v ollama_data:/root/.ollama \
  ollama/ollama

# 如果你有 NVIDIA GPU
docker run -d --name ollama -p 11434:11434 \
  --gpus all \
  -v ollama_data:/root/.ollama \
  ollama/ollama

下載同測試模型

# 下載模型(例如 Llama 3.1 8B)
docker exec ollama ollama pull llama3.1

# 或者用 Qwen 2.5(對繁體中文更好)
docker exec ollama ollama pull qwen2.5:7b

# 測試一下
docker exec ollama ollama run llama3.1 "用廣東話介紹自己"

用 Open WebUI 做靚靚介面

Open WebUI 係一個類似 ChatGPT 嘅網頁介面,可以連接到 Ollama:

# docker-compose.yml
version: '3.8'

services:
  ollama:
    image: ollama/ollama
    volumes:
      - ollama_data:/root/.ollama
    ports:
      - "11434:11434"
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    volumes:
      - webui_data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - ollama
    restart: unless-stopped

volumes:
  ollama_data:
  webui_data:
# 啟動
docker compose up -d

# 打開瀏覽器去 http://localhost:3000

🎉 搞掂! 你已經有自己嘅 ChatGPT-like 介面,完全本地運行,資料唔會離開你嘅電腦。

方案二:LocalAI(功能更全面)

LocalAI 係一個 OpenAI API 嘅 drop-in replacement,即係你現有用緊 OpenAI API 嘅軟件可以直接轉用 LocalAI,唔使改 code。

docker run -d --name localai -p 8080:8080 \
  -v localai_models:/build/models \
  localai/localai:latest-gpu-nvidia-cuda-12 \
  phi-4

# 測試 API
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "phi-4",
    "messages": [{"role": "user", "content": "用廣東話介紹 Docker"}]
  }'

LocalAI 仲支援:

  • 🖼️ 圖片生成(Stable Diffusion)
  • 🎤 語音轉文字(Whisper)
  • 🔊 文字轉語音
  • 🔌 100% OpenAI API 相容

方案三:vLLM(高效能推理、適合生產環境)

如果你打算做高流量嘅 API server,vLLM 係最佳選擇。佢用 PagedAttention 技術,可以大幅提升吞吐量。

# 用 Docker 執行 vLLM
docker run -d --name vllm --gpus all \
  -p 8000:8000 \
  -v vllm_models:/root/.cache/huggingface \
  vllm/vllm-openai:latest \
  --model Qwen/Qwen2.5-7B-Instruct \
  --max-model-len 8192

# 使用 API(同 OpenAI 相容)
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen2.5-7B-Instruct",
    "messages": [{"role": "user", "content": "香港有咩本地 AI 社群?"}],
    "max_tokens": 500
  }'

推薦模型選擇(繁體中文優先)

模型 大小 繁體中文能力 推薦用途
Qwen 2.5 7B 7B ⭐⭐⭐⭐⭐ 日常問答、內容生成
Llama 3.1 8B 8B ⭐⭐⭐ 英文為主嘅任務
Phi-4 14B ⭐⭐⭐⭐ 輕量級、速度快
DeepSeek V2 Lite 16B ⭐⭐⭐⭐⭐ 性價比高
Qwen 2.5 72B 72B ⭐⭐⭐⭐⭐ 高品質輸出(需要較多 VRAM)

效能優化貼士

量化模型(用少啲 VRAM)

# 用 4-bit 量化版本
docker exec ollama ollama pull qwen2.5:7b-q4_K_M

# 或者用 Qwen 2.5 1.5B(適合 Raspberry Pi)
docker exec ollama ollama pull qwen2.5:1.5b

GPU 加速

# macOS Apple Silicon(M1/M2/M3/M4)
# Ollama 會自動用 Metal 加速,唔需要額外設定

# NVIDIA GPU(檢查 CUDA 版本)
nvidia-smi
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi

用 Nginx 做反向代理(VPS 用)

server {
    listen 80;
    server_name ai.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_buffering off;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

之後可以用 Let’s Encrypt + Certbot 加 SSL 證書。

常見問題

Q:冇 GPU 可唔可以玩?

可以。 CPU 模式一樣行到,只係慢啲。7B 模型喺現代 CPU 上大約每秒 3-8 tokens,足夠做簡單問答。

Q:VPS 最少要咩規格?

最少 4GB RAM + 40GB SSD。推薦 Hetzner CX22(4GB RAM/40GB SSD,約 €2.99/月)行 Ollama + Qwen 2.5 7B(量化版)。

Q:點樣遠端存取屋企嘅 AI Server?

用 Cloudflare Tunnel 或者 Tailscale 都得,唔使開 port。

# Tailscale(最簡單)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# 然後你就可以用 tailscale IP 連線

總結

自建 AI 服務已經唔係高科技嘅專利。用 Docker + Ollama,30 分鐘內你就可以擁有一個私人 ChatGPT。對於注重私隱嘅香港用戶、或者想慳 API 費用嘅開發者,本地部署絕對值得一試。

下一步可以嘗試:

  1. 用 RAG(Retrieval-Augmented Generation)加入自己嘅文件
  2. 建立 Telegram Bot 連接本地 LLM
  3. 用多個模型做 MoE(Mixture of Experts)路由

記住訂閱 AgentFlow HK,我哋會繼續推出更多實用嘅 AI 教學!