RAG还是知识图谱?2,160份评分答案及模型效应分析
RAG与知识图谱的对比:在三个模型系列中共进行了2,160次评分答案测试以及120道题目测试。胜者因模型而异,模型本身起着最关键的作用。
来源: RAG ou grafo de conhecimento? Medi em 2.160 respostas e a resposta é desconfortável
为何要进行测量
关于企业技术助手的讨论往往在同一个问题上陷入僵局。一方支持RAG,另一方支持知识图谱,双方都有充分的论据,但都没有提供数据支持。通过控制实验可以获取一些数据:两种方法、三种模型系列、三次重复实验以及120道带有标准答案的题目,最终产生2,160份评分后的回答。每份回答都由一个确定性指标以及由三名评委组成的小组进行评分。
研究结果并不如人们期望的那样令人满意。没有绝对的胜出者,效果的正负会因模型不同而变化,且影响最大的变量也不是这两种策略本身,而是系统背后所使用的模型。
简读版:
- 在三种模型中,仅有其中一种模型的情况下,知识图谱在统计上显著优于RAG。
这些限制因素最为重要,因为它们决定了其余内容是否值得阅读。
该研究的覆盖范围与未覆盖内容
它在保持生成模型不变的前提下,测试不同的检索策略能否产生关于微服务生态系统的更准确、更完整且更易于追溯的答案。
它并未评估实际开发人员的使用效果、长期维护成本、领域专家所认为的质量,以及在实际存在不一致性和漏洞的文档上的表现。
它也无法衡量图方法的上限。此处的图被刻意设计得较为简单,仅支持单跳邻域关系和模糊实体匹配。能够处理多跳查询和全局聚合的图可以解答当前这种图无法解决的问题,因此表格中所显示的图的劣势部分源于实现方式,而非该范式本身。
问题所在
某家公司已转向微服务架构。过去一个代码库就能涵盖所有功能,如今却需要数十个服务、契约、事件和数据库来支撑。相关知识分散在README文件、内部目录、运维看板以及仅有三人熟记的内容中。日常问题虽看似简单,却成本高昂:哪些应用存储了个人数据?服务X依赖什么?类似功能是否已存在且可复用?目前的解决方式是询问他人或查阅可能已经过时的文档,而真正的代价并非搜索时间,而是基于过时信息做出的技术决策。
如果能有专注于该领域的对话式助手,就能解决访问问题,相关研究也提出了两种实现路径。
非结构化检索(RAG)会将文档切分后存储在向量数据库中建立索引,进而获取与问题最相似的段落并将其插入提示词中。这一术语由Lewis及其同事在2020年提出,Gao及其同事则对近期的发展进行了综述。该方法的维护成本较低,且无需重新训练即可适应变化,但在需要基于明确关系进行推理以得出答案时表现较弱。
结构化检索(知识图谱)则将整个生态系统建模为带类型的节点和边:服务、团队、事件、数据库、依赖关系等。虽然查询具有确定性且可追溯,但构建和管理知识图谱的成本较高。Hogan及其同事对知识图谱的综述是该领域的标准参考资料。
这两种方法在GraphRAG中实现了融合,而本实验的结果也指向了这一方向。
设计
最重要的决定是在编写任何代码之前做出的:只有知识层可以有所不同。如果没有这一规则,比较的就会是两种实现方式而非两种策略。提示词或输出格式的任何差异都会对结果造成影响,而且这种影响之后无法分离,正因如此,许多非正式的RAG基准测试最终衡量的是编写提示词的人的技能。
这两种方法都会返回完全相同的响应结构:问题、处理方法、答案、来源、检索到的上下文、延迟以及预估成本。这样一来,评估代码、API和界面就无需考虑所采用的具体方法。
测试需要一个真实、可公开、可复现的生态系统,而使用雇主的真实系统显然是不可行的。因此,测试环境便虚构出了CreditXPTO这一并不存在的个人信贷金融科技平台:
采用合成方式能带来三重优势:内容可被控制,每个问题的正确答案都是已知的,而且任何人无需访问内部系统即可重新执行相关操作。但其代价是外部有效性,这也是最后会讨论的主要局限性。
两种表示形式中都包含相同的知识,而通过持续集成过程中运行的验证规则来确保二者的一致性:一旦出现无效引用,整个数据集即被视为无效。否则,其中一方可能会暗中掌握比另一方更多的信息。这120道题目按类别(事实类、解释类、影响类、关联类、探索类、模糊类)、难度以及知识类型进行标注,每道题都有预期答案及参考来源。
RAG部分使用512个令牌的片段,片段间重叠量为50个令牌,取前5个最佳结果。嵌入模型来自本地运行的BAAI/bge-small-en-v1.5,向量存储则采用Qdrant。密集检索采用Karpukhin及其同事推广的DPR方案,句子嵌入基于Sentence-BERT,而BGE系列模型则在C-Pack中有相关描述。
图结构部分在内存中使用NetworkX,直接从源文件构建,因此始终与数据保持一致。实体匹配采用模糊匹配方式,阈值为70/100,检索时仅考虑一步邻域内的元素。
评分机制
评估分为两个层级。第一层级是启发式方法:基于词汇相似度、关键实体的存在以及信息覆盖度。这种方法成本低、结果确定且可重复,但较为肤浅,因为它会惩罚意译表达。这正是n-gram重叠度量标准所存在的已知缺陷,也是诸如BERTScore这类语义评估方法出现的原因。
第二层级则由来自不同模型系列的三名大型语言模型评判员组成,他们对文本的正确性、完整性、依据充分性及清晰度进行0到3分的评分。郑及其同事通过MT-Bench进一步确立了以大型语言模型作为评判员的评估范式。
有一个关键点:评估指标是跨模型家族的。对于每个答案,生成器所在家族的评估者不会参与评分。模型会识别出自己的文本并给出更高评分,Panickssery及其同事(2024年)将这种自我偏好与自我识别联系在一起。要消除这种偏见的唯一方法是从结构上处理,而非在提示词中要求保持公正。
由于两种策略回答的是相同的问题,其显著性通过配对McNemar检验来确定。区间分析采用5,000次重采样的自助法,而评估者的一致性则用Cohen’s kappa系数来衡量。
结果
第一个表格显示的是严格准确率,仅统计完全正确的答案,每个单元格的样本量为360:
有两个数值值得关注。
首先,不同模型会导致结果差异。使用两个生成器时RAG表现更好,使用第三个生成器时图模型更优,唯有这最后的差异具有显著性。如果像大多数基准测试那样仅使用单一模型进行实验,就会得出一个带有置信区间的错误结论,而结果中根本看不出任何端倪。
其次,不同模型之间的差距大于不同方法之间的差距。从claude-sonnet-4-6切换到gpt-5.5带来的提升,比在同一个模型内更换策略的效果更好。这使得“选择RAG还是图模型?”这一问题变成了次要决策,这也是该研究的核心发现。
若采用宽泛的定义重新进行测试,给予满分与部分分数,仅对明显错误扣分,情况就会逆转。此时RAG在前两种模型上大幅领先,而图模型在第三种模型上的优势则不再显著。准确地说,RAG的优势不在于更频繁地答对,而在于出错时错误程度更低。当检索结果不完整时,它会给出不完整的答案;当实体匹配失败时,图模型则会错误地且自信地给出答案。对于内部助手而言,这种区别至关重要:开发者可以补充不完整的答案,但带有引用来源的错误答案却可能被带入会议中。
评审小组的测试结果如下:
评审小组在所有三种模型上都更倾向于使用RAG,即便在那些启发式方法认为该模型具有明显优势的情况下也是如此。这属于工具效应,并非矛盾。在一个具体案例中,某个问题的词汇相似度仅为0.25,被启发式方法判定为错误,但评审小组仍给了它3分中的2.88分。答案其实是正确的,只是用词不同而已。N-gram指标衡量词汇层面,而LLM评分标准则带有偏见地衡量其正确性。单独使用任何一种方法都无法完全解答问题,当两者出现分歧时,恰恰指明了需要进一步探究的方向。
需要诚实地指出的是,评委们之间的共识程度仅属中等,科恩卡帕值在0.09到0.56之间。由LLM评委组成的小组并非精确度测量工具,而是一种结构化的第二意见来源;正因评估检索增强生成技术仍是一个未解决的问题,才有了RAGAS这样的框架存在。
在延迟方面,三种模型上RAG的速度都快了12%到20%。图表的上下文更为紧凑,但查询过程多了一个步骤。成本因模型而异,两种生成器使用图表的成本更低,而另一种则更高。不同服务提供商的输入与输出标记比例差异较大,甚至会导致成本正负号的变化。这只是一个观察结果,并非最终结论,因为尚未对标记构成进行正式测试。
每种方法的缺陷
这是最有用的部分,但表格中并未体现。
该图在结构上存在缺陷。当被问及某个服务使用的是哪种数据库时,它返回的是节点标识符而非引擎类型,因为该属性并未被建模。当被问及有多少团队在使用某种技术时,一跳邻域关系只检索到两个服务,它便肯定地回答有两个。而如果模糊匹配选错了实体,整个上下文都会出错,却没有任何提示。
RAG因信息不完整而失效。它能正确识别出某个服务使用的是Redis,但当问题要求了解整体情况时,它的回答却仅限于已检索到的那个服务。
这两种方法都存在错误,只是方式不同。它们的缺陷是互补的,这正是为何显而易见的解决方案是采用按问题类型进行路由的混合模式。
建议
- 先选定模型。它是影响最大的变量。若将其视为实现细节,花费数周时间调整片段大小,其实只是在优化一个次要参数。
- 从RAG开始。它的基础性能更好,维护成本更低,且其故障模式也是可以接受的。
- 有针对性地添加结构,用于处理依赖关系、所有权及事件处理。在交付任何成果之前,不要试图构建整个生态系统模型。
- 不要只依赖单一指标。应使用确定性启发式方法以及来自不同类别的评估指标。当这些指标出现分歧时,说明出现了有趣的情况,而非错误。
- 采用配对测试。这两种策略都能回答相同的问题,但若不使用McNemar检验直接比较均值,会得出数据无法支持的置信度。
局限性
- 该数据集为合成数据,答案由实验者自行制定,未经真实用户验证。这虽能确保控制性与可重复性,却牺牲了外部有效性。
- 图表的实现方式刻意保持简单,因此在聚合处理方面的某些缺陷可能源于实现方式而非整体架构。
- 实际效用与可维护性并未被评估,尽管它们属于设计目标,但仍属于定性范畴。
- 该启发式方法未经过人类判断的验证,专家小组虽试图弥补这一问题,但并未真正解决它。
- 在2,160份回复中,有11份(0.51%)属于提供方网络故障,而非系统故障。
总结
原本的期望是得到“使用图表”或“使用RAG”这样的答案。但实际上,在确定使用哪种模型之前,这两种答案都不存在,而被视为背景变量的那个因素才最具决定性作用。这样的结果虽然不够令人满意,但却更具实用性。此外,这一结论也适用于其他情况:包含隐藏变量的基准测试不会出现明显的误差,只会以置信区间的形式体现误差。在从多个选项中选择架构之前,应先弄清楚实验中哪些因素被保持不变,以及这些因素是否真的应该保持不变。
相关阅读
- 生产环境中的高级RAG:架构、工具与权衡 —— 深入探讨生产环境中的RAG应用:数据摄取、解析、分块、嵌入、向量存储、混合检索、重排序、评估与安全措施,以及每种方法的相应权衡。
- GraphRAG与Vector RAG:为何向量搜索在大规模应用中会失败 —— Vector RAG在数据分块隔离、跨文档推理及大规模处理方面存在缺陷。了解GraphRAG如何通过构建知识社区和摘要来解决这些问题,以及何时选择哪种技术。