微信扫码
添加专属顾问
我要投稿
深入解析相似度计算与重排序在RAG系统中的关键作用,优化召回与排序的平衡点。 核心内容: 1. 相似度召回与重排序的核心区别与协作机制 2. 实际开发中遇到的召回率问题与解决方案 3. Embedding模型与Reranker模型的定位差异与应用场景
“ 相似度召回的作用是快速从海量文档中召回相关文档,而rerank重排序的作用是在这些相关文档中找到相关性最高的文档。”
这段时间在完成基于RAG的聊天对话系统之后,开始优化各个环节的功能;这时才真正发现,RAG做出来不难,想做好真的不容易。
这次在优化上下文结构时发现了一个问题,那就是相似度计算和重排序;在刚开始对相似度计算和重排序的理解就是,通过相似度进行数据召回,然以后再通过重排序找到其中最相关的内容。
这样理解虽然不能说有错,但理解的却不够透彻;在系统开发的过程中曾经遇到过一个问题,那就是召回率不足;很多相关的数据无法召回,至于原因么有很多,但主要原因是处理的文档质量不高,导致相似度召回时,其阈值特别低。
因此,为了解决这个问题,暂时就通过降低阈值,并去掉重排序的方式来提高召回率;因为,很多时候即使通过相似度或其它方式召回数据,但最终在重排序时会被过滤掉。也就是说召回的相似度高的数据,和问题关联度并不一定高。
相似度召回和重排序
之所以注意到相似度召回和重排序的原因是,在多个向量库中进行相似度召回的时候发现,明明在这个向量库中并没有与问题相关的数据,但事实上却召回了一部分数据,并且这部分数据的相似度值比原文档所在的向量库中的值更高。
也就是说,在本应该有问题相关文档的库中召回的数据,还没有其它库中无关数据的相似度高;这就是一个很奇怪的问题,到底是因为文档处理的质量太低,还是因为嵌入的时候有问题。
因此,面对这种情况肯定需要对召回的文档进行重排序,以筛掉无关的数据;因此,在使用rerank模型进行排序时发现,那些其它库中相似度高的数据都被筛掉了,而原本库中相似度低的数据反而留了下来;当然这样才属于正常。
但这个无关数据的相似度更高的问题还是没有被解决;而在相似度召回中,有好几种相识度计算的方式,比如说余弦相似度,内积,欧式距离等多种计算方式。
因此面对不同的业务场景和数据类型,选择合适的相似度计算方式,也能间接增强召回的准确度。
Reranker与embedding模型的区别
尽管Reranker和Embedding模型都用于信息检索系统,它们的定位和功能却是不同的。
Embedding模型主要用于初步筛选文档。它将文本转换为向量表示,并计算这些向量之间的相似度,从而筛选出一组可能相关的候选文档。Embedding模型的优势在于它的计算效率高,适合处理大规模数据集。
Reranker则用于对Embedding模型筛选出的候选文档进行精细排序。Reranker通常基于复杂的深度神经网络,能够更好地理解文本的上下文和细微差异,从而提供更高的排序精度。
简单来说,Embedding模型负责“找出一批可能相关的候选文档”,而Reranker负责“在这些候选文档中找出最相关的,并将它们按相关性排序”。
Reranker能否直接用于检索?
理论上,Reranker可以直接用于检索,但在实际应用中并不常见。这是因为Reranker的计算复杂度较高,直接使用它对整个数据集进行排序会导致极高的计算成本,难以满足实时性要求。因此,通常我们会先用Embedding模型进行初步筛选,将文档集合缩小到一个合理的范围,然后再使用Reranker进行精细排序。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-06-21
使用 LangSmith 进行 RAG 评估:构建生产级 RAG 系统的 AI 开发者指南
2026-06-20
RAG 投毒的六个影响因素与防御框架
2026-06-20
RAG 性能暴涨 5.9 倍!微软新框架让 LLM 自主检索,无需训练直接部署
2026-06-19
RAGular:适合知识库体质的 OCR 助手
2026-06-18
阿里扔出「向量版 SQLite」!十亿级向量毫秒检索,一行 pip install 搞定,本地 RAG 的游戏规则变了
2026-06-18
一个月拿下1500star,只因我们比MinerU多做了这件事
2026-06-18
为 1000 万+ 文档构建近零幻觉的 RAG Pipeline
2026-06-17
微软推出企业级 AgenticRAG!四个工具助力RAG新范式落地
2026-04-06
2026-04-27
2026-04-02
2026-03-31
2026-04-23
2026-04-20
2026-04-09
2026-04-12
2026-04-22
2026-04-10
2026-06-15
2026-06-10
2026-06-10
2026-05-20
2026-05-18
2026-05-11
2026-05-07
2026-05-06