Local LLM:架構與使用¶
狀態:主題首頁(4 篇已發布) 領域:AI/推論系統
這個主題在回答什麼問題?
Local LLM 不只是「下載模型並啟動」。本系列從需求、模型檔案、推論 runtime、硬體資源、服務介面到應用整合,建立一套能判斷效能、品質、成本與維護風險的架構。
適合誰閱讀¶
- 想在個人電腦、工作站或家用伺服器執行 LLM 的使用者
- 需要選模型、量化格式與推論框架的工程師
- 想建立 OpenAI-compatible API、RAG 或 Agent backend 的開發者
- 想理解 GPU/CPU/RAM/VRAM 需求與效能瓶頸的人
先備知識¶
- 基本命令列與 Docker 概念
- 知道模型、context window、token 的基本意義
- 若要部署服務,建議具備 HTTP API 與基本 Linux 維運概念
先選目標,不要先選模型¶
| 目標 | 優先考量 | 常見取捨 |
|---|---|---|
| 個人對話與寫作 | 品質、語言能力、啟動簡單 | 速度與模型大小 |
| Coding assistant | 程式能力、長上下文、工具整合 | VRAM 與 prompt cache |
| RAG/知識問答 | 檢索品質、引用、embedding | 模型不一定越大越好 |
| Agent/工具呼叫 | 指令遵循、結構化輸出、穩定性 | 吞吐量與長任務成本 |
| 多人 API | concurrency、batching、監控 | 延遲與資源共享 |
| 離線/隱私 | 資料邊界、更新與備份 | 雲端模型的品質優勢 |
依角色選擇閱讀路徑¶
- 先定義工作類型與可接受速度。
- 學會看模型大小、量化和 context 需求。
- 選擇簡單前端與 runtime,再用實際任務評估。
- 先理解模型層、runtime 層與 API 層的責任。
- 建立可重現的 serving endpoint。
- 再整合 RAG、工具、Agent 與應用程式。
- 先估算 RAM/VRAM、KV cache、並行量和儲存。
- 設計健康檢查、限制、監控與升級策略。
- 最後決定單機、容器、多 GPU 或遠端服務拓撲。
整體架構¶
使用者/應用
↓
UI/Agent/RAG
↓
OpenAI-compatible API 或原生 API
↓
推論 Runtime
↓
模型權重+Tokenizer+量化格式
↓
CPU/GPU/NPU、RAM/VRAM、Storage
每一層都可能是瓶頸。模型能載入,不代表能在目標 context、concurrency 與延遲下穩定服務。
系列文章地圖¶
| 建議順序 | 預計文章 | 核心問題 | 狀態 |
|---|---|---|---|
| 1 | Local LLM 全景圖 | 模型、runtime、serving 與應用如何分層? | 規劃中 |
| 2 | 從需求選模型 | 如何依語言、coding、RAG 或 Agent 工作選模型? | 規劃中 |
| 3 | 量化跨硬體選擇:NVFP4、FP8、MLX 4-bit 與 8-bit | 不同硬體上,如何從容量、頻寬、Prefill/Decode、KV cache 與量化 recipe 選擇格式? | 已發布 |
| 4 | MoE 與 Dense:容量、計算與 Offload | Total/Active Parameters、權重、KV cache 與 Offload 如何分開估算? | 已發布 |
| 5 | DFlash 解碼加速:原理、限制與 oMLX 實作 | 如何區分量化與 speculative decoding,判斷長上下文收益,並在 oMLX 正確配對 target/draft? | 已發布 |
| 6 | VRAM 溢出與 MoE Offload 調校 | 為何「Experts 全放 CPU 最快」不是通則?如何偵測不報錯的 VRAM 溢出並找出正確切分? | 已發布 |
| 7 | Runtime 選擇 | llama.cpp、Ollama、vLLM 等框架如何比較? | 規劃中 |
| 8 | 建立推論 API | 如何把單機模型變成可管理的服務? | 規劃中 |
| 9 | RAG 與 Agent 整合 | 何時需要檢索、工具呼叫與記憶? | 規劃中 |
| 10 | 評估不是跑分而已 | 如何用自己的任務測品質、速度與穩定性? | 規劃中 |
| 11 | 維運與安全 | 模型來源、Prompt injection、權限與監控如何處理? | 規劃中 |
容量規劃的核心變數¶
- 模型權重:決定基本 RAM/VRAM 需求。
- 量化格式:影響容量、速度與品質。
- Context length:影響 KV cache 和每次請求成本。
- Concurrency:多使用者會放大 KV cache 與排程需求。
- Prefill/Decode:處理長輸入與逐 token 產生的瓶頸不同。
- Offload:CPU、GPU 之間的資料搬移可能抵消理論加速。
關鍵術語¶
- Runtime:實際載入模型並執行推論的軟體。
- Quantization/量化:用較低精度表示權重或 activation。
- KV cache:Transformer 為已處理 context 保留的 attention 狀態。
- TTFT:Time To First Token,從送出請求到第一個 token 的時間。
- TPS:Tokens Per Second,常用的 decode 速度指標。
- Serving:將模型包裝成可被其他程式呼叫、監控與管理的服務。
範圍界線¶
本系列以架構選擇與實作方法為主。模型、runtime 和硬體版本變化快速,文章會標示測試條件與日期,不把單次跑分當成普遍結論。
後續擴充方式¶
未來可在本主題下加入不同硬體案例、runtime 實測、模型評估模板與部署 runbook。每個案例會與通用方法分開,避免讀者把特定設備結果誤當成唯一答案。