🎯 重點摘要: 本文帶你從零開始在 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 網頁上下載。常見的熱門模型:
- TheBloke/Llama-3-8B-Instruct-GGUF — Meta Llama 3 指令模型
- TheBloke/Mistral-7B-Instruct-v0.3-GGUF — Mistral 7B,速度快
- TheBloke/Qwen2.5-7B-Instruct-GGUF — 阿里 Qwen 2.5,中文能力強
- TheBloke/deepseek-coder-7B-Instruct-GGUF — 程式語言專用
進入頁面後,點擊 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(推薦給一般使用者)
- 前往 GitHub Releases 頁面
- 下載
llama.cpp-blas-X.Y.Z-win-cuda-x86_64.zip等 Windows 版本 - 解壓縮到一個資料夾,例如
C:\tools\llama.cpp - 測試一下:
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 模型列表