LangChain & LLM··8 min read

LangChain 與 LLM 學習筆記 番外篇 — 我的電腦能跑哪些本地模型?

本篇重點

知道自己的電腦能跑哪些 Ollama 模型,選對再動手。

這篇是 Ep-1:RAG 技術架構 的番外補充。Ep-1 在選模型時有一張 RAM 對照表,但背後的邏輯——量化格式是什麼、不同硬體有哪些限制——值得單獨說清楚。


先查工具,3 分鐘得答案

不用背公式,直接查:

Will It Run AI

willitrunai.com/calculator

選你的 GPU 型號(或 Apple Silicon 晶片)和 RAM 大小,網站會列出能跑哪些模型、建議用哪個量化格式、以及預期的 token 生成速度。

VRAM Calculator

apxml.com/tools/vram-calculator

反過來用:你已經知道模型名稱,想確認要多少記憶體。輸入模型參數量和量化格式,算出精確需求;支援 Apple Silicon unified memory 模式。


量化是什麼?

LLM 是由幾十億個數字(參數 / 權重)組成的,模型推理時這些數字要全部載入記憶體。問題是:每個數字要用多少位元來表示?

訓練時用高精度(通常是 32-bit 浮點),但推理時不需要那麼精確——略微降低精度、換取體積大幅縮小,這就是量化(Quantization)

一個實際比喻:把照片從 RAW 存成 JPEG。壓縮到 90% 畫質,大多數人看不出差異,但檔案小了十倍。壓到 30%,細節開始明顯損失。量化也是同樣的取捨。


精度類型:浮點數 vs 整數

LLM 的精度分兩大類:浮點數格式(訓練與部分推理)和 整數量化格式(Ollama 使用的 GGUF)。

浮點數格式(FP32 / BF16 / FP16 / FP8)

浮點數格式描述的是「一個數字的位元怎麼分配」。每個浮點數由三段組成:符號位(sign)指數(exponent)尾數(mantissa)——指數決定數值範圍,尾數決定精度。

格式總位元指數位元尾數位元用途
FP3232823訓練時的標準格式,精度最高
BF161687現代模型訓練與推理,Google Brain 提出
FP1616510GPU 推理加速,部分消費級顯卡
FP884 or 53 or 2NVIDIA H100 GPU 訓練,消費級設備目前用不到

BF16 vs FP16 的差別:兩者都是 16-bit,但分法不同。BF16 保留和 FP32 一樣的 8 個指數位元,數值範圍跟 FP32 相同,不容易溢位——這讓它比 FP16 更適合訓練。FP16 的指數只有 5 位,範圍窄一些,但尾數多 3 位,在相同範圍內精度更高。

FP8 是 NVIDIA H100 系列才有硬體加速支援的新格式,目前主要用在資料中心的模型訓練加速,消費級設備(Mac、RTX 系列)不適用,你在 Ollama 介面不會接觸到它。

Ollama 使用的格式:GGUF 整數量化

Ollama 採用的是 GGUF 格式(llama.cpp 的量化方案),把浮點數轉成整數來儲存。跟上面的浮點數格式是不同的壓縮路線——整數量化壓縮率更高,CPU 也能高效運算:

格式位元數8B 模型大小品質損失說明
F1616 bit~16 GB無(基準)浮點原版,記憶體最大
Q8_08 bit~8 GB< 1%幾乎感受不到差異
Q6_K6 bit~6 GB極小品質與體積的好折衷
Q5_K_M5 bit~5.5 GB很小介於 Q6 和 Q4 之間
Q4_K_M4 bit~5 GB小,可接受Ollama 預設,CP 值最高
Q3_K_M3 bit~3.5 GB明顯推理能力有感下降
Q2_K2 bit~2.5 GB嚴重通常不建議使用

格式名稱怎麼讀: Q4_K_M = 4-bit 量化、K-quants 方法、Medium 配置。

  • Q4 表示平均每個參數用 4 個 bit 儲存
  • _K 表示使用 K-quants 方法——不同層用不同精度,重要的注意力層(attention layers)保留更多 bit,較不重要的層壓更多,在相同體積下比舊版 Q4_0 品質更好
  • _M / _S / _L 是 Medium / Small / Large,代表各層的 bit 分配策略,通常選 M 就夠了

