SAG: 一種透過查詢時動態超邊結合語義搜尋與關聯推理的檢索架構
SAG: 一種透過查詢時動態超邊(dynamic hyperedges)結合語義搜尋與關聯推理的檢索架構
它解決了什麼問題
SAG 解決了傳統 RAG(依賴語義相似度)和 GraphRAG(需要昂貴的離線圖建構與複雜維護)的局限性。它提供了一個既能處理語義檢索又能處理關聯推理的系統,而無需維護兩個獨立的系統或一個全域知識圖譜。
運作方式
SAG 引入了一種基於「具備查詢時動態超邊的 SQL-檢索增強生成(SQL-Retrieval Augmented Generation with Query-Time Dynamic Hyperedges)」的新型檢索架構。
- 索引(Indexing):文件被解析成區塊(chunks)。對於每個區塊,系統會提取一個「事件(event)」(完整的含義)和多個「實體(entities)」(輕量級索引點)。這些會連同其向量嵌入(vector embeddings)一起儲存在關聯式儲存中。
- 檢索(Retrieval):SAG 不預先建構全域圖,而是利用語義訊號尋找種子實體與事件。接著,它在查詢時透過共享實體的 SQL joins 來局部擴展搜尋空間,僅針對相關數據建立「動態超邊(dynamic hyperedges)」。
- 證據(Evidence):最終輸出總是會映射回原始來源區塊,以確保可追溯性與引用。
對象是誰
- 個人用戶:想要建立一個「本地優先(local-first)」知識庫,用以整理零散文件並透過引用進行對話的用戶。
- AI Agent:需要透過 API 或 Model Context Protocol (MCP) 獲取結構化、可搜尋且可追溯知識庫的開發者。
- 開發者:正在尋找高效能 RAG 引擎(
zleap-sagPython package)以整合進自身服務的人士。
重點亮點
- SOTA 性能:在多跳檢索(multi-hop retrieval)基準測試(HotpotQA, 2WikiMultiHopQA, MuSiQue)中表現優於 HippoRAG 2。
- 本地優先:從 SQLite 和 LanceDB 開始,初始設定不需要外部資料庫。
- 可追溯性:每個結果與引用都可以追溯回確切的原始文本區塊。
- 可擴展整合:支援 OpenAI 相容的聊天端點以及 MCP,以便與 Claude Code 或 Codex 等 Agent 進行整合。
- 靈活的儲存:支援多種後端,包括 PostgreSQL/pgvector 和 Elasticsearch。
Sources
- undefinedZleap-AI/SAG