Ian Chou's Blog

為什麼 GraphRAG 需要「實體」?文章片段 (Chunks) vs 專業名詞 (Entities) 的底層邏輯

為什麼 GraphRAG 需要「實體」?文章片段 (Chunks) vs 專業名詞 (Entities) 的底層邏輯

在建立自己的知識庫(如 Skill Graph)或打造進階的 RAG(檢索增強生成)系統時,我們經常會混淆兩個概念:「文章片段(Chunks)」與「專業名詞(Entities)」。

這是一個非常關鍵的區分!簡單來說,「文章片段 (Chunks)」是內容的載體,而「專業名詞 (Entities)」則是內容的靈魂(核心意義)。

這篇文章將帶你從三個維度徹底看懂它們的不同,並介紹如何透過「三明治結構」建立出不受雜訊干擾的 Skill Entity Graph。如果你正在用 GraphRAG 升級你的知識庫,這會是你最需要建立的核心觀念。


一、三維度看懂 Chunk 與 Entity 的本質差異

1. 定義上的差異

2. 關係建立邏輯(決戰點)

這是傳統 RAG 與 Entity Graph RAG 的分水嶺:

方式 A:基於「長相」的鄰居(Chunk kNN)

這是在比較兩段話的「語感」或「氛圍」。

方式 B:基於「血緣」的親戚(Entity Embedding Graph)

這是在比較兩個名詞在「知識領域」裡的真實關係。

3. 實戰對比表

特性 方式 A:文章片段 (Chunks) 方式 B:專業名詞 (Entities)
顆粒度 粗(一大段話) 細(一個詞或短語)
主要功能 提供「詳細描述」與「上下文」 提供「導航」與「邏輯結構」
檢索效果 容易找到「類似的文章」 容易找到「相關的知識領域」
可解釋性 低(AI 說它們像,但說不清為什麼) 高(因為 Docker 是 K8s 的容器運行時)
假設你有 200 個 Nodes 會變成 200 個內容碎片(雜亂) 會長成 200 個技能點(整齊的技能樹)

二、為什麼這對你的「知識圖譜」很重要?

想像你在整理你的職涯知識庫或個人筆記:

結論:方式 B 會先建立「地圖(Entities)」,再根據地圖去找「景點(Chunks)」。這比在荒郊野外亂撞(方式 A)要精準得多。


三、顛覆傳統 RAG 的「三明治結構」

傳統的 RAG(方式 A)只有兩層:問題 ↔ 文章片段
而方式 B 的核心是在中間加了一層「專業名詞(Entity)層」,這層就像是圖書館裡的「分類索引卡」。

這就是 Entity Embedding Graph 的核心運作方式——我們稱之為「三明治結構」:

第一步:提煉出「索引卡」(Entity Layer)

這不是切割文章,而是從文章中「點名」。把 10 萬字的廢話,提煉成 200 個核心硬實力點位。

第二步:讓索引卡「自動連線」(Embedding Graph Layer)

這是方式 B 最神奇的地方。這 200 個詞,我們不需要手動一條一條畫線,而是全部交給 Embedding 模型處理。

第三步:查詢時的「導航」邏輯(Chunk Layer)

當你問系統問題時,它不再直接去翻書(全庫檢索對比),而是先看索引圖:

  1. 鎖定起點: 你問「前端部署」,系統先在索引卡中找到 Vercel
  2. 擴展搜索(Graph Traversal): 系統看圖譜發現 Vercel 原來連接著 Next.jsCloudflare
  3. 精準撈取: 系統同時去底層的內容層(Chunk Layer),把掛載在這三個關鍵字下的所有筆記片段一口氣撈出來。

生活化比喻


四、實作 Entity Embedding Graph 的優質資源整理

目前講述「純粹」Entity Graph RAG 的中文資源較少,但 2025 年開始相關的方法已經在國外越來越普及。如果你想親手實作「提煉 Entity → Embedding 自動連線 → Graph Traversal」的完整流程,強烈推薦以下資源:

🎬 推薦影片(實作導向)

📚 教學文章與完整代碼

🌏 中文及理論資源


如果你的節點也是具有固定定義的專業知識(如前面提到的 Skill Graph 200 個核心技能),採用 方式 B (Entity Graph) 絕對是目前防堵 AI 產生幻覺雜訊、並建立自動邏輯聯想(Graph Traversal)的最強武器!