国内两款中文Rerank模型对比,bocha-semantic-reranker和bge-reranker-v2-m3

目前中文Rerank 模型可选的不多,效果比较好的是bocha-semantic-reranker和bge-reranker,前者效果接近cohere可以直接通过API调用,后者开源需要自行部署。

1. 博查,bocha-semantic-reranker,可以直接API调用,免部署,免维护

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基准排序效果评分:
在这里插入图片描述

2. 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基准排序效果评分:
在这里插入图片描述

### 部署 Hugging Face bge-reranker-v2-m3 模型 为了成功部署 Hugging Face 的 `bge-reranker-v2-m3` 模型,可以遵循以下指南: #### 准备环境 确保安装了 Python pip 工具。接着,在命令行工具中执行如下操作来创建并激活虚拟环境(推荐做法),这有助于管理依赖项。 ```bash python -m venv my_env source my_env/bin/activate # Linux 或 macOS 用户 my_env\Scripts\activate # Windows 用户 ``` #### 安装必要的库 通过 pip 来安装 Transformers 库其他可能需要的包,比如 Torch 或 TensorFlow,具体取决于所选框架版本。 ```bash pip install transformers torch datasets ``` #### 加载模型 利用 Hugging Face 提供的 API 接口加载指定名称的空间中的预训练模型实例。对于 `bge-reranker-v2-m3` 而言,首次调用将会自动从远程服务器下载对应的权重文件至本地缓存目录[^2]。 ```python from transformers import AutoModelForSequenceClassification, AutoTokenizer model_name = "BAAI/bge-reranker-v2-m3" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name) ``` #### 使用模型进行预测 定义一个简单的函数来进行输入处理输出解析,以便能够方便地测试该重排序器的效果。 ```python def rerank(query, documents): inputs = tokenizer([query]*len(documents), documents, return_tensors="pt", padding=True, truncation=True) outputs = model(**inputs).logits.detach().numpy() scores = list(zip(outputs.flatten(), documents)) sorted_scores = sorted(scores, key=lambda x: x[0], reverse=True) for score, doc in sorted_scores[:5]: print(f"Score {score:.4f}: {doc}") # 测试例子 test_query = "example query text here." docs_to_rerank = ["document one content.", "another document's contents."] rerank(test_query, docs_to_rerank) ``` 上述代码片段展示了如何初始化模型以及编写基本的查询文档重排逻辑。实际应用时可根据需求调整参数设置或集成到更大规模的应用程序当中[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值