什麼是本地 RAG?
RAG(Retrieval-Augmented Generation)先檢索你的文件片段,再交給模型生成答案。
本地 RAG 的重點是:向量庫、嵌入模型與 LLM 都可放在自己的機器上,資料不必上雲。
適用場景
- 內部 SOP、維運筆記、硬體規格書
- 不想把客戶或工廠資料送到公有雲
- 已有 Ollama,想從「聊天」升級成「可引用資料的問答」
最小可行架構
- 文件層:Markdown / 純文字(先從 vault 匯出)
- 切塊(chunk):依標題或固定 token 切段
- 嵌入(embedding):產生向量
- 檢索:問題 → top-k 片段
- 生成:把片段塞進 prompt,交給 Ollama 模型回答
文件 → chunk → embedding → 向量庫
↓
使用者問題 → 檢索 top-k → 組 prompt → ollama run
實作建議(入門路線)
1. 先把 Ollama 跑穩
若尚未部署,請先完成 Mini PC 本地 LLM 入門。
建議模型尺寸:問答可從 7B~14B 量化版開始。
2. 文件先結構化
- 一篇一主題、標題層級清楚(
##/###) - 避免超長無標題段落(不利切塊)
- 機密文件先確認本機磁碟加密與備份策略
3. 評估指標不要只看「感覺很會講」
- 答案是否引用到正確段落
- 查無資料時是否會承認不知道
- 延遲是否可接受(Mini PC 上要有心理預期)
常見坑
| 現象 | 可能原因 | 處理方向 |
|---|---|---|
| 答非所問 | chunk 太大/太碎 | 調切塊大小與重疊 |
| 一本正經胡說八道 | 檢索没命中仍強答 | 提高「無證據不答」提示 |
| 很慢 | 模型過大或 CPU 跑滿 | 換小模型或限制 context |
| 中文切得差 | 切塊只看空白 | 改用標點/標題切 |
和系統架構的交界
當 RAG 服務要 7×24 跑、或要多容器協作時,請接上 home lab 的容器化思路,見 Docker Compose home lab 起步。
總結
本地 RAG 不是換一個更強的模型而已,而是 「可檢索的私有知識 + 可控的生成」。
先做出單機可重現的流程,再談效能與高可用。