LightRAG 是香港大學 (HKU) 的一項研究專案,重新想像了使用知識圖譜的檢索增強生成(RAG)。該專案已被 EMNLP 2025 收錄,以基於圖形的架構取代傳統的平面向量儲存方法,從文件中提取實體及其關係,為 LLM 應用提供顯著更好的上下文理解。
傳統 RAG 系統透過嵌入相似度檢索孤立文件片段,而 LightRAG 則從你的文件建立結構化的知識圖譜——實體成為節點,關係成為邊。當查詢送達時,它會在圖形中執行雙層檢索:低層級檢索用於具體事實答案,高層級檢索用於更廣泛的主題摘要。結果是檢索不僅理解哪些詞語一起出現,還理解概念之間實際的關聯方式。
該專案不僅因其創新方法,也因其實用性而獲得了開源社群的廣泛關注。程式碼庫輕量、文件完善,並包含增量更新(新增文件時無需完整重建)、互動式圖形視覺化及多種後端支援(OpenAI、Ollama、Hugging Face)等功能。
LightRAG 的圖形檢索是如何運作的?
傳統 RAG 將文件編碼為平面向量,並透過餘弦相似度檢索片段——這個過程從根本上受限,因為它不了解片段之間的相互關係。LightRAG 透過在索引階段建構知識圖譜來解決此問題。
graph TD
A[輸入文件] --> B[實體提取]
A --> C[關係提取]
B --> D[知識圖譜建構]
C --> D
D --> E[社群檢測]
D --> F[實體嵌入]
D --> G[關係嵌入]
E --> H[高層級檢索\n摘要]
F --> I[低層級檢索\n具體事實]
G --> I
H --> J[聚合答案]
I --> J
J --> K[LLM 回應]該管線分三個階段運作:
- 圖形建構:處理文件以提取實體(人物、公司、概念)及其關係。這些形成儲存為結構化資料的有向圖。
- 社群檢測:使用層次聚類將圖形分割為相關實體的社群。每個社群生成一個摘要嵌入,用於高層級檢索。
- 雙層檢索:查詢同時與實體層級和社群層級的嵌入進行匹配,然後將檢索到的圖形上下文提供給 LLM 進行答案生成。
這種架構產生的答案反映了知識的實際結構,而非任意的文件邊界。
雙層檢索有哪些優勢?
雙層設計是 LightRAG 的決定性創新。要理解其重要性,請考慮兩種類型的問題:
| 查詢類型 | 傳統 RAG | LightRAG 雙層 |
|---|---|---|
| 「Apple 在 2020 年收購了什麼?」 | 尋找提到「Apple」、「2020」和「收購」的片段 | 低層級檢索:直接追蹤圖形中的 [Apple] --acquired--> [Startup X] 邊 |
| 「Apple 的收購策略是什麼?」 | 在不相關的片段中散亂搜尋 | 高層級檢索:返回整個「Apple 收購」群集的社群摘要 |
| 「Apple 的 AI 策略與 Google 相比如何?」 | 難以連接不同的片段群組 | 遍歷兩個群集並返回合併的圖形上下文 |
| 「解釋 Apple 晶片開發的時間線」 | 可能遺漏稀疏片段之間的時間順序關聯 | 低層級檢索追蹤時間關係邊:[Apple] --developed--> [A14]、[Apple] --developed--> [M1] |
關鍵在於圖形自然捕捉關係,這是平面向量儲存無法做到的。雙層檢索讓 LightRAG 能自動為每個查詢選擇適當的粒度——這是傳統 RAG 系統需要手動設定才能實現的功能。
主要功能規格有哪些?
| 功能 | 描述 | 狀態 |
|---|---|---|
| 圖形建構 | 從文件提取實體與關係 | 穩定 |
| 雙層檢索 | 低層級(事實)與高層級(摘要)查詢 | 穩定 |
| 增量更新 | 無需完整圖形重建即可合併新文件 | 穩定 |
| 圖形視覺化 | 互動式實體-關係圖形瀏覽器 | 穩定 |
| 多種後端 | OpenAI、Ollama、Hugging Face、自訂 API | 支援 |
| API 存取 | Python SDK + RESTful API | 穩定 |
| 嵌入模型 | 可設定,支援多種模型 | 支援 |
增量更新是如何運作的?
LightRAG 最實用的功能之一,是支援無需重建整個圖形的增量知識庫更新。這對於資料持續變化的實際部署至關重要。
flowchart LR
A[新文件] --> B[提取實體\n與關係]
B --> C{實體是否存在於\n圖形中?}
C -->|是| D[新增關係\n與邊]
C -->|否| E[建立新的\n實體節點]
D --> F[更新社群\n檢測]
E --> F
F --> G[重新計算\n受影響的嵌入]
G --> H[更新檢索\n索引]
H --> I[準備好查詢]增量更新過程效率高,因為它只處理新文件的實體與關係,將其合併到現有圖形結構中,並僅重新計算受影響節點和社群的嵌入。這避免了完整圖形重建的 O(n) 成本,使 LightRAG 非常適合持續成長的知識庫。
LightRAG 支援哪些後端?
| 後端 | 使用案例 | 設定 |
|---|---|---|
| OpenAI (GPT-4o, GPT-4o-mini) | 使用雲端 LLM 的生產部署 | LIGHTRAG_LLM_BACKEND=openai |
| Ollama | 使用開放模型的本機/私有部署 | LIGHTRAG_LLM_BACKEND=ollama |
| Hugging Face | HF Hub 的自訂模型 | LIGHTRAG_LLM_BACKEND=huggingface |
| 自訂端點 | 企業代理或自託管 API | LIGHTRAG_LLM_BACKEND=custom |
LightRAG 的後端抽象意味著你可以先用 OpenAI 進行原型設計,然後在生產環境中切換到 Ollama 的本機模型——或者執行混合模式,嵌入在本機進行而生成使用雲端。
如何安裝與使用 LightRAG
透過 pip 安裝非常簡單:
pip install lightrag-hku
基本使用只需幾行 Python:
from lightrag import LightRAG, QueryMode
rag = LightRAG(workspace_dir="./my_knowledge_base")
# 插入文件
rag.insert("Apple 在 2020 年收購了新創公司 X 以擴展其 AI 能力。")
rag.insert("Google 在 2023 年推出了 Gemini 模型,與 GPT-4 競爭。")
# 使用雙層檢索進行查詢
answer = rag.query("Apple 的收購策略是什麼?",
mode=QueryMode.HYBRID)
# 低層級查詢具體事實
fact = rag.query("Apple 在 2020 年收購了什麼?",
mode=QueryMode.LOCAL)
該系統還支援從檔案批次插入文件、自訂嵌入設定,以及與現有文件管線整合。
常見問題
什麼是 LightRAG?它與傳統 RAG 有何不同? LightRAG 是香港大學的 EMNLP 2025 研究專案,以知識圖譜方法取代平面向量資料庫檢索。與傳統 RAG 透過嵌入相似度檢索文件片段不同,LightRAG 從文件中提取實體與關係到圖形結構中,實現雙層檢索(低層級針對特定事實,高層級針對全局摘要)。
LightRAG 的雙層檢索是如何運作的? LightRAG 的雙層檢索以兩種粒度運作。低層級檢索查找具體的實體關係,而高層級檢索捕捉更廣泛的摘要。基於圖形的方法會根據查詢自動決定適當的層級,無需手動設定。
LightRAG 支援知識庫的增量更新嗎? 是的,LightRAG 透過部分圖形重構支援增量知識庫更新。當新增文件時,LightRAG 會提取實體與關係,將其合併到現有圖形中而無需完整重建,僅更新受影響節點的嵌入。
LightRAG 提供哪些圖形視覺化功能? LightRAG 提供互動式圖形視覺化,以節點顯示實體、以邊顯示關係,並按社群叢集進行顏色編碼。使用者可以探索知識圖譜、點擊實體查看詳細上下文、追蹤關係路徑,以及視覺化檢查檢索結果的關聯方式。
LightRAG 支援哪些後端與 API? LightRAG 支援多種 LLM 後端,包括 OpenAI、Ollama、Hugging Face 及自訂端點。它提供 Python API 和 RESTful API 供外部應用程式整合。
延伸閱讀
- LightRAG GitHub 儲存庫 – 官方原始碼、文件與範例
- LightRAG 研究論文 (EMNLP 2025) – 描述架構與評估的學術論文
- Microsoft Graph RAG – 另一種具有不同設計取捨的圖形 RAG 方法
- Neo4j 圖形資料庫 – 可作為 LightRAG 儲存後端的圖形資料庫平台
- Ollama 本機 LLM – 在本機執行 LLM,實現完全私密的 LightRAG 部署
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!