博查推出中文Rerank模型,国内Rerank模型家族增加新成员,助力RAG应用提升搜索准确性

一、概述

博查正式推出 Rerank 模型(bocha-semantic-reranker)和排序API(Rerank API),可以使用Bocha Semantic Reranker 提升你的搜索应用和RAG应用中的搜索结果准确性。
博查-给AI用的世界知识搜索引擎

二、什么是博查语义排序模型(Bocha Semantic Reranker)?

Bocha Semantic Reranker是一种基于文本语义的排序模型(Rerank Model),它的主要用途是提升搜索结果的质量。在搜索推荐系统中,Bocha Semantic Reranker可以基于关键字搜索、向量搜索和混合搜索的初步排序结果的质量进行优化。具体来说,在初始的BM25排序或RRF排序之后,Bocha Semantic Reranker会从top-N候选结果中,利用语义信息对文档进行二次排序。这一过程中,模型会根据查询语句与文档内容之间的深层语义匹配情况,给出每个文档的排序结果和得分,从而改善用户的搜索体验。由于这种方法是对初步排序结果进行二次优化,因此被称为“Reranker”。
Bocha Semantic Reranker架构

三、为什么需要语义排序模型?

语义排序的需求源于传统检索方法(如BM25)在处理复杂查询时的局限性。传统的检索方法主要依赖关键词匹配,忽略了文本的深层语义。例如,两个词在表面上可能并不相同,但它们在语义上可能非常接近,传统的关键词匹配无法捕捉这种语义相似性。随着RAG(Retrieval-Augmented Generation)应用的兴起,单纯依赖关键词匹配的排序方法往往无法提供最相关的结果,语义排序的需求愈加凸显。RAG应用结合了检索和生成式任务,通过从大规模文档库中检索相关文档并基于这些文档生成回答。因此,如何有效评估检索到的文档与查询的语义相关性,直接影响生成回答的质量。如果检索的文档与查询意图不匹配,生成的回答可能不准确或不相关,这就要求在检索阶段引入更为精准的语义排序机制。
RAG技术原理
语义排序通过引入深度学习和自然语言处理技术,使得搜索系统能够基于查询的真实意图,而不仅仅是表面上的关键词,来对搜索结果进行排序。这种方法能够更准确地理解查询的背景和用户需求,从而提高搜索结果的相关性,显著改善用户体验。特别是在RAG应用中,语义排序帮助确保检索到的文档具有足够的语义匹配度,从而为后续的生成任务提供更有价值的输入,提升整体的问答效果。

四、博查语义排序模型如何评分?

博查语义排序模型的评分过程是基于查询语句(用户的输入问题)以及与之匹配的文档内容(通常是最高512个tokens的文本)进行的。评分的过程如下:

  1. 评估语义相关性:模型会评估查询语句与每个文档的语义相关性,判断文档是否能够有效回答用户的查询或与查询意图高度匹配。
  2. 分配@BochaSemanticRerank Score:根据语义相关性,模型为每个文档分配一个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该文档与问题无关紧要。

五、博查语义排序模型效果(Bocha Semantic Reranker)

Bocha Semantic Reranker 基于 Transformer 架构,以 80M 参数实现接近于世界一线 280M、560M参数模型的排序效果,推理速度更快、成本更低、性价比更高。
Bocha Semantic Reranker评分

六、如何使用博查排序API(Bocha Semantic Reranker API)?

接口文档

