在 RAG(检索增强生成)流程中,检索器的高召回率比准确率更重要,因为生成器产生准确答案的能力在很大程度上取决于是否能够访问所有潜在的相关信息。召回率衡量检索器成功识别出多少相关文档,而准确率则侧重于最大限度地减少不相关的文档。如果检索器遗漏了关键上下文(低召回率),即使检索到的少数文档非常准确,生成器也会缺乏必要的数据来形成正确或全面的响应。例如,在一个关于医学症状的问答系统中,遗漏了描述罕见疾病的关键文档可能导致生成器忽略关键细节,即使检索到的文档 100% 准确但不完整。
召回率和准确率之间的权衡之所以出现,是因为优化其中一个指标通常会降低另一个指标。针对高召回率进行调整的检索器可能会返回更多文档,包括不相关的文档,这会增加计算负载并引入噪声。例如,检索 20 个文档,其中 15 个相关(75% 召回率)和 5 个不相关(75% 准确率)需要生成器处理额外的数据,但确保不会遗漏关键信息。相反,高准确率的检索器返回 5 个文档,其中 4 个相关(80% 准确率),但有遗漏第五个关键文档的风险,从而导致不完整的答案。这种平衡取决于使用案例:法律研究或医疗诊断等应用优先考虑召回率,以避免遗漏关键证据,而低风险的聊天机器人可能更倾向于准确率以减少延迟。
在实践中,开发人员通过调整检索参数来解决这些权衡。增加检索文档的数量(例如,从 5 个增加到 20 个)可以提高召回率,但降低准确率。密集向量搜索(例如,使用嵌入)等技术通过捕获语义相关性来提高召回率,而将基于关键字的方法(例如,BM25)与向量搜索相结合的混合方法可以平衡这两个指标。检索后的重排序或过滤可以提高准确率,而不会牺牲召回率。例如,技术支持机器人可能首先检索 30 个与错误消息广泛相关的文档(高召回率),然后使用轻量级模型对其进行重新排序,确保生成器接收到前 5 个最准确的结果。这种分层方法减轻了优先考虑召回率的缺点,同时保持了响应质量。