ollama pull llama3.1ollama pull qwen3 下載的就是 Q4_K_M——8B 模型只需要約 5 GB


量化對模型的實際影響

從 F16 壓縮到 Q4_K_M,精度有損失,但損失到底發生在哪?

受影響的能力

能力Q4_K_M 的影響Q3 以下
一般問答、文字生成幾乎無感開始不流暢
中文輸出品質幾乎無感可能出現奇怪的語序或混語
指令遵循(只根據資料回答)輕微,偶爾「加料」明顯,常補充資料外的內容
複雜推理 / 數學輕微明顯出錯

對 RAG 來說,Q4_K_M 通常夠用。RAG 的重點在於「能不能撈到對的資料」(嵌入模型的事)和「有沒有照著資料回答」(LLM 指令遵循)。Q4_K_M 的指令遵循能力還算穩定,Q3 以下就要小心。

嵌入模型不受 LLM 量化影響

nomic-embed-text 是另一個獨立的模型,負責把文字轉向量。它本身也有自己的量化版本,但跟你選的生成模型是分開的,兩者互不影響。


估算公式

可用記憶體 ≥ 模型大小 + 2 GB(系統與 KV cache 預留)

以 8B Q4_K_M 為例:5 GB + 2 GB = 至少需要 7 GB 可用記憶體


不同硬體的情況

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

目前消費級跑本地 LLM 最舒服的硬體。原因是統一記憶體(Unified Memory)——CPU 和 GPU 共用同一塊 RAM,Ollama 可以把全部記憶體都拿來放模型,效率遠高於一般筆電的純 CPU 推理。

記憶體推薦模型說明
8 GBllama3.2:3bqwen3:1.7b速度尚可,8B 勉強能跑但偶爾喘
16 GBllama3.1:8bqwen3:8b本系列預設,最推薦
32 GBqwen3:14bmistral:22b品質明顯提升
64 GB+llama3.3:70bqwen3:72b接近 GPT-4 級別

8 GB M1 跑 llama3.1:8b 通常可以,但 token 生成速度大概是 16 GB M2 的一半。如果等得了,可以跑;等不了就先用 3B 模型。

NVIDIA 獨顯筆電 / 桌機

有獨顯時,Ollama 優先把模型放進 VRAM,速度快很多。VRAM 不夠時會自動把剩餘的 layers offload 到 CPU RAM,但速度大幅下降(PCIe 傳輸是瓶頸)。

GPUVRAM能跑什麼
RTX 3060 / 40608 GB8B Q4_K_M,剛好
RTX 3070 / 40708–12 GB8B 舒服,13B 勉強
RTX 3090 / 409024 GB13B–30B 都沒問題

Intel Arc 或 AMD Radeon 獨顯:Ollama 對這類 GPU 的支援目前還不穩定,建議先當純 CPU 模式跑,等官方更新。

純 CPU 筆電(無獨顯)

完全可以跑,但速度慢。8B 模型每秒大概 3–8 個 token,等一段時間才有回答。

建議先用 qwen3:1.7b 把整個 RAG 流程跑通、確認沒有 bug,再考慮升到 8B。正式跑大量測試時,找一台有 GPU 的機器或用雲端 API 會省很多時間。


快速對照表

可用記憶體Ollama 推薦選擇對應 Ep-1 設定
6–8 GBqwen3:1.7bllama3.2:3bLLM_MODEL 換成 qwen3:1.7b
12–16 GBqwen3:8bllama3.1:8b本系列預設
24–32 GBqwen3:14bmistral:22bLLM_MODEL 換成對應名稱
48 GB+llama3.3:70bqwen3:72b同上

嵌入模型(nomic-embed-text)只有 137M 參數、274 MB,所有配置都能跑,不用特別考慮。


確認完硬體,回去動手

知道自己能跑哪個模型後,回到 Ep-1 的完整實作,把程式碼裡的 LLM_MODEL 換成適合你硬體的版本,一行指令就能跑起來:

LLM_MODEL = "qwen3:8b"      # 16 GB 記憶體推薦
# LLM_MODEL = "qwen3:1.7b"  # 8 GB 記憶體可用
# LLM_MODEL = "llama3.1:8b" # 也是不錯的選擇

其餘程式碼完全不用動。

相關文章