博查语义排序API(Bocha Semantic Reranker API 接口文档

使用步骤

  1. 注册博查开发者账户:访问博查AI开放平台(https://open.bochaai.com),微信扫码登录,创建一个新的账户。登陆后可以看到有Web Search API、AI Search API、Agent Search API、Semantic Reranker API 4种。
  2. 获取API KEY:在首页右上角,或者左侧菜单中,可以看到“API KEY管理”,点击进入后新建一个API KEY,请保存它,因为您在调用博查搜索API时需要用到它。
  3. 查看支持的排序模型列表:目前已支持 bocha-semantic-reranker-cn、bocha-semantic-reranker-en、gte-rerank 3种模型,前两个模型需要邀测使用,gte-rerank模型可以直接使用。
  4. 调用博查排序API:在您的应用中,您可以使用以下代码,调用博查排序API:
import requests
import json

url = "https://api.bochaai.com/v1/rerank"

payload = json.dumps({
    "model": "gte-rerank",
    "query": "阿里巴巴2024年的ESG报告",
    "top_n": 2,
    "return_documents": true,
    "documents": [
      "阿里巴巴集团发布《2024财年环境、社会和治理(ESG)报告》(下称“报告”),详细分享过去一年在 ESG各方面取得的进展。 报告显示,阿里巴巴扎实推进减碳举措,全集团自身运营净碳排放和价值链碳强度继续实现“双降”。 集团亦持续利用数字技术和平台能力,服务于无障碍、医疗、适老化和中小微企业等普惠发展。 阿里巴巴集团首席执行官吴泳铭在报告中表示:“ESG的核心是围绕如何成为一家更好的公司。 25年来,我们与ESG相关的行动所构成的公司底色,与创造商业价值的阿里巴巴一样重要。 在集团明确‘用户为先’和‘AI 驱动’的两大业务战略的同时,我们也明确ESG作为阿里巴巴基石战略之一的定位不变。 阿里巴巴在减少碳排放上取得扎实进展。",
      "ESG的核心是围绕如何成为一家更好的公司。 今年是阿里巴巴成立25年。 25年来,阿里巴巴秉持“让天下没有难做的生意”,协助国内电商繁荣发展;坚持开放生态,魔搭社区已开放了超3800个开源模型;助力乡村振兴,累计派出了29位乡村特派员深入27个县域;推动平台减碳,首创了范围3+减碳方案;坚持全员公益,用“人人3小时”带来小而美的改变……这些行动所构成的公司底色,与创造商业价值的阿里巴巴一样重要。 我希望这个过程中,每一个阿里人都能学会做难而正确的选择,保持前瞻、保持善意、保持务实。 一个更好的阿里巴巴,值得我们共同努力。 阿里巴巴二十多年来坚持不变的使命,是让天下没有难做的生意。 今天,这一使命被赋予了新的时代意义。"
      ]
})

headers = {
  'Authorization': 'Bearer YOUR-API-KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
  1. 响应结果示例:
{
    "code": 200,
    "log_id": "56a3067f9b92dfd0",
    "msg": null,
    "data": {
        "model": "gte-rerank",
        "results": [
            {
                "index": 0,
                "document": {
                    "text": "阿里巴巴集团发布《2024财年环境、社会和治理(ESG)报告》(下称“报告”),详细分享过去一年在 ESG各方面取得的进展。 报告显示,阿里巴巴扎实推进减碳举措,全集团自身运营净碳排放和价值链碳强度继续实现“双降”。 集团亦持续利用数字技术和平台能力,服务于无障碍、医疗、适老化和中小微企业等普惠发展。 阿里巴巴集团首席执行官吴泳铭在报告中表示:“ESG的核心是围绕如何成为一家更好的公司。 25年来,我们与ESG相关的行动所构成的公司底色,与创造商业价值的阿里巴巴一样重要。 在集团明确‘用户为先’和‘AI 驱动’的两大业务战略的同时,我们也明确ESG作为阿里巴巴基石战略之一的定位不变。 阿里巴巴在减少碳排放上取得扎实进展。"
                },
                "relevance_score": 0.7166407801262326
            },
            {
                "index": 1,
                "document": {
                    "text": "ESG的核心是围绕如何成为一家更好的公司。 今年是阿里巴巴成立25年。 25年来,阿里巴巴秉持“让天下没有难做的生意”,协助国内电商繁荣发展;坚持开放生态,魔搭社区已开放了超3800个开源模型;助力乡村振兴,累计派出了29位乡村特派员深入27个县域;推动平台减碳,首创了范围3+减碳方案;坚持全员公益,用“人人3小时”带来小而美的改变……这些行动所构成的公司底色,与创造商业价值的阿里巴巴一样重要。 我希望这个过程中,每一个阿里人都能学会做难而正确的选择,保持前瞻、保持善意、保持务实。 一个更好的阿里巴巴,值得我们共同努力。 阿里巴巴二十多年来坚持不变的使命,是让天下没有难做的生意。 今天,这一使命被赋予了新的时代意义。"
                },
                "relevance_score": 0.5658672473649548
            }
        ]
    }
}
### RAG 架构中的重排序 (Rerank) 模型 #### 工作原理 在检索增强生成(Retrieval-Augmented Generation, RAG)架构中,重排序模型用于优化初始检索阶段获得的文档片段列表。通过评估这些片段与询之间的相关性,重排序过程能够更精准地筛选出最有可能帮助生成高质量响应的内容[^1]。 具体来说,当用户输入一个问题或提示时,系统首先利用索引数据库执行快速检索操作来获取一批候选文档片段;接着,重排序模块会对这批初步选定的结果集进行二次处理——基于更加复杂的匹配算法计算各条目同原始请求间的相似度得分,并据此调整顺序,使得最终呈现给下游任务使用的资料具备更高的针对性和准确性[^2]。 #### 使用方法 为了实现上述功能,在实际开发过程中可以借助Hugging Face提供的Text Embedding Inherence工具部署专门训练过的重排序模型实例。该流程通常涉及以下几个方面: - **定义数据管道**:构建连接上游检索组件与当前环节的数据流路径,确保能顺利接收待评分项目作为输入并向后续步骤传递经过重新排列后的输出结果; - **调优超参设置**:根据实验反馈不断迭代修改影响性能表现的关键因子直至达到满意的效果为止。 ```python from transformers import AutoModelForSequenceClassification, AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("cross-encoder/ms-marco-MiniLM-L-12-v2") model = AutoModelForSequenceClassification.from_pretrained("cross-encoder/ms-marco-MiniLM-L-12-v2") def rerank(query, documents): inputs = tokenizer([query]*len(documents), documents, return_tensors="pt", padding=True, truncation=True) outputs = model(**inputs).logits.flatten().tolist() ranked_docs = sorted(zip(outputs, documents), reverse=True) return [doc for score, doc in ranked_docs] ``` 此代码展示了如何使用交叉编码器模型来进行简单的重排序任务。这里选择了`ms-marco-MiniLM-L-12-v2`这个针对MARCO数据集微调过的小型BERT变体版本作为例子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值