🎯 重點摘要: 本文帶你從零開始在 Windows 搭建本地 LLM 推理環境:
  ① 透過 Hugging Face 下載 GGUF 格式模型(量化等級選擇技巧)
  ② 安裝 llama.cpp(官方 Release 二進制或自行編譯)
  ③ 設定 GPU Offload(CUDA / Vulkan / DirectML 三種方式)
  ④ 調整 Context 長度與記憶體參數,避免爆掉 VRAM
  無論是 NVIDIA、AMD 還是 Intel 顯卡,都能在 10 分鐘內跑起第一個本地模型!

前言 — 為什麼要在本地跑 LLM?

ChatGPT、Claude 這類雲端 LLM 用起來超方便,但終究受困於「網路、隱私、費用」三大枷鎖。想要完全控住自己的模型、不受 API 限流、還能離線使用?本地推理是唯一的出路。

llama.cpp + GGUF 格式,就是目前最便宜又強大的本地推理方案 — 即使是入門顯卡(或乖乖使用 CPU),也能流暢對話。

Hugging Face 基礎入門

Hugging Face (寫作 hf.co)是一個「GitHub + PyPI」的 AI 模型平臺。開發者上傳訓練好的模型權重、模型卡(README)、還有資料集。我們下載的 GGUF 檔案,就幾乎都來自這裡。

註冊與準備

首先到 huggingface.co 註冊一個帳號(免費即可)。有些模型需要接受授權才能下載(例如 Llama 3、Gemma 等),記得點「Agree & Access」。

為了方便下載,可以安裝 Hugging Face 的 CLI 工具:

# 使用 pip 安裝 huggingface_hub
pip install huggingface_hub

# 登入(會開啟瀏覽器)
huggingface-cli login
💡 小提示: 如果不想登入,可以直接在網頁上找到模型頁面的「Files and versions」標籤,點擊檔案直接下載 .gguf 檔案即可。

什麼是 GGUF?

GGUF (G.GUF,原名 GGML 格式)是 ggml 推論框架設計的模型格式。它的特點:

  • 支援各種量化等級(Q2_K、Q4_0、Q5_K、Q8_0…)
  • 可直接在 CPU / GPU / 手機上推理,無需 CUDA 環境
  • 檔案大小可縮小到 2~8 GB,適合本地部署
  • llama.cpp、Jan、LM Studio 等工具都支援

量化等級怎麼選?

量化等級決定模型檔案大小與品質(以及推理速度):

等級 縮縮比例 品質 適合人群
Q2_K 2-bit 最低 極限省資源,容忍品質下降
Q3_K 3-bit 老舊電腦 / 手機 CPU
Q4_0 / Q4_K 4-bit 中等 ⚡ 目前最熱門,品質與體積兼得
Q5_K 5-bit 品質優先,用戶數少 VRAM
Q8_0 8-bit 近似完整 品質要求高,可接受大檔案
📊 推薦選擇: 如果你的顯卡 VRAM < 8GB,推 Q4_K 就對了——品質仍然不錯,檔案又小,推理又快!

如何下載 GGUF 模型

方法 1:網頁直接下載

最簡單的方式,就是從 Hugging Face 網頁上下載。常見的熱門模型:

進入頁面後,點擊 Files and revisions 標籤,找到以 .gguf 結尾的檔案(例如 llama-3-8b-instruct.Q4_K_M.gguf),點擊後直接下載。

方法 2:huggingface-cli 下載

# 下載指定模型下的所有 GGUF 檔案
huggingface-cli download TheBloke/Llama-3-8B-Instruct-GGUF --include "*.gguf" --local-dir ./models

方法 3:huggingface-hub Python API

如果你想在程式碼中控制下載流程,推薦用 Python:

from huggingface_hub import hf_hub_download

# 下載單一檔案
file_path = hf_hub_download(
  repo_id="TheBloke/Llama-3-8B-Instruct-GGUF",
  filename="llama-3-8b-instruct.Q4_K_M.gguf",
  local_dir="./models"
)
print(f"模型已下載至: {file_path}")
📁 整理一下: 建議建立一個 ./models 資料夾來存放 .gguf 檔案,這樣以後找起來會方便許多。

安裝 llama.cpp

llama.cpp 是一個由 ggerganov (Georgi Gerganov) 開源的 C/C++ 推理引擎。它不依賴任何深度學習框架,純用 ggml 運算圖來跑模型,因此非常輕量。

方法 1:官方 Release(推薦給一般使用者)

  1. 前往 GitHub Releases 頁面
  2. 下載 llama.cpp-blas-X.Y.Z-win-cuda-x86_64.zip 等 Windows 版本
  3. 解壓縮到一個資料夾,例如 C:\tools\llama.cpp
  4. 測試一下:
    cd C:\tools\llama.cpp
    .\llama-cli.exe --version

方法 2:chocolatey / winget 安裝

choco install llama-cpp
# 或
winget install llama-cpp.llama-cpp

方法 3:pip 安裝 (Python 介面)

pip install llama-cpp-python
⚠️ 注意: 如果你想用 GPU 加速(CUDA / Vulkan),方法 1 中的二進制預編譯版本是最省事的 — 無需編譯、無需 Visual Studio!

如何跑起第一個模型

下載完 llama.cpp 和模型檔案後,終於可以跑起來啦!

cd C:\tools\llama.cpp
.\llama-cli.exe -m ..\models\llama-3-8b-instruct.Q4_K_M.gguf -p "你好,請簡介一下自己。"

常用參數速查

