跳轉到內容

AI 模型本地部署對比 2026 | Ollama vs vLLM vs llama.cpp

AI 模型本地部署對比

🏠 數據不出門,隱私有保障。 隨著 AI 模型越來越強大,本地部署成為越來越多開發者和企業的選擇。但面對 Ollama、vLLM、llama.cpp 等眾多框架,該如何選擇?本文從安裝難度、推理性能、硬件需求、易用性等維度全面對比,幫你找到最適合自己的方案。

本文將帶你係統掌握:

  • ✅ 本地部署的價值與適用場景
  • ✅ 6 大主流框架全面對比
  • ✅ 各框架安裝與基本使用
  • ✅ 性能基準測試對比
  • ✅ 硬件需求與配置建議
  • ✅ 不同場景的最佳選擇
  • ✅ GPU 加速配置
  • ✅ 生產環境部署建議

一、為什麼本地部署

1.1 本地部署的優勢

優勢說明
數據隱私數據不出本地,無洩露風險
無 API 限制不受速率限制和配額約束
低延遲本地推理,無網絡延遲
離線可用無需網絡連接
成本可控一次性硬件投入,無按量計費
可定製可微調模型、自定義系統提示

1.2 適用場景

  • 處理敏感數據(醫療、金融、法律)
  • 內部知識庫問答
  • 代碼輔助(本地 Code Assistant)
  • 離線環境使用
  • 大批量推理(成本更優)
  • 開發和測試

1.3 硬件基礎要求

模型規模最低顯存推薦顯存推薦硬件
7B4GB8GBRTX 4060 / M2 8GB
13B8GB16GBRTX 4070 / M2 16GB
34B16GB24GBRTX 4090 / M3 36GB
70B40GB80GBA100 / 2x RTX 4090

💡 也可以用 CPU 推理,但速度會慢 5-20 倍。


二、框架總覽

2.1 六大框架對比

框架類型易用性性能適用場景
Ollama一鍵部署⭐⭐⭐⭐⭐⭐⭐⭐⭐個人開發、快速體驗
vLLM高性能推理⭐⭐⭐⭐⭐⭐⭐⭐生產環境、高併發
llama.cpp底層引擎⭐⭐⭐⭐⭐⭐⭐極致性能、嵌入式
LM StudioGUI 應用⭐⭐⭐⭐⭐⭐⭐⭐⭐非技術用戶、可視化
KoboldCpp輕量推理⭐⭐⭐⭐⭐⭐⭐寫作輔助、低配機器
LocalAIAPI 兼容⭐⭐⭐⭐⭐⭐⭐替代 OpenAI API

三、Ollama

3.1 安裝

macOS:

bash
brew install ollama

Linux:

bash
curl -fsSL https://ollama.com/install.sh | sh

Docker:

bash
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

3.2 基本使用

bash
# 啟動服務
ollama serve

# 拉取模型
ollama pull llama3.1:8b
ollama pull qwen2.5:7b
ollama pull deepseek-r1:7b
ollama pull gemma2:9b

# 運行模型
ollama run llama3.1:8b

# 查看已安裝模型
ollama list

# 刪除模型
ollama rm llama3.1:8b

3.3 API 調用

bash
# 生成
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1:8b",
  "prompt": "什麼是 AI Agent?"
}'

# 對話
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.1:8b",
  "messages": [
    {"role": "user", "content": "你好"}
  ]
}'

3.4 Python 集成

python
from langchain_ollama import ChatOllama

llm = ChatOllama(model="llama3.1:8b")
response = llm.invoke("什麼是 AI Agent?")
print(response.content)

3.5 優缺點

優點缺點
一鍵安裝,極簡使用併發能力有限
豐富的模型庫不支持分佈式推理
兼容 OpenAI API自定義程度較低
跨平臺支持生產級功能不足

四、vLLM

4.1 安裝

bash
pip install vllm

4.2 啟動服務

bash
# 啟動 OpenAI 兼容 API
python -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Meta-Llama-3.1-8B-Instruct \
  --host 0.0.0.0 \
  --port 8000 \
  --tensor-parallel-size 1 \
  --gpu-memory-utilization 0.9

4.3 API 調用

python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"
)

response = client.chat.completions.create(
    model="meta-llama/Meta-Llama-3.1-8B-Instruct",
    messages=[{"role": "user", "content": "什麼是 AI Agent?"}]
)
print(response.choices[0].message.content)

4.4 核心特性

特性說明
PagedAttention顯存分頁管理,減少浪費
Continuous Batching連續批處理,提升吞吐
投機解碼小模型輔助大模型加速
張量並行多 GPU 並行推理
流式輸出支持流式生成

4.5 優缺點

優點缺點
極高吞吐量安裝配置較複雜
生產級可靠性需要 GPU(不支持純 CPU)
OpenAI API 兼容內存佔用較高
支持分佈式推理模型加載較慢

五、llama.cpp

5.1 安裝

編譯安裝:

bash
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

# CPU only
make

# CUDA GPU
make LLAMA_CUDA=1

# Metal (macOS)
make LLAMA_METAL=1

通過包管理器:

bash
# Ubuntu
sudo apt install llama.cpp

# macOS
brew install llama.cpp

5.2 基本使用

bash
# 下載 GGUF 模型
wget https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/main/llama-2-7b-chat.Q4_K_M.gguf

# 命令行對話
./llama-cli -m llama-2-7b-chat.Q4_K_M.gguf -p "你好,請介紹一下自己"

# 啟動服務
./llama-server -m llama-2-7b-chat.Q4_K_M.gguf --host 0.0.0.0 --port 8080

5.3 量化模型

