Ian Chou's Blog

破除 GraphRAG 迷思:真正重要的不是 Graph,而是 Embedding 自己長出來的 Entity Graph

破除 GraphRAG 迷思:真正重要的不是 Graph,而是 Embedding 自己長出來的 Entity Graph

在討論 GraphRAG 或知識圖譜時,我們常聽到一句大白話:「Graph 就是向量搜尋(Vector Search)的導航圖。」

這句話本身沒錯,但太過通用了。這會讓人自動腦補成傳統的 Neo4j 知識圖譜,或者是人工手寫的 Keyword Graph。

如果你正在關注像 lance-graphhelixdb 這類新興工具,你真正要看懂的核心對比不是「Vector Search vs Graph」,而是:

  1. Chunk-level vector retrieval(段落向量檢索)
  2. Hand-written keyword graph(人工定義關鍵字圖譜)
  3. Entity embedding graph(實體嵌入圖譜)—— 這才是主角!

這支文章,我們來談談為什麼我們需要第三種,以及如何透過 5 種主流方法,將雜亂的文章自動昇華成這張圖。


核心金句:我們到底在解決什麼問題?

「Graph 不是重點,重點是把 Retrieval 從 Chunk Space 拉到 Entity Space,然後用 Embedding 自動生成 Entity 之間的圖。」

很多人以為 GraphRAG 的價值是做多跳查詢(Multi-hop);但 lance-graphhelixdb 真正厲害的地方在於:它把「關係定義」這件事從人手上拿掉了。

以往要做一張技能圖譜,你需要:

但在 Entity Embedding Graph 的世界:

Vector Search 只會幫你找到和 Query「文字語意接近」的段落(Chunk)。但很多關鍵的解法或技術,是 Query 根本沒直接說出來的,它們藏在實體與實體(Entity-to-Entity)的隱含語意鄰近上。我們做的,就是把這些鄰近關係先建成圖,再拿圖去導引後續的段落檢索。

這不是傳統的 Knowledge Graph,也不是純 Vector DB。這是用 Embedding Similarity 動態生成 Entity-Level Topology 的全新檢索生態。


實作關鍵:如何從文章中抽出這些 Entity?

要讓 Embedding 幫你畫圖,第一步是得先有乾淨、標準的 Entity(實體節點)

目前從雜亂的文章(Chunk)中提煉出 Entity,主要有以下 5 種方法(從傳統 NLP 到現代 LLM 皆有),而主流的 GraphRAG 和 KG-RAG 通常採用第一種(準確率最高、最易於擴展):

方法 原理與做法 代表工具 / 範例 優缺點分析
1. LLM Prompting
(最標準)
透過 Prompt 直接請 LLM 提取 Entity 與其關係描述。 GraphRAG 的 Prompt 機制、LangChain 的 LLMGraphTransformer ✅ 準確率極高 (90%+),非常靈活。
❌ 成本高,速度受限於大模型。
2. Rule-based 利用 Regex 或特徵字比對(名詞+動詞)來暴力抓取。 spaCy rule, NLTK chunker ✅ 快、完全免費。
❌ 嚴重受限於特定領域(例如只能抓已知技能名單)。
3. Pipeline
(NER + RE)
先做命名實體識別(NER),接著丟給關係分類器。 spaCy NER + pipeline, Stanford CoreNLP ✅ 穩定,中等準確度 (約 80%)。
❌ 需要自己花時間 Train 模型。
4. Transformer
(端到端)
使用 BERT 或 GPT 做 Fine-tune,進行 Joint Entity-Relation Extraction。 REBEL model, T5-RE ✅ 準確度高 (95%)。
❌ 需要撰寫/準備大量的 Training Data。
5. Bootstrapping 給定一小批 Seed Pairs,讓演算法自動去擴展 Pattern。 Snowball, Distant supervision ✅ 半監督學習,低人工成本。
❌ 雜訊很容易像滾雪球一樣擴散。

給「個人技能圖譜 (Skill Graph)」的實戰建議

如果你正在處理的是個人的技術筆記、職涯經歷或大約 200 個節點的技能圖譜,我強烈推薦使用 混合模式(Hybrid)

你的標準流程會是: LLM Extract ➡️ Dedup (去重) ➡️ Embed (轉向量) ➡️ Graph (建圖)


CtxFST Markdown 規範的獨特定位

你可能會想:「既然 Anthropic, GraphRAG 都已經在講 Contextual Retrieval,那我自己搞這套 Skill Chunk MD (CtxFST) 還有意義嗎?」

絕對有意義!而且不僅不是重複發明輪子,更是互補與領先。

微軟的 GraphRAG 和 Anthropic 的 Contextual Retrieval(證明了 Context 前置能提升 20% 檢索品質,但 Merge 過後非常難以微調)是在講大方向的解法。而 CtxFST 做的事情,是把 「Entity-First + Structured Chunking」格式化成了一套標準,讓你的技能圖更易於擴充(Scale)與分享。

我們來比較一下 CtxFST 目前的優勢:

你的 CtxFST 靈感 CtxFST 的實踐現況 CtxFST 的獨特定位(你的差異化優勢)
Context in metadata ✅ Core (將 Context 與 Tags 與 Chunk 本體分離) 專屬技能/職涯檢索:加入 prioritydependencies 欄位,直擊 Agentic RAG(代理型檢索)對於規劃步驟的需求。
Entity catalog ✅ Top-level entities (文件頂層宣告) 200 Nodes 最佳化:透過白名單提取 + Embedding 計算邊,大幅省下每次進 GraphDB 都要跑 LLM 關係萃取的昂貴成本。
Chunk linkage chunks[].entities 綁定 原生銜接生態系:無痛對接 LanceDB / HelixDB 發布,只需 1 步 Export,不用經過複雜轉檔。

圖不是取代向量搜尋的對手。有了這套標準化的 Markdown 結構,你正在做的,是用向量算出的相似度,去編織出那張沒有人為偏見的「完美語意導航圖」。