【2024年12月】盘点国内外的Rerank模型,bocha-semantic-reranker、bge-reranker、cohere-reranker、jina-reranker

一、为什么需要重排序模型(Rerank Model)?

混合检索通过结合不同检索技术的优势,能够获得更优的召回效果。然而,在不同检索模式下得到的查询结果需要进行合并与归一化处理(即将数据转换为统一的标准范围或分布,以便进行更好的比较和分析),然后一并传递给大模型。在此过程中,我们需要引入评分系统——重排序模型(Rerank Model)。
重排序模型通过计算候选文档与用户查询之间的语义匹配度,重新排序候选文档,从而提升语义排序的精度。其核心原理是对每个候选文档与用户查询之间的相关性进行评分,并根据评分高低对文档进行排序,最终返回按相关性从高到低排列的文档列表。
Bocha Semantic Reranker 技术原理

二、目前国内外有哪些 Rerank 模型和 Rerank API ?

来源公司/团队模型/版本模型参数调用方式官方链接
国内BAAIbge-reranker-v2-m3567M开源,自行部署https://huggingface.co/BAAI/bge-reranker-v2-m3
国内博查bocha-semantic-reranker80M官方APIhttps://open.bochaai.com
国外Coherecohere-rerank-v3.5-官方APIhttps://cohere.com/rerank
国外Jinajina-reranker-v2-base278M官方APIhttps://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的文本)进行的。评分的过程如下:

  1. 评估语义相关性:bocha-semantic-reranker会评估查询语句与每个文档的语义相关性,判断文档是否能够有效回答用户的查询或与查询意图高度匹配。
  2. 分配@BochaSemanticRerankScore:根据语义相关性,bocha-semantic-reranker为每个文档分配一个rerankScore,分数的范围从0到1。分数越高,表示文档与查询的语义相关性越强,越符合用户需求。通常,分数接近1表示高度相关,分数接近0表示不相关或低相关。
Score RangeMeaning
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基准排序效果评分:
在这里插入图片描述

### 使用 AutoGPTQ 库量化 Transformer 模型 为了使用 `AutoGPTQ` 对 Transformer 模型进行量化,可以遵循如下方法: 安装所需的依赖包是必要的操作。通过 pip 安装 `auto-gptq` 可以获取最新版本的库。 ```bash pip install auto-gptq ``` 加载预训练模型并应用 GPTQ (General-Purpose Tensor Quantization) 技术来减少模型大小和加速推理过程是一个常见的流程。下面展示了如何利用 `AutoGPTQForCausalLM` 类来进行这一工作[^1]。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer from auto_gptq import AutoGPTQForCausalLM model_name_or_path = "facebook/opt-350m" quantized_model_dir = "./quantized_model" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) # 加载已经量化的模型或者创建一个新的量化器对象用于量化未压缩过的模型 gptq_model = AutoGPTQForCausalLM.from_pretrained(quantized_model_dir, model=model, tokenizer=tokenizer) ``` 对于那些希望进一步优化其部署环境中的模型性能的人来说,`AutoGPTQ` 提供了多种配置选项来自定义量化参数,比如位宽(bit-width),这有助于平衡精度损失与运行效率之间的关系。 #### 注意事项 当处理特定硬件平台上的部署时,建议查阅官方文档以获得最佳实践指导和支持信息。此外,在实际应用场景之前应该充分测试经过量化的模型以确保满足预期的质量标准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值