量化格式大小(7B)質量損失速度
Q4_K_M~4GB較小最快
Q5_K_M~5GB很小
Q6_K~6GB極小較快
Q8_0~7GB無損中等
F16~14GB無損較慢

💡 Q4_K_M 是性價比最高的選擇,質量損失極小但速度最快。

5.4 優缺點

優點缺點
極致性能命令行界面,無 GUI
低內存佔用配置複雜
支持 CPU 推理無內置模型管理
嵌入式友好無 API 服務(需單獨啟動)

六、LM Studio

6.1 安裝

從官網下載:https://lmstudio.ai/

6.2 使用

  1. 打開 LM Studio
  2. 搜索並下載模型
  3. 在聊天界面與模型對話
  4. 啟動本地 API 服務

6.3 優缺點

優點缺點
漂亮的 GUI僅桌面應用
拖拽式操作不可編程
內置模型搜索不適合生產環境
兼容 OpenAI API性能不如 vLLM

七、性能基準測試

7.1 測試環境

  • GPU: NVIDIA RTX 4090 (24GB)
  • 模型: Llama 3.1 8B Q4_K_M
  • 輸入: 128 tokens
  • 輸出: 512 tokens

7.2 推理速度對比

框架首 Token 延遲生成速度 (tokens/s)顯存佔用
Ollama~0.3s~805.2GB
vLLM~0.2s~956.8GB
llama.cpp~0.15s~1004.8GB
LM Studio~0.3s~785.3GB
KoboldCpp~0.25s~755.0GB

7.3 併發性能對比(8 併發請求)

框架總吞吐 (tokens/s)平均延遲
Ollama~2002.5s
vLLM~6000.8s
llama.cpp~1503.4s
LM Studio~1802.8s

💡 vLLM 在併發場景下優勢明顯,得益於 PagedAttention 和 Continuous Batching。


八、GPU 加速配置

8.1 NVIDIA GPU

安裝 CUDA:

bash
# Ubuntu
sudo apt install nvidia-cuda-toolkit

# 驗證
nvidia-smi
nvcc --version

Ollama GPU 配置:

Ollama 自動檢測 GPU,無需額外配置。

bash
# 查看 GPU 使用
nvidia-smi

vLLM 多 GPU:

bash
python -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Meta-Llama-3.1-70B-Instruct \
  --tensor-parallel-size 4    # 使用 4 張 GPU

8.2 Apple Silicon (M1/M2/M3/M4)

Ollama:

Ollama 自動使用 Apple GPU,通過 Metal 加速。

bash
# 檢查是否使用 GPU
ollama run llama3.1:8b "你好"
# 在 Activity Monitor 中查看 GPU 使用率

llama.cpp Metal:

bash
make LLAMA_METAL=1
./llama-cli -m model.gguf -p "你好" -ngl 99  # 全部層放 GPU

8.3 CPU 優化

當沒有 GPU 時:

bash
# Ollama 自動使用 CPU
# 可設置線程數
OLLAMA_NUM_THREADS=8 ollama serve

# llama.cpp 指定線程
./llama-cli -m model.gguf -t 8 -p "你好"

九、場景選擇指南

9.1 個人開發者

推薦:Ollama

理由:安裝最簡單,一條命令即可使用,支持豐富的模型。

9.2 生產環境

推薦:vLLM

理由:高吞吐、高併發、OpenAI API 兼容,適合服務化部署。

9.3 低配機器

推薦:KoboldCpp 或 llama.cpp

理由:內存優化好,支持 CPU 推理,對硬件要求低。

9.4 非技術用戶

推薦:LM Studio

理由:圖形界面,拖拽操作,無需命令行。

9.5 嵌入式/IoT

推薦:llama.cpp

理由:可交叉編譯,二進制小,資源佔用極低。

9.6 替代 OpenAI API

推薦:LocalAI 或 vLLM

理由:完全兼容 OpenAI API,應用無需修改即可切換。


十、模型推薦

10.1 按用途推薦

用途推薦模型參數量顯存需求
通用對話Llama 3.1 8B8B5GB
中文對話Qwen 2.5 7B7B5GB
代碼輔助DeepSeek Coder V27B5GB
推理思考DeepSeek R1 7B7B5GB
長文本Gemma 2 9B9B6GB
多語言Mistral Nemo 12B12B8GB

10.2 量化選擇建議

場景推薦量化理由
顯存充足Q6_K 或 Q8_0質量最好
顯存一般Q4_K_M性價比最高
顯存緊張Q3_K_M能跑起來
CPU 推理Q4_K_M速度和質量平衡

十一、生產部署建議

11.1 Docker Compose 部署

yaml
version: '3.8'

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

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

volumes:
  ollama_data:
  open-webui_data:

11.2 Nginx 反向代理

nginx
upstream llm_backend {
    server 127.0.0.1:11434;  # Ollama
    # server 127.0.0.1:8000; # vLLM
}

server {
    listen 443 ssl;
    server_name llm.example.com;

    location / {
        proxy_pass http://llm_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 300s;  # LLM 推理可能較慢
    }
}

11.3 監控

bash
# GPU 監控
watch -n 1 nvidia-smi

# Ollama 模型狀態
ollama ps

# vLLM 指標
curl http://localhost:8000/metrics

十二、總結

場景最佳選擇
個人快速體驗Ollama
生產高併發vLLM
極致性能/嵌入式llama.cpp
非技術用戶LM Studio
低配機器KoboldCpp
API 兼容LocalAI

🏠 本地部署讓你在享受 AI 能力的同時,掌控數據安全。選擇合適的框架,是成功的第一步。


相關文章推薦:

最後更新於: