本地 AI 聊天室快速部署:Ollama + Open WebUI 完整指南

本文將詳細介紹如何透過 Docker Compose 快速部署 Ollama 與 Open WebUI,打造本地 AI 聊天室。我們會涵蓋 GPU 直通設定、多模型同時載入的記憶體管理策略,以及自訂模型檔(Modelfile)的進階配置技巧。根據史丹佛大學以人為本人工智慧研究所(Stanford HAI)的報告,本地 AI 部署需求近年持續增長,隱私敏感場景尤其青睞完全離線的解決方案。

一、為何選擇 Ollama + Open WebUI 組合?

Ollama 是開源的本地大型語言模型執行環境,提供簡便的模型管理與推理服務。Open WebUI 則是功能完善的 Web 介面,支援對話歷史、模型切換、系統提示詞自訂等功能。根據 Gartner 人工智慧研究(Gartner AI Research)的技術成熟度分析,本地部署 AI 助手已進入「早期採用者」階段,企業採用率逐年上升。

此組合最大優勢在於:完全離線可用、資料不離開本地裝置、可自由切換數十種開源模型(如 Llama 3、Mistral、Qwen 等),且支援「身份暗物質」概念下的企業級身份驗證整合——這是企業部署時必須考慮的關鍵要素。

二、Docker Compose 完整配置教學

以下是推薦的 docker-compose.yml 設定檔,支援 GPU 加速與持久化儲存:

version: '3.8'

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    volumes:
      - ollama_data:/root/.ollama
    ports:
      - "11434:11434"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

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

volumes:
  ollama_data:
  open_webui_data:

執行以下指令啟動服務:

docker-compose up -d

服務啟動後,存取 http://localhost:3000 即可進入 Web 介面。首次使用需點擊左下角設定,確認 Ollama URL 已正確指向 http://ollama:11434。

三、多模型切換與記憶體管理策略

Open WebUI 支援在對話介面左上角即時切換模型。但要同時載入多個模型,需考量 GPU VRAM 是否足夠。以 NVIDIA RTX 4090(24GB VRAM)為例,建議配置如下:

若要管理多個模型,可在容器內執行:

# 進入 Ollama 容器
docker exec -it ollama ollama list

# 拉取新模型
docker exec -it ollama ollama pull llama3

# 移除不需要的模型
docker exec -it ollama ollama remove [model-name]

麻省理工學院計算機科學與人工智慧實驗室(MIT CSAIL)的研究指出,模型量化(如 Q4_K_M)是降低記憶體需求的關鍵技術,建議優先使用量化後的模型版本。

四、自訂 Modelfile 進階設定

Modelfile 允許你自訂模型行為,包括系統提示詞、回應格式與功能啟用。以下是企業客服場景的範例:

FROM llama3

PARAMETER temperature 0.7
PARAMETER top_p 0.9

SYSTEM """
你是企業客服助手,專門回答產品相關問題。
請保持專業、親切的語氣,必要時引導用戶查看支援文件。
禁止提供任何醫療、法律或財務建議。
"""

建立 Modelfile 後,使用以下指令載入:

docker exec -it ollama ollama create customer-support -f /path/to/Modelfile

載入完成後,即可在 Open WebUI 中選擇 customer-support 模型使用。

五、常見問題與解決方案

  1. GPU 未被偵測:確認 NVIDIA Driver 已安裝,並在 docker-compose 中正確設定 NVIDIA_VISIBLE_DEVICES 環境變數。
  2. 模型下載緩慢:可設定 HTTP_PROXY 環境變數,或使用鏡像源加速下載。
  3. 記憶體不足:關閉其他佔用 GPU 的程式,或使用更小的量化模型版本。