构建基于 SAGE 的可解释图 RAG 系统
- 作者

- 姓名
- Nino
- 职业
- Senior Tech Editor
检索增强生成 (RAG) 的演进已经超越了简单的向量相似度匹配。虽然传统的 RAG 将数据视为平面向量空间中孤立的“块” (Chunks),但现实世界的信息本质上是相互关联的。这就是 SAGE (Structure Aware Graph Expansion,结构感知图扩展) 框架发挥作用的地方。它提供了一种构建可解释、多跳检索系统的健壮方法。通过集成来自 n1n.ai 的高性能 LLM 后端,开发者现在可以以前所未有的速度和可靠性实现这些复杂的图结构。
传统平面检索的局限性
标准的 RAG 架构经常遭遇“语义鸿沟”问题。在平面检索模型中,系统计算查询嵌入与文档嵌入之间的距离。如果一个查询需要连接两个互不相关的片段——例如乐队的成立日期和特定专辑的主题——检索器可能无法桥接这种跨度。
例如,如果你问:“哪部摇滚歌剧是由 1965 年成立的乐队发行的?”,平面检索器可能会找到乐队的历史(提到 1965 年)或专辑《The Wall》(提到摇滚歌剧),但它很少能将两者同时排在足够高的位置以合成答案。SAGE 通过离线构建结构化图来解决这个问题,捕捉异构数据点之间的“连接组织”。
SAGE 框架的核心架构
SAGE 的核心在于创建一个可审计的检索基座。与黑盒嵌入模型不同,SAGE 使每一个检索步骤都变得确定且可检查。这对于企业级应用至关重要,因为在这些应用中,可解释性不仅是一项功能,更是监管要求。
1. 离线图构建
该过程从处理异构数据块开始。在我们的示例中,我们使用传奇乐队平克·弗洛伊德 (Pink Floyd) 作为数据集,包含 8 个不同的节点:
- 乐队身份:Pink Floyd (伦敦,1965 年)。
- 作品目录:《Dark Side of the Moon》、《The Wall》、《Wish You Were Here》。
- 成员:David Gilmour、Roger Waters、Syd Barrett。
- 个人作品:David Gilmour 的《About Face》。
SAGE 对所有节点对执行 的相似度分析。通过 n1n.ai 调用 Claude 3.5 Sonnet 或 GPT-4o 等模型,我们可以生成捕获这些实体之间微妙关系的维度嵌入。
2. 95% 分位数剪枝规则
图 RAG 的一个常见陷阱是“毛球”效应——即每个节点都与其它所有节点相连,导致噪声过多。SAGE 实施了基于统计阈值的严苛剪枝策略。
具体而言,系统计算每一条可能边的余弦相似度。为了确保高精度,只有处于相似度得分前 5% (即 95% 分位数) 的边才会被保留。这确保了生成的图只反映最强的语义邻域。例如,David Gilmour 和 Roger Waters 之间由于高度共享的上下文会保留一条边,而城市与个人专辑之间的随机连接如果相似度 < 0.85,则会被剪掉。
使用 JSON-LD 进行数据表示
SAGE 使用 JSON-LD (JSON for Linked Data) 作为其主要的导出格式。这一选择具有战略意义。JSON-LD 允许图结构与现有的知识图谱标准和 Web 规模的链接数据系统互操作。
{
"@context": {
"schema": "https://schema.org/",
"sage": "urn:sage:ontology:",
"isPartOf": { "@type": "@id" }
},
"@type": "sage:KnowledgeGraph",
"sage:framework": "SAGE (Structure Aware Graph Expansion)",
"@graph": [
{
"@type": "CreativeWork",
"@id": "urn:sage:chunk:pf-band",
"name": "Pink Floyd Band Info",
"description": "Pink Floyd 是一支 1965 年在伦敦成立的英国摇滚乐队。",
"mentions": { "London": "CITY", "Pink Floyd": "BAND", "1965": "DATE" }
},
{
"@type": "Relationship",
"source": { "@id": "urn:sage:chunk:pf-band" },
"target": { "@id": "urn:sage:chunk:pf-album-wall" },
"relationshipType": "DOC_DOC",
"weight": 0.85
}
]
}
通过使用这种格式,图不再仅仅是向量列表;它变成了一个 AI 代理可以逻辑遍历的结构化地图。
多跳检索流程详解
当一个复杂的查询进入系统时,SAGE 遵循两阶段执行路径:
- 种子选择 (Seed Selection):检索器识别“种子节点”。在关于 1965 年成立的乐队的查询中,系统匹配“Pink Floyd 乐队信息”节点,因为它明确包含 1965 年这一年份。
- 图扩展 (Graph Expansion):检索器不会停在种子节点,而是沿着 JSON-LD 结构中定义的边进行“行走”。它遵循
DOC_DOC关系找到《The Wall》。由于《The Wall》被标记为“摇滚歌剧”,系统现在拥有了回答查询所需的所有组件。
这种“行走”正是实现多跳推理的关键。LLM 作为推理引擎,决定遵循哪些边。利用 n1n.ai 提供的统一 API,你可以调用具有超长上下文窗口的模型来处理这些扩展的图上下文,而不会触发 Token 限制。
专家建议:在生产环境中扩展 SAGE
虽然 对于小数据集是可行的,但扩展到数百万个文档需要进行优化。我们建议使用近似最近邻 (ANN) 搜索来预筛选潜在的边,然后再为 95% 分位数剪枝计算精确的相似度。这种混合方法既保持了 SAGE 的结构完整性,又确保了离线构建过程的高效性。
此外,通过将检索引擎暴露为可调用工具 (例如使用 Tools4AI 框架),你的 AI 代理可以动态决定是否需要 expandNode,或者 seedNode 是否已经提供了足够的信息。这种自主性是高级 RAG 实现的标志。
总结
SAGE 将 RAG 从简单的“搜索并总结”任务转变为复杂的知识发现过程。通过利用结构桥梁和统计剪枝,它消除了传统向量搜索的“黑盒”性质。要开始使用全球最强大的模型构建你自己的图 RAG 系统,请将你的工作流与 n1n.ai 集成。
在 n1n.ai 获取免费 API 密钥。