图增强RAG架构:超越向量搜索的生产实践

检索增强生成(RAG)已成为将大型语言模型(LLM)锚定在私有数据中的事实标准。传统架构——将文档分块、嵌入向量数据库、通过余弦相似度检索Top-k结果——对于非结构化语义搜索非常有效。然而,在供应链、金融合规、欺诈检测等高度互联数据的企业领域,纯向量RAG常常失效。它捕捉了相似性,却忽略了结构。对于多跳推理问题,如“组件X的延迟将如何影响我们为客户Y的Q3交付成果?”,向量存储无法“知道”组件X是客户Y交付成果的一部分。
本文探讨图增强RAG模式。基于我在Meta构建高吞吐量日志系统和Cognee私有数据基础设施的经验,我们将逐步介绍一种参考架构,结合向量搜索的语义灵活性与图数据库的结构确定性。
问题:向量搜索丢失上下文
向量数据库擅长捕捉语义,却丢弃了拓扑结构。当文档被分块并嵌入时,显式关系(层级、依赖、所有权)往往被扁平化或完全丢失。
以供应链风险场景为例。虽然这是一个假设性示例,但它代表了我们在企业数据架构中经常看到的结构化问题:
-
结构化数据:一个定义供应商A为工厂Y提供组件X的SQL数据库。
-
非结构化数据:一篇新闻报告称:“泰国洪水已停止供应商A的工厂生产。”
标准向量搜索“生产风险”将检索新闻报告。然而,它很可能缺乏将报告与工厂Y的产出关联的上下文。LLM接收到新闻,但无法回答关键业务问题:“哪些下游工厂面临风险?”
在生产环境中,这表现为幻觉。LLM试图在新闻报告和工厂之间建立联系,但由于缺乏显式链接,导致其要么猜测关系,要么返回“我不知道”的响应,尽管数据已存在于系统中。
模式:混合检索
为解决此问题,我们从“扁平RAG”转向“图RAG”架构。这涉及一个三层堆栈:
-
摄取(“Meta”经验):在Meta从事Shops日志基础设施工作时,我们学到结构必须在摄取时强制执行。如果试图从混乱的日志中重建结构,无法保证可靠的 analytics。类似地,在RAG中,我们必须在摄取时提取实体(节点)和关系(边)。我们可以使用LLM或命名实体识别(NER)模型从文本块中提取实体,并将其链接到图中的现有记录。
-
存储:我们使用图数据库(如Neo4j)存储结构化图。向量嵌入作为特定节点的属性存储(例如,RiskEvent节点)。
-
检索:我们执行混合查询:
-
向量扫描:基于语义相似性在图中查找入口点。
-
图遍历:从这些入口点遍历关系以收集上下文。
-
参考实现
让我们使用Python、Neo4j和OpenAI构建一个简化的供应链风险分析器实现。
1. 建模图
我们需要一个模式,将非结构化的“风险事件”与结构化的“供应链”实体连接起来。
2. 摄取:链接结构与语义
在此步骤中,假设结构化图(供应商→工厂)已存在。我们摄取一个新的非结构化“风险事件”,并将其链接到图中。
3. 混合检索查询
这是核心区别。我们使用Cypher执行向量搜索以查找事件,然后遍历以查找下游影响。
输出:LLM接收结构化负载,而非通用文本块:
[{‘issue’: ‘严重洪水…’, ‘impacted_supplier’: ‘TechChip Inc’, ‘risk_to_factory’: ‘Assembly Plant Alpha’}]
这使LLM能够生成精确答案:“TechChip Inc的洪水使Assembly Plant Alpha面临风险。”
生产经验:延迟与一致性
将此架构从笔记本迁移到生产环境需要处理权衡。
1. 延迟税
图遍历比简单向量查找更昂贵。在我从事产品图像实验的工作中,我们处理严格的延迟预算,每毫秒都影响用户体验。尽管领域不同,但架构教训直接适用于图RAG:您无法负担实时计算所有内容。
-
纯向量RAG:检索时间约50-100ms。
-
图增强RAG:检索时间约200-500ms(取决于跳深度)。
缓解措施:我们使用语义缓存。如果用户提出的问题与先前查询相似(余弦相似度>0.85),我们提供缓存的图结果。这减少了常见查询的“图税”。
2. “过期边”问题
在向量数据库中,数据是独立的。在图中,数据是依赖的。如果供应商A停止向工厂Y供应,但图中仍保留边,RAG系统将自信地产生幻觉,认为关系仍然存在。
缓解措施:图关系必须具有生存时间(TTL)或通过变更数据捕获(CDC)管道从源系统(ERP系统)同步。
基础设施决策框架
您应该采用图RAG吗?以下是我们在Cognee使用的框架:
-
使用纯向量RAG,如果:
-
语料库是扁平的(例如,混乱的Wiki或Slack转储)。
-
问题宽泛(“如何重置我的VPN?”)。
-
延迟<200ms是硬性要求。
-
-
使用图增强RAG,如果:
-
领域是受监管的(金融、医疗)。
-
需要“可解释性”(您需要显示遍历路径)。
-
答案取决于多跳关系(“哪些间接子公司受影响?”)。
-
结论
图增强RAG不是向量搜索的替代品,而是复杂领域的必要演进。通过将基础设施视为知识图谱,您为LLM提供了它无法产生幻觉的东西:您业务的 structural truth(结构真相)。
Daulet Amirkhanov是UseBead的软件工程师。
关注微信号:智享开源 ,可及时获取信息
关注微信

还没有任何评论,你来说两句吧!