一、为什么需要重排序模型(Rerank Model)?
混合检索通过结合不同检索技术的优势,能够获得更优的召回效果。然而,在不同检索模式下得到的查询结果需要进行合并与归一化处理(即将数据转换为统一的标准范围或分布,以便进行更好的比较和分析),然后一并传递给大模型。在此过程中,我们需要引入评分系统——重排序模型(Rerank Model)。
重排序模型通过计算候选文档与用户查询之间的语义匹配度,重新排序候选文档,从而提升语义排序的精度。其核心原理是对每个候选文档与用户查询之间的相关性进行评分,并根据评分高低对文档进行排序,最终返回按相关性从高到低排列的文档列表。
二、目前国内外有哪些 Rerank 模型和 Rerank API ?
来源 | 公司/团队 | 模型/版本 | 模型参数 | 调用方式 | 官方链接 |
---|---|---|---|---|---|
国内 | BAAI | bge-reranker-v2-m3 | 567M | 开源,自行部署 | https://huggingface.co/BAAI/bge-reranker-v2-m3 |
国内 | 博查 | bocha-semantic-reranker | 80M | 官方API | https://open.bochaai.com |
国外 | Cohere | cohere-rerank-v3.5 | - | 官方API | https://cohere.com/rerank |
国外 | Jina | jina-reranker-v2-base | 278M | 官方API | https://jina.ai/reranker |
三、Rerank 模型哪家强?Rerank模型技术参数对比如何?
1. BAAI,bge-reranker-v2-m3
BGE(BAAI General Embedding)是智源研究院打造的通用语义向量模型。自2023年8月发布以来,智源团队陆续发布了中英文模型BGE v1.0、v1.5以及多语言模型 BGE-M3,截至目前,BGE 系列模型全球下载量超过 1500万,位居国内开源AI模型首位。BGE-M3模型一度跃居 Hugging Face 热门模型前三,其所属代码仓库FlagEmbedding位居Github热门项目前10;BGE-M3所带来的全新的通用检索模式也相继被Milvus、Vespa等主流向量数据库集成。
近日,智源团队再度推出新一代检索排序模型 BGE Re-Ranker v2.0,同时扩展向量模型BGE的“文本+图片”混合检索能力。
- BGE Re-Ranker v2.0 支持更多语言,更长文本长度,并在英文检索基准MTEB、中文检索基准C-MTEB、多语言检索基准MIRACL、LLaMA-Index、Evaluation等主流基准上取得了state-of-the-art的结果。
- BGE Re-Ranker v2.0 借助分层自蒸馏策略进一步优化推理效率,适度的开销即可换取显著的性能收益。
- BGE-v1.5、BGE-M3以融入visual token的方式进一步新增“文本+图片”混合检索能力,同时保持优异的文本检索性能。
BEIR基准排序效果评分:
2. 博查,bocha-semantic-reranker
Bocha Semantic Reranker是一种基于文本语义的排序模型(Rerank Model),它的主要用途是提升搜索结果的质量。在搜索推荐系统中,Bocha Semantic Reranker可以基于关键字搜索、向量搜索和混合搜索的初步排序结果的质量进行优化。具体来说,在初始的BM25排序或RRF排序之后,Bocha Semantic Reranker会从top-N候选结果中,利用语义信息对文档进行二次排序。这一过程中,模型会根据查询语句与文档内容之间的深层语义匹配情况,给出每个文档的排序结果和得分,从而改善用户的搜索体验。由于这种方法是对初步排序结果进行二次优化,因此被称为“Reranker”。
博查语义排序模型的优势:
Bocha Semantic Reranker 以 80M 参数实现接近于世界一线 280M、560M参数模型的排序效果。
- 由于模型参数比同类模型小3~6倍,推理速度更快、成本更低、性价比更高。
- 基于博查搜索引擎的技术积累,排序效果在搜索场景表现更好。
- 提供官方API,国内用户无需自行部署模型,可以直接通过调用,免去推理服务器和维护成本。
博查语义排序模型的评分原理:
博查语义排序模型的评分过程是基于查询语句(用户的输入问题)以及与之匹配的文档内容(通常是最高512个tokens的文本)进行的。评分的过程如下:
- 评估语义相关性:bocha-semantic-reranker会评估查询语句与每个文档的语义相关性,判断文档是否能够有效回答用户的查询或与查询意图高度匹配。
- 分配@BochaSemanticRerankScore:根据语义相关性,bocha-semantic-reranker为每个文档分配一个rerankScore,分数的范围从0到1。分数越高,表示文档与查询的语义相关性越强,越符合用户需求。通常,分数接近1表示高度相关,分数接近0表示不相关或低相关。
Score Range | Meaning |
---|---|
0.75 ~ 1 | 该文档高度相关并完全回答了问题,尽管可能包含与问题无关的额外文本。 |
0.5 ~ 0.75 | 该文档与问题是相关的,但缺乏使其完整的细节。 |
0.2 ~ 0.5 | 该文档与问题有一定的相关性;它部分回答了问题,或者只解决了问题的某些方面。 |
0.1 ~ 0.2 | 该文档与问题相关,但仅回答了一小部分。 |
0 ~ 0.1 | 该文档与问题无关紧要。 |
博查BEIR基准排序效果评分:
3. Cohere,cohere-reranker-v3.5
Cohere 是一家人工智能初创公司,专注于提供基于语言的深度学习技术,特别是在自然语言处理(NLP)和大规模文本生成方面。Cohere 提供可供企业和开发者使用的强大AI语言模型,旨在帮助他们通过高级的语言理解和生成能力改善产品和服务。公司成立于2020年,背后的团队包括来自Google、DeepMind等科技巨头的专家。
Cohere 的主要目标是通过简化并增强开发者与机器之间的语言交互,使得更多的行业和企业能够利用AI的能力,特别是在语义搜索、文本生成、分类、摘要等领域。
Cohere Rerank 英文版是一种用于语义搜索和检索增强生成(RAG)的重排序模型。重排序通过增强传统基于关键词的搜索系统,将语义重排序系统融入其中,从而显著提高搜索质量,能够超越关键词相关性,理解用户查询的含义。Cohere 的 Rerank 比基于嵌入的搜索、词汇搜索甚至混合搜索都能提供更高质量的结果,且仅需在应用程序中添加一行代码即可实现。
Rerank 作为初始检索后的排名工具使用。换句话说,在初始搜索系统为大量文档的语料库找到最相关的前 100 个文档之后,再进行重排序。
Rerank 支持作为文档的 JSON 对象,用户可以在查询时指定用于语义搜索的字段(键)。Rerank 的其他一些特点包括:
- 模型的上下文窗口为 4,096 个标记
- 最大查询长度为 2,048 个标记
- Rerank 英文版适用于代码检索、半结构化数据检索和长上下文的检索。
4. Jina,jina-reranker-v2-base
Jina Reranker v2 是为 Agentic RAG 构建的最佳重排工具。它支持函数调用,可进行 100 多种语言的多语言检索,具备代码搜索功能,并且相比 v1 版本速度提升了 6 倍。
2024年6月,Jina 发布 Jina Reranker v2(jina-reranker-v2-base-multilingual), Jina Reranker v2具有以下优势:
- 多语言:支持100+ 种语言的更相关搜索结果,性能优于 bge-reranker-v2-m3;
- 智能代理:为智能代理 RAG 提供最先进的函数调用和 text-to-SQL 感知文档重排;
- 代码检索:在代码检索任务上表现出色;
- 超快速度:文档处理吞吐量比 bge-reranker-v2-m3 快 15 倍,比 jina-reranker-v1-base-en 快 6 倍。
BEIR基准排序效果评分: