本地端混合圖形檢索增強生成系統 (Local Hybrid Graph RAG)
建置與敏捷實作標準作業程序 (SOP)
1. 目的與適用範圍
本標準作業程序(SOP)旨在指導技術團隊如何在限定的本地端硬體資源下,成功建置一套高度可行的「混合型圖形檢索增強生成系統(Local Hybrid Graph RAG)MVP」。
本文件摒棄傳統企業級大規模分布式圖形資料庫的繁瑣初始化配置,改採「漸進式技術堆疊疊加」策略。透過先通基礎向量檢索(Vector RAG),再逐步抽離實體(Entity)與關係(Relation)導入圖形結構的演進路線,確保系統在研發初期即具備可驗證性與高成功率。本程序適用於私有知識庫、在地 AI 助理、程式碼架構知識圖譜(Code Knowledge Graph)以及文件複雜推理系統等中小規模應用場景。
2. 硬體環境基準與模型配置
本系統之設計完全針對中階單機工作站進行最佳化。以下為實作基本硬體要求與推薦之開源模型參數配置:
| 硬體元件 | 基準配置要求 | 架構調優說明 |
|---|---|---|
| 中央處理器 (CPU) | Intel Core i5-12400 或同等以上 | 負責初期資料攝入(Ingestion)、文本切片與關聯式資料庫查核,效能充足。 |
| 隨機存取記憶體 (RAM) | 32GB DDR4 / DDR5 | 關鍵要素。用於承載記憶體內圖形運算(NetworkX)及大型上下文暫存。 |
| 圖形處理器 (GPU) | NVIDIA GeForce RTX 4060 (8GB VRAM) | 專注於執行 7B 至 14B 之量化模型,確保本地推論速度。 |
| 儲存空間 (SSD) | NVMe M.2 SSD (高速讀寫) | 圖形遍歷與索引比對極度依賴隨機 I/O 效能,嚴禁使用傳統機械硬碟。 |
2.1 本地端大型語言模型 (Local LLM) 選擇指南
基於 8GB 顯示記憶體(VRAM) 之物理限制,模型層級可行性評估如下:
- 最推薦配置:
Qwen2.5-7B-Instruct或Qwen3-8B。此規格模型在中文文本理解、指令遵循(Instruction Following)及長文本上下文(Long Context)表現極佳,且能完美塞入 8GB VRAM。 - 量化規格: 統一採用
Q4_K_M(4-bit 量化),在模型推理精度與記憶體佔用之間取得最佳平衡。 - 執行環境(Runtime): 優先推薦使用
Ollama或llama.cpp進行輕量化管理;若有高效能多用戶並行需求,後續可考慮vLLM。
⚠️ 邊界限制警告(RTX 4060 8GB) 本硬體配置嚴禁於初期強行運行 70B 級別之大規模生產環境模型、混合專家模型(MoE)或無量化(FP16)之 14B 以上模型,否則將導致顯示記憶體溢出(OOM)或引發極度緩慢的 CPU 記憶體置換。
3. 系統整體架構藍圖 (Phase 1 MVP)
為降低架構複雜度,第一階段(Phase 1)核心任務為打通「純本地端向量 RAG 管道」,暫不引入圖形資料庫。
核心資料流程序
原始文件輸入 (PDF / Markdown / Codebase)
↓
智慧文本切片 (Smart Chunking Strategy)
↓
向量嵌入生成 (Embedding via BAAI/bge-m3)
↓
向量資料庫儲存與檢索 (ChromaDB / pgvector)
↓
本地端大型語言模型生成 (Ollama / Qwen2.5-7B)
核心技術元件選型
- LLM Runtime:
Ollama(安裝與指令極簡化,資源佔用低,支援即時 API 呼叫) - Embedding:
BAAI/bge-m3(具備強大之雙語/多語言能力,語義檢索精準,模型體積精簡) - Vector DB:
ChromaDB(適合 Phase 1 快速驗證;中期無縫遷移至 PostgreSQL + pgvector) - Framework:
LlamaIndex(內建KnowledgeGraphIndex與PropertyGraphIndex,對未來圖形擴充支援度最高) - User Interface:
Open WebUI(提供直覺的 Web 互動介面,便於前端測試與使用者體驗驗證)
4. 五週漸進式實作開發時程表
技術團隊必須嚴格執行週週期進度,在前一週指標未達成前,切勿提前跨入下一階段。
【第 1 週】基礎建置:本地向量 RAG 系統驗證
- 執行步驟:
- 下載並安裝 Ollama 環境,執行指令拉取模型:
ollama run qwen2.5:7b。 - 配置 LlamaIndex 框架,設定 Embedding 模型為
bge-m3。 - 導入測試文件(如專案說明 PDF、Codebase),進行文本切片(Chunking)並寫入 ChromaDB。
- 下載並安裝 Ollama 環境,執行指令拉取模型:
- 檢核點(Milestone): 系統能正確回答文件內的基本事實。例如輸入:「本專案的主要架構是什麼?」LLM 能依記檢索到的 Context 給出無幻覺的正確回答。
【第 2 週】核心突破:實體與關係抽取 (Entity & Relation Extraction)
- 執行步驟:
- 撰寫 Prompt Engineering 範本,強迫 Qwen 模型對 Chunk 進行結構化資訊抽取。
- 設計嚴格的 JSON Schema,要求模型輸出「實體定義」與「三元組關係」。
- 抽取資料標準結構範例: ```json // 實體抽取 JSON Schema 範例 { “entity”: “Kubernetes”, “type”: “Technology” }
```json
// 關係抽取 JSON Schema 範例
{
"source": "Project Titan",
"target": "Kubernetes",
"relation": "USES"
}
【第 3 週】記憶體內驗證:NetworkX 圖形遍歷實作
- 執行步驟:
- 嚴禁在此時安裝複雜資料庫。將第 2 週抽取的 JSON 三元組直接寫入 Python 內建的
NetworkX記憶體圖形對象中。 - 利用 NetworkX 進行簡單的圖形遍歷(Graph Traversal)與鄰近節點檢索(Graph Expansion)。
- 嚴禁在此時安裝複雜資料庫。將第 2 週抽取的 JSON 三元組直接寫入 Python 內建的
- 檢核點: 驗證將圖形關聯拓撲結構與向量檢索上下文合併後,檢索品質是否實質提升。
【第 4 週】演算法優化:混合檢索融合 (Hybrid Retrieval Fusion)
- 執行步驟:
- 實作向量檢索(Vector Search)與圖形檢索(Graph Retrieval)的雙向融合演進。
- 設計上下文壓縮(Context Compression)機制,防止圖形關聯展開時導致 Token 數量爆炸。
- 調校 Prompt,使其能夠同時綜整「語義相似度資料」與「圖形拓撲關聯資料」。
【第 5 週】落地工程化:Apache AGE 與 PostgreSQL 基礎設施整合
- 執行步驟:
- 在本地端部署 PostgreSQL,並啟用
pgvector插件與Apache AGE圖形資料庫擴充功能。 - 將架構由單機記憶體(NetworkX)正式搬移至關聯與圖形統一儲存體: ```text PostgreSQL 數據中樞 ├─ documents (原始文本段落) ├─ metadata (文件元數據) ├─ embeddings (pgvector 向量索引) └─ graph (Apache AGE 圖形拓撲)
- 在本地端部署 PostgreSQL,並啟用
```
5. 關鍵技術要點與品質控管 (Quality Control)
Graph RAG 專案的成敗 90% 取決於資料清洗與精細工程,而非資料庫硬體。必須嚴格控管以下五大技術指標:
- 切片策略 (Chunking Strategy): 避免盲目按字數切片。應採取語義切片(Semantic Chunking)或基於 Markdown 標題層級的切片,確保單個 Chunk 內資訊的完整性。
- 實體抽取品質 (Entity Extraction Quality): 這是系統的核心難點。必須反覆優化 Prompt,防止模型抽取抽到無意義的代名詞(例如將「此專案」視為實體),或產生過多破碎、無關聯的孤立節點。
- 檢索融合 (Retrieval Fusion): 必須確保 Vector 與 Graph 兩路檢索結果的權重可動態調校。
- 當使用者詢問「什麼是…」:偏重 Vector 語義檢索。
- 當使用者詢問跨節點關係(如「哪些專案同時依賴 PostgreSQL 與 Kubernetes?」):必須完全觸發 Graph 檢索。
- 提示詞工程 (Prompt Engineering): 於 System Prompt 中加入嚴格限制,強制 LLM 僅能依據檢索到的混合上下文進行回答,不允許延伸本機幻覺,並在無法導出結論時主動回答「根據現有知識庫圖譜無法回答」。
- 上下文防爆機制 (Context Compression): 圖形結構容易因為度(Degree)過高而引入大量相鄰節點。必須限制檢索展開步數(Max Depth $\le$ 2),並採用 Reranker 模型對上下文進行二次精簡與過濾。
6. 常見架構錯誤與防範反思 (Anti-Patterns)
本程序特別總結業界常見失敗案例,開發團隊應定時對照反思,嚴禁踩踏以下雷區:
| ❌ 錯誤的歪路 (盲目追求企業級) | ✅ 正確的捷徑 (單機 MVP 導向) |
|---|---|
| 一開始就架設大規模 Neo4j 集群、Kubernetes (K8s) 或分布式圖形基礎設施。 | 先用 NetworkX 記憶體圖形在 Python 內跑通,快速驗證「圖形結構對業務是否有實質價值」。 |
| 貪多騖遠,直接實作 LangGraph 多 Agent 群體協同(Agent Swarm)或複雜的記憶圖形結構。 | 專注做好單一場景的「本地文件圖形助理」MVP,理順 Chunk、Embedding 與 Prompt。 |
| 誤以為 Graph RAG 成功關鍵在於買高規 GPU 跑 70B 模型。 | 認知到難點在於資料清洗、實體對齊(Entity Resolution)與 Prompt 抽取品質。用 7B 模型搭好管線才是核心。 |
💡 MVP 終端驗證場景示例 當五週時程結束後,本系統應具備在本地端高效率回答下列跨維度複雜查詢的能力:
- 「哪些模組實質依賴了 PostgreSQL 資料庫?」
- 「當前有哪些獨立專案同時使用了 Kubernetes 架構?」
- 「請列出參與 Titan 專案的所有人員及其核心負責範疇。」