Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

reranker

Answer

Reranker 是在 AI 搜索和相关流程中用于对检索结果进行重排的重要环节。

在 AI 搜索中,如果要做多信息源整合,就需要对多信息源的检索结果进行重排。重排的目的主要有两个:一是过滤掉跟搜索 query 不相关的参考信息,二是对参考信息的相关性进行排序,以便在做上下文挂载时,优先截取权重最高的 top_k 条记录作为引用参考。

做重排的方案有多种,例如 ThinkAny 尝试过使用 zilliz 向量数据库 + llamaindex 框架做相似度匹配,以及使用 FlashRank 开源框架,但前者效率较低,后者准确度不够高。

在基于 Notion 和 Coze 打造个人知识问答系统以及 RAG 流程中,也存在检索结果可能包含无关信息和排序并非最优的问题。为解决此问题,在 RAG 流程中加入一个 Reranker 模块对检索的信息结果进行打分和重排可以显著提高回答质量,RAG 也因此变成了 Retrieve-Rerank-Generate(Re2G)。在某些场景中,会直接使用 LLM 来做打分和重排。

在 RAG 中,其主要组成依次是数据提取——embedding(向量化)——创建索引——检索——自动排序(Rerank)——LLM 归纳生成。核心在于能否将内容检索得又快又准。

Content generated by AI large model, please carefully verify (powered by aily)

References

工具:我做了一个 AI 搜索引擎

多信息源的整合,可能会涉及到海量数据的处理,包括自建信息源索引等技术,传统搜索厂商做这件事会更有优势。依靠UGC建立数据飞轮的超级App,在垂类数据的整合上,也会更有优势。比如腾讯元宝整合的公众号数据,小红书自身的衣食住行攻略类数据,知乎的时事评论数据等,都有比较深的护城河。1.搜索结果重排RerankingAI搜索如果要做多信息源整合,免不了要对多信息源的检索结果做重排(Reranking)。重排的目的主要是两个:过滤掉跟搜索query不相关的参考信息对参考信息的相关性进行排序,便于做上下文挂载时,有限截取权重最高的top_k条记录作为引用参考第一点很好理解,多信息源的检索内容受限于信息源自身的搜索实现,有可能出现搜出来的结果不太匹配的情况。就算是谷歌这种聚合信息源,也会受到SEO的干扰,返回跟搜索query并不匹配的结果。第二点主要考虑到context长度问题,我们可能不太愿意暴力传输所有的检索结果,而是选择其中的top_k条结果,获取详情,再作为上下文挂载内容。Reranking的目的就是为了让最有可能包含准确信息的结果排到最前面,不至于出现信息遗漏。做重排的方案有很多,ThinkAny尝试过的方案有两种:使用zilliz向量数据库+llamaindex框架做相似度匹配使用FlashRank开源框架第一种方案主要问题是效率比较低,第二种方案测试下来准确度不够高。1.搜索内容读取Read Content

基于 Notion 和 Coze 打造个人知识问答系统(含提示词、代码以及完整的工作流设计)

无论是基于矢量数据库来实现RAG,还是通过搜索引擎来实现,都会遇到一个问题,就是检索出来的信息中可能存在于用户查询无关的信息,还有就是检索结果的排序并不是最优的。矢量数据库通常是采用一种简单的语义相关度计算算法来检索与用户查询相关的文档片段,实际应用中它的效果是很差的。另外,搜索引擎的检索结果也并不是完全可靠,比如由于一些非常规的SEO操作,会导致搜索引擎会检索出一些与用户查询完全不相关的信息。在我们这个具体场景中,同样存在这样的问题,由于Notion官方的API所提供的搜索功能效果很差,所以经常会搜出不相关的页面。为了解决这个问题,我们需要在RAG流程中加入一些环节,对检索结果做进一步处理。https://arxiv.org/abs/2207.06300研究者发现,在RAG流程中加入一个Reranker模块来对检索的信息结果进行打分和重排可以显著提高回答质量。目前Rerank(重排)已经几乎成为RAG流程中的必备模块了。RAG变成了Retrieve-Rerank-Generate(Re2G[4])。重排一般是通过专门的Rerank模型来实现的,但是本文没有采用这种方案,而是参考了Qwen-Agent这个研究[5],直接使用LLM来做打分和重排。因为我有一个不太成熟的想法:如果不考虑速度和成本的话,最好的语义相关度计算算法就是LLM本身。https://qwenlm.github.io/zh/blog/qwen-agent-2405/

19. RAG 提示工程系列(一)

RAG概括起来就是知识检索+内容生成。这么说太抽象,可以理解为大模型的开卷考试,既然是开卷考试,那么谁带的书和资料内容更全,谁翻书翻的更快更准,谁开卷考试的结果就往往更好。下面来看RAG的主要组成,依次是数据提取——embedding(向量化)——创建索引——检索——自动排序(Rerank)——LLM归纳生成。当然这里少了使用环节,我们暂时先忽略。大家知道,开卷考试时,往往大家的参考资料都差不多,在有限的考试时间内如何又快又准的锁定问题在书上的相关内容更为重要。RAG做的好不好也是如此,核心就看能不能将内容检索的又快又准。如果抄错了书上(知识库)内容,往往大模型给出的答案也南辕北辙。推荐阅读:如何让LLM应用性能登峰造极:https://mp.weixin.qq.com/s/Kr16ub_FN6pTF6acs-e6MA大模型主流应用RAG的介绍——从架构到技术细节:[https://luxiangdong.com/2023/09/25/ragone/](https://luxiangdong.com/2023/09/25/ragone/)高级RAG技术:图解概览[译]:[https://baoyu.io/translations/rag/advanced-rag-techniques-an-illustrated-overview](https://baoyu.io/translations/rag/advanced-rag-techniques-an-illustrated-overview)

Others are asking
我想在dify里按照一个reranker模型,推荐哪个
在 Dify 中安装 reranker 模型,推荐使用中转服务商。Dify 的部署版本中,模型需自行配置,官方和中转的都支持,但中转服务商从性价比角度更优,充点小钱就能用上各种模型,价格通常有较大折扣,20 刀普通用户能用很久,还能在不同地方使用。若没有合适的中转服务商,可使用我自用的,点击原文即可。模型设置方面,在 Dify 右上角点击设置模型供应商,填入中转服务商提供的信息(一般包括 API base 或 Base URL 以及 key)并保存。若保存成功,回到主页面创建一个 Agent 测试,正常则大功告成。比如我填的 API base 是‘https://one.glbai.com’。
2025-01-07