參數 說明 範例
-m / --model 模型路徑 -m model.gguf
-p / --prompt 提示問題 -p "翻譯成英文:你好"
-n / --n-predict 預測多少 tokens -n 256
--temp 溫度(隨機性) --temp 0.7
--top-k 取 top-k 候選 token --top-k 40
--top-p 取 top-p 累積機率 --top-p 0.9
--repeat-pen 重複懲罰因子 --repeat-pen 1.1

如何設定 GPU Offload(加速推理)

llama.cpp 支援多種 GPU 加速方法,根據你的硬體選擇即可:

NVIDIA:CUDA / cuBLAS

如果你是 NVIDIA 顯卡(RTX 30/40 系列),推選官方預編譯的 cuda 版本,啟動時加上:

.\llama-cli.exe -m model.gguf -p "hello" --n-gpu-layers 32 -ngl 32
🎮 --n-gpu-layers / -ngl 是關鍵參數: 設定有多少 Transformer 層交給 GPU 運算。值越大,越多工作交給 GPU(但 VRAM 也越多)。

AMD / Intel:Vulkan

如果你用 AMD 或 Intel 顯卡,請下載 Vulkan 版本,啟動時加上:

.\llama-cli.exe -m model.gguf -p "hello" --n-gpu-layers 32 --backend vulkan

Windows DirectML(所有顯卡都可嘗試)

DirectML 是一個基於 DirectX 12 的推理 API,所有支援 DirectX 12 的顯卡都可以使用:

.\llama-cli.exe -m model.gguf -p "hello" --n-gpu-layers 32 --backend directml

常見 GPU 設定參數

參數 說明
--n-gpu-layers N-ngl N 交給 GPU 運算的 Transformer 層數
--backend {auto,cuda,vulkan,directml,cpu} 選擇推理後端
--gpu-layers-split "32,32" 多 GPU 分配層數
--mmq / --mmq-gpu 啟用 MMq 量化(更快,但記憶體對齊要求高)
--mul-mat-q 啟用矩陣乘法量化(效能優化)
💡 怎麼知道 N 值設定多少? 7B 模型通常可以設 32~43 層全部 offloading;13B 以上建議從 20~32 開始試,看看 VRAM 是否足夠。

Context 長度與記憶體設定

llama.cpp 預設的 context size 通常是 512 或 2048 tokens,對短問答無所謂,但對長對話 / 文件摘要會很限制。可以用 --ctx-size 調整:

.\llama-cli.exe -m model.gguf -p "長篇內容..." --ctx-size 8192
參數 說明 範例
--ctx-size 設定最大 context 長度(tokens) --ctx-size 4096
--batch-size 批次處理大小 --batch-size 512
--threads CPU 線程數 --threads 8
--mlock 將模型鎖定在記憶體中(避免 swap) --mlock
--no-mmap 停用記憶體映射(避免大檔案映射問題) --no-mmap
🧠 記憶體小技巧: context 越大,消耗的 VRAM 和 RAM 越多 — 128K tokens 的 context 可能需要 32GB+ 記憶體!設定時要根據你的硬體來調整。

Windows 常遇到問題

1. 中文路徑或空格導致錯誤

如果你的使用者名稱或路徑含有中文或空格(例如 C:\Users\小明\...),請把 llama.cpp 和模型放在簡單路徑下:

C:\tools\llama.cpp
C:\models\

2. 提示「找不到 DLL」

表示缺少 Visual C++ 紅色分散套件或 CUDA 執行時函式庫。請安裝 Visual C++ Redistributable 與 NVIDIA CUDA Runtime。

3. VRAM 不足 / 爆掉

如果看到 out of memory,減少 --n-gpu-layers 或換成更小量化等級(如 Q4_K_M → Q2_K)。

4. 模型輸出文字亂碼

llama.cpp 預設應該支援 UTF-8,但在 Windows 命令提示字元(cmd)可能會亂碼。推薦改用 Windows Terminal 或 PowerShell,並執行:

chcp 65001

進階 — 使用 Python 介面

如果你想把 llama.cpp 整合進 Python 程式,可以用 llama-cpp-python 套件:

from llama_cpp import Llama

llm = Llama(
  model_path="models/llama-3-8b-instruct.Q4_K_M.gguf",
  n_ctx=2048,
  n_gpu_layers=32,
  verbose=False
)

output = llm(
  "Q: 台灣的首都是哪裡? A: ",
  max_tokens=64,
  stop=["Q:", "\\n"],
  echo=False
)

print(output["choices"][0]["text"].strip())

效能參考(2026 最新)

下面是一組在 RTX 4060 + Ryzen 5 5600 上測試的結果,僅供參考:

模型 量化 Backend GPU Layers 推理速度 (tokens/s)
Llama-3-8B Q4_K_M CUDA 43 ≈ 42
Mistral-7B Q4_K_M CUDA 32 ≈ 55
Qwen2.5-7B Q4_K_M DirectML 32 ≈ 28
Llama-3-8B Q4_K_M CPU 0 ≈ 5

結語

llama.cpp 讓本地 LLM 推理變得前所未有地容易 — 即使你只有一張入門顯卡,或甚至只有 CPU,都能跑起 7B~13B 規模的開源模型。

🎯 快速回顧步驟:
  1️⃣ Hugging Face 下載 GGUF 檔案(推 Q4_K_M)
  2️⃣ 下載 llama.cpp Windows Release
  3️⃣ 設定 --n-gpu-layers 開啟 GPU 加速
  4️⃣ 調整 --ctx-size 控制記憶體使用
  5️⃣ 在 cmd 或 PowerShell 啟動推理!

整個流程不到 15 分鐘,就能有一個私隱無外洩、0 API 費的本地對話助手。
🔗 推薦資源:
  • llama.cpp GitHub
  • TheBloke — GGUF 模型轉檔達人
  • Hugging Face GGUF 模型列表