微信扫码
添加专属顾问
我要投稿
RAG系统的相关性远比相似性复杂,深入探讨如何超越表面相似性实现真正有用的信息检索。 核心内容: 1. 向量嵌入的局限性:传统数据库查询有时更高效 2. 相关性的深层定义:上下文理解比表面相似更重要 3. 数据量与效果的非线性关系:海量数据可能导致检索退化
最近,我在阅读一些关于 RAG系统的资料时,发现了一个有趣的现象:RAG 的相关性问题远比我们想象的要复杂。无论是从数据检索的角度,还是从大模型对相关性的理解来看,RAG 的表现都充满了挑战和机遇。
1. RAG 与相关性:不仅仅是向量嵌入今天,我想和大家分享一下我的思考,希望能给大家带来一些启发,如有不对的地方欢迎讨论交流。
当我们谈论 RAG 时,很多人会立刻想到向量嵌入和相似性度量。确实,向量嵌入在 RAG 中扮演了重要角色,但相关性并不仅仅依赖于这些技术。事实上,很多时候,传统的数据库查询和文本搜索已经足够解决问题。向量嵌入虽然强大,但并不是万能的。
举个例子,假设你在开发一个基于 LLM 的医疗保健应用程序。你可能会发现,与“使用 LLM 构建医疗保健软件”相关的信息在向量空间中可能包括“用于诊断疾病的 AI”和“用于视频游戏开发的 AI”。虽然这些信息在向量空间中看起来“相似”,但它们实际上缺乏关键的联系。这就是为什么我们需要重新思考相关性的定义。
其实,我们早就开始用数据库和文本搜索了,而且用了好几十年,效果一直不错。大多数时候,用传统的方式查询数据反而更简单直接。向量嵌入当然也有它的用处,但说实话,很多时候你并不需要那么复杂的技术——你想要的数据其实并不难找。
那问题来了:如果数据真的很难找呢?这时候是不是就该用 vectorDB 了?答案是:是,也不是。因为这时候你真正面对的,其实是相关性的问题。
2. 相关性:超越表面相似性相关性不仅仅是表面上的相似性。它涉及到更深层次的上下文理解,“对人类有用的信息对 LLM 也有帮助”。因此,我们需要构建一个能够理解上下文、提供真正有用信息的系统,而不是仅仅依赖于向量相似性。
研究发现,添加不相关文档有时甚至能提高 RAG 系统的准确性。这听起来有点反直觉,但背后的逻辑是:不相关文档可能通过某种方式“激活”模型的推理能力,从而帮助它更好地理解问题。然而,这并不意味着我们可以随意添加不相关文档。区分相关和非相关信息仍然是 RAG 系统的核心挑战。
3. 数据量 vs. 效果:RAG 系统的双刃剑QAnything提到的实验让我对 RAG 系统的数据量问题有了新的认识。数据越多,效果越好吗? 这个问题看似简单,但答案却并不那么直接。在升学百科问答的实验中,研究者发现,随着数据量的增加,RAG 系统的表现并非线性提升。第一批数据加入后,问答正确率为 42.6%,随着第二批数据的加入,正确率提升到了 60.2%。然而,当第三批数据加入后,正确率却急剧下降了 8 个百分点。这表明,海量数据并不总是带来更好的效果,反而可能导致检索退化问题。
在实验中,一个典型的例子是“大连医科大学怎么样?”这个问题。在加入第三批数据之前,系统能够正确回答,但在加入第三批数据后,系统却错误地返回了与“大连理工大学”相关的信息。这是因为第三批数据中包含了与“大连理工大学”相关的句子,这些句子在向量空间中与“大连医科大学”非常相似,但实际上并不相关。
语义检索的核心矛盾在于:相似性 ≠ 相关性。RAG 系统需要在有限的 LLM 输入 token 内,选择最相关的片段。如果检索到的片段虽然相似但不相关,就会导致回答错误。因此,如何优化检索机制,确保最相关的片段被选中,是 RAG 系统设计中的关键挑战。
4. 如何定义和衡量相关性?那么,如何定义相关性?这是一个复杂的问题。《How Easily do Irrelevant Inputs Skew the Responses of Large Language Models?》中提到了一些有趣的实验,研究者通过构建不同类型的信息(如无关信息、部分相关的无关信息和相关但误导性的无关信息)来测试大模型对相关性的敏感性。
例如,无关信息可能与问题主题无关,但由于高相似性得分而被检索到。而部分相关的无关信息则包含与问题主题部分重叠的信息,但不提供问题的答案。这些实验表明,大模型对相关性的理解与传统的检索系统并不完全一致。我们需要更精细的方法来衡量和优化相关性。这篇论文有以下实验结论:
基于以上挑战,我们可以从以下几个方面优化相关性的衡量:
传统的向量相似性评分(如余弦相似度)虽然有用,但不足以完全衡量相关性。我们可以结合以下多维度评分:
人类反馈是衡量相关性的重要依据。通过让人类评估模型返回的结果,我们可以更好地理解哪些信息是真正相关的。例如,可以设计以下评估指标:
实验结论提到,CoT(Chain-of-Thought)提示和指令增强提示对提高模型辨别能力的效果有限,甚至可能产生副作用。因此,我们需要更精细地设计提示,帮助模型更好地理解任务和上下文。例如:
RAG 系统的检索策略需要根据任务和数据进行动态调整。例如:
RAG 的另一个关键特性是它的短暂性。RAG 的结果是临时的,每次请求后都会消失。这听起来可能有点烦人,但实际上,短暂性为实时应用程序提供了重要的优势。它允许我们将数据隔离到特定的对话中,从而更容易防止数据泄露。
当然,短暂性也带来了一些挑战。我们需要不断地将数据重新注入上下文中,这对系统的设计和性能提出了更高的要求。但总的来说,短暂性是 RAG 系统的一个独特优势,尤其是在需要高度安全性和隐私保护的场景中。
6. 数据侧的优化:不仅仅是“越多越好”Qnything实验提醒我们,数据侧的优化并不是简单的“越多越好”。虽然增加数据量可以扩展知识覆盖范围,但同时也可能引入噪声,导致检索退化。因此,数据去重、脏数据处理、以及数据与问题的精确匹配,都是优化 RAG 系统时需要考虑的重要因素。
在 RAG 系统中,数据质量比数据数量更重要。高质量的数据能够显著提升系统的表现,而低质量或冗余的数据则可能导致系统性能下降。因此,在增加数据量之前,我们需要确保数据的相关性和准确性。
如果数据越多效果越好,那么我们可以通过快速迭代来优化系统。然而,实验结果表明,数据量的增加并不总是带来效果的提升。因此,我们需要在迭代过程中持续监控系统的表现,确保每次数据更新都能带来正向的改进。
7. RAG未来的方向我们正处于 AI 和 LLM 开发的早期阶段,就像早期的 Web 应用程序一样,我们现在建立的标准将决定未来 AI 应用程序的开发方式。因此,我们需要以更周到的视角来对待 RAG 等工具,而不仅仅是将其视为一种“一刀切”的解决方案。
通过关注相关性和短暂性的细微差别,我们可以创建出能够提供更好、更精确结果的系统,现在是建立RAG最佳实践的机会
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-19
2025-04-16
2025-05-08
2025-04-23
2025-06-06
2025-05-30
2025-05-19
2025-06-05
2025-06-05
2025-04-28
2025-07-09
2025-07-04
2025-07-01
2025-07-01
2025-07-01
2025-07-01
2025-06-30
2025-06-29