你的RAG因为垃圾检索而出现幻觉——这里有3行代码的修复方案(附真实得分)

Reddit r/AI_Agents 工具

摘要

针对噪声检索导致的RAG幻觉问题的实用修复方案:使用交叉编码器重新排序,过滤掉得分低于1.5的文本块,平均相关性从-0.28提升至+3.80。

我的RAG代理出现了幻觉。不是因为LLM不好——而是因为检索系统给它喂了噪声。查询:"什么是Python装饰器?" 我的检索器在修复前返回的内容: | 排名 | 得分 | 内容 | 是否相关? | |---|---|---|---| | 1 | +5.80 | 装饰器定义 | 是 | | 2 | +1.40 | 致谢页面 | 否 | | 3 | +1.13 | u/staticmethod示例 | 是 | | 4 | -4.69 | 类练习 | 否 | | 5 | -11.0 | Monty Python引用 | 否 | LLM接收了全部5个文本块。它之所以产生幻觉,是因为它相信了噪声。修复方案——交叉编码器重新排序(3行代码): scores = cross_encoder.score(pairs) ranked = sorted(zip(scores, candidates), reverse=True) filtered = [doc for score, doc in ranked if score > 1.5] 修复后:只有得分超过1.5的文本块才能到达LLM。整体结果(10次查询):平均相关性从-0.28提升至+3.80。胜率80%。模型:cross-encoder/ms-marco-MiniLM-L-6-v2(免费,本地,HuggingFace)。如果你的聊天机器人出现幻觉,检查你的检索系统,不要先责怪LLM。你的重排序器使用的阈值是多少?
查看原文

相似文章

RAG 幻觉烦得要命

Reddit r/AI_Agents

团队发现 80% 的 RAG 幻觉是由检索不佳导致的,而非生成模型的问题,强调需要分别评估检索与生成环节,才能有效调试错误答案。

RAGognizer:通过检测头集成实现幻觉感知微调

arXiv cs.CL

RAGognizer 提出了一种幻觉感知微调方法,该方法将轻量级检测头集成到大语言模型(LLMs)中,以实现语言建模与幻觉检测的联合优化,适用于 RAG 系统。论文介绍了 RAGognize,一个包含自然发生的闭域幻觉及其词元级标注的数据集,并展示了在降低幻觉率的同时,实现了最先进的幻觉检测性能,且不损害语言质量。