🐒 Ming's Note

← Back to Concepts

SAG: SQL-Retrieval Augmented Generation

一句話

SAG 用 SQL JOIN 喺查詢時動態構建事件關係,取代 Traditional RAG 嘅向量模糊匹配同 GraphRAG 嘅預建知識圖譜。快 + 深 + 支持增量更新。

核心架構

chunk → 一個完整語義事件(唔係三元組碎片)
chunk → 多個索引實體
事件 ↔ 實體 → 一個潛在超邊(查詢時 SQL JOIN 動態構建)

三層設計: 1. Event(事件) — 承載 chunk 完整語義,唔拆成獨立三元組 2. Entity(實體) — 輕量級索引同擴展點,唔替代事件含義 3. Query-time Dynamic Hyperedge — 查詢時先用 SQL JOIN 將共享實體嘅事件連接,唔預建全局圖

同 RAG / GraphRAG 嘅分別

維度 Traditional RAG GraphRAG SAG
檢索方式 向量模糊匹配 預建知識圖譜 + 圖遍歷 SQL JOIN 動態構建
多跳推理 弱(淺層語義) 強(累積效應)
增量更新 簡單 難(要重建圖譜) 簡單(新 chunk 自帶事件+實體)
構建成本 高(LLM 抽取三元組) 中(小模型抽取事件+屬性)
速度 快(SQL 查詢極快)
全局維護 需要

自然語言向量

SAG 嘅關鍵創新之一。每個事件提取多維度屬性(時間、地點、人物、行為等),用自然語言描述而非數字向量。

六度分隔理論應用: - 事件 A 同事件 C 冇直接交集 - 但 A 同 B 有共同屬性,B 同 C 有共同屬性 - SQL JOIN 實時將 A-B-C 連接成超邊

向量 + SQL 雙引擎: - 向量負責語義模糊匹配(「蘋果公司」→ 「Apple Inc」) - SQL 負責精準結構化查詢 - 互相彌補:向量嘅不确定性被 SQL 馴化

性能基準

HotpotQA、2WikiMultiHop、MuSiQue 三個多跳基準測試:

9 項 Recall@K 指標中攞到 8 項最佳。

注意: 論文只報 retrieval recall,冇報 QA EM/F1。召回多唔等於下游 QA 準確率 1:1 傳導。

檢索流程

離線索引: 1. 文件解析 → 語義 chunk 2. 並行抽取事件 + 實體 3. 持久化 chunk、事件、實體、關聯到關係型存儲 4. 持久化向量/全文索引

在線檢索: 1. 語義 + 詞法信號搵種子事件/實體 2. SQL JOIN 將種子事件擴展成本地候選空間 3. 只實例化當前查詢相關嘅超邊 4. 選擇最強候選、去重、返回原始證據 chunk

技術棧

應用場景

  1. 企業知識庫 — 喚醒沉睡歷史數據,連接最新業務
  2. 個人知識管理 — 筆記/文檔變成可檢索關聯體系
  3. Agent 記憶基座 — 更精準嘅上下文,減少步驟提升成功率
  4. 數據處理器 — 非結構化 → 結構化,重構現有數據

局限性

相關

鏈接