Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >介绍 Elastic Rerank:Elastic 的新语义重排模型

介绍 Elastic Rerank:Elastic 的新语义重排模型

原创
作者头像
点火三周
修改于 2024-12-13 07:27:55
修改于 2024-12-13 07:27:55
3520
举报
文章被收录于专栏:Elastic Stack专栏Elastic Stack专栏

在我们系列的上一篇博客中,我们介绍了语义重排序的概念。在这篇博客中,我们将讨论我们训练并在技术预览中发布的重排序模型。

介绍

Elastic 的一个目标是降低实现高质量文本搜索的门槛。基于 Lucene,Elasticsearch 提供了一套丰富的可扩展的、优化良好的全文检索原语,包括使用 BM25 评分的词法检索、学习稀疏检索和向量数据库。我们最近在搜索 API 中引入了检索器的概念,这使得包括语义重排序在内的组合操作成为可能。同时,我们也在致力于将高级搜索管道引入ES|QL

从我们的无服务器产品开始,我们在技术预览中发布了 Elastic Rerank 模型。这是一个交叉编码器重排序模型。随着时间推移,我们计划将其整合到我们的全产品套件中,并提供优化版本以在任何集群中的机器学习节点上运行,就像我们对检索模型所做的那样。我们还在开发一些令人兴奋的新推理功能,这些功能将非常适合重排序工作负载,因此请期待进一步的公告。

这个版本主要针对英文文本重排序,并在推理成本方面提供了显著的质量优势。本文将讨论其架构和训练的一些方面。但首先……

它的表现如何?

在我们上一次的博客中,我们讨论了 BM25 评分(简称 BM25)的词法检索在索引成本很高的情况下是一个有吸引力的选择。然而,较新的方法通常在相关性上相比 BM25 有显著的提升,尤其是针对更复杂的自然语言查询。

正如我们之前讨论过的那样,BEIR 套件是一个高质量且广泛使用的英文检索基准。它也被 MTEB 基准用来评估文本嵌入的检索质量。它包括各种任务,包括开放领域的问答(QA),BM25 通常在这方面表现较差。由于 BM25 是一个成本效益高的第一阶段检索器,了解我们可以通过重排序在多大程度上“修正”其在 BEIR 中的相关性是很有趣的。

在我们下一篇博客中,我们将详细分析下表中所列的不同高质量重排序模型。这包括对其行为的更多定性分析以及一些关于成本与相关性权衡的额外见解。在这里,我们遵循现有的做法,描述它们在 BM25 检索的前 100 个结果中进行重排序的有效性。这是一个相当深入的重排序,不一定适合在 CPU 上进行推理。然而,正如我们将在下一篇博客中展示的那样,它提供了一个合理的近似,以显示通过重排序可以实现的相关性提升。

模型

参数数量

平均 nDCG@10

BM25

-

0.426

MiniLM-L-12-v2

33M

0.487

mxbai-rerank-base-v1

184M

0.48

monoT5-large

770M

0.514

Cohere v3

n/a

0.529

bge-re-ranker-v2-gemma

2B

0.568

Elastic

184M

0.565

BEIR 中 BM25 检索的前 100 个文档的平均 nDCG@10

为了展示不同模型的相对成本与相关性的权衡,我们绘制了下表。

elastic semantic reranking
elastic semantic reranking

BEIR 中 BM25 检索的前 100 个文档的平均nDCG@10。向上和向左代表更好。

为了完整性,我们还展示了 Elastic Rerank 在各个数据集上的结果。这代表了整个套件中平均 39% 的提升。截至撰写本文时,BM25 经重排序后在MTEB 排行榜上大约位列第 20 名。所有更有效的模型都使用了大嵌入,至少有 1024 维,并且模型显著更大(平均比 Elastic Rerank 大 30 倍)。

数据集

BM25 nDCG@10

重排序 nDCG@10

提升

AguAna

0.47

0.68

44%

Climate-FEVER

0.19

0.33

80%

DBPedia

0.32

0.45

40%

FEVER

0.69

0.89

37%

FiQA-2018

0.25

0.45

76%

HotpotQA

0.6

0.77

28%

Natural Questions

0.33

0.62

90%

NFCorpus

0.33

0.37

12%

Quora

0.81

0.88

9%

SCIDOCS

0.16

0.20

23%

Scifact

0.69

0.77

12%

Touche-2020

0.35

0.36

4%

TREC-COVID

0.69

0.86

25%

MS MARCO

0.23

0.42

85%

CQADupstack (平均)

0.33

0.41

27%

*使用 Elastic Rerank 模型在 BEIR 中 BM25 检索的前 100 个文档的 nDCG@10

架构

正如我们之前讨论过的,语言模型通常分多个阶段进行训练。第一阶段训练从随机初始化的模型权重开始,训练各种不同的无监督任务,例如掩码词预测。这些预训练模型随后在进一步的下游任务上进行训练,如文本检索,这一过程称为微调。有大量的实验证据表明,预训练过程生成了有用的特征,这些特征可以在新任务中重新利用,这一过程称为迁移学习。与单独训练下游任务相比,生成的模型表现显著更好,训练时间显著减少。这种技术支持了基于 Transformer 的 NLP 在 BERT 之后的许多成功。

预训练方法和模型架构的具体选择也会影响下游任务的性能。对于我们的重排序器,我们选择从DeBERTa v3 检查点开始训练。它结合了预训练文献中的各种成功理念,并在微调后在各种 NLP 基准上提供了与模型大小相关的最先进性能。

简要总结一下这个模型:

  1. DeBERTa 引入了一种解耦的位置和内容编码机制,使其能够学习内容和序列中其他标记位置之间更细致的关系。我们推测这对重排序特别重要,因为匹配查询和文档文本中的词语并比较其语义可能是关键要素。
  2. DeBERTa v3 采用了 ELECTRA 预训练目标,以 GAN 风格同时训练模型生成有效的假标记并学会识别这些假标记。他们还提出了对这一过程的参数化进行小改进。

如果你感兴趣,可以在这里找到详细信息。

对于第一个版本,我们训练了这个模型家族的基础变体。这个模型有 184M 参数,但由于其词汇表大约是 BERT 的 4 倍,骨干部分只有 86M 参数,输入嵌入层使用了 98M 参数。这意味着推理成本与 BERT 基础版相当。在我们下一篇博客中,我们将探讨预算受限重排序的最佳策略。简而言之,我们计划通过蒸馏训练该模型的较小版本。

数据集和训练

每当你在模型上训练一个新任务时,总是存在遗忘重要信息的风险。因此,我们训练 Elastic 重排序器的第一步是尽量从 DeBERTa 中提取相关性判断。我们使用标准的池化方法;特别是,我们添加了一个头部,计算 A(D(L(h(CLS)))A(D(L(h(CLS))) 其中 AA 是 GeLU 激活,DD 是 dropout 层,LL 是线性层。在预训练中,CLS 标记表示,用于下一个句子的分类任务。这与相关性评估高度一致,因此作为头部的输入是一个自然的选择。

我们训练头部参数到收敛,冻结模型的其余部分,在我们的全训练数据的一个子集上进行。这一步更新了头部,从预训练的 CLS 标记表示中读取有用的信息,用于相关性判断。进行这样的两步微调,使得最终在 BEIR 上的 nDCG@10 提升了大约 2%。

通常用对比方法训练排序任务。具体来说,一个查询会与一个相关(或正面)文档和一个或多个不相关(或负面)文档进行比较,模型被训练为更喜欢相关的那个。与使用纯对比损失(如最大化正面文档的对数概率)不同,一个强大的教师模型可以提供对文档相关性的真实评估。这种选择解决了负面示例标签错误的问题。它还为每个查询提供了比仅仅最大化正面文档的对数概率更多的信息。

为了训练我们的交叉编码器,我们使用教师模型提供一组分数,从中我们使用softmax 函数计算正面和负面文档的参考概率分布:

$$P(q,d)=\frac{e^{score(q,d)}}{\sum_{d' \in p \cup N} e^{score(q,d')}}$$

这里,q 是查询文本,p 是正面文本,N 是负面文本集,d ∈ p ∪ N,score 函数是交叉编码器的输出。

我们最小化交叉编码器分数与参考分布的交叉熵。我们还尝试了Margin-MSE损失,它在训练 ELSER 时效果良好,但发现交叉熵对重排序任务更有效。

这种整体公式自然解释了将点排名解释为评估每个文档与查询相关的概率。在这种情况下,最小化交叉熵相当于通过最大似然估计拟合概率模型,具有这种估计器所赋予的良好性质。相比于 Margin-MSE,我们还认为我们获得了收益,因为交叉熵允许我们了解所有分数之间的关系,因为它通过完全匹配参考分布来最小化。这很重要,因为正如我们下面讨论的那样,我们训练时使用了多个负面示例。

对于教师模型,我们使用一个强大的双编码器模型和一个强大的交叉编码器模型的加权平均集合。我们发现双编码器提供了对负面示例更细致的评估,我们假设这是由于大批量训练对比数百万不同的文本每批次。然而,交叉编码器在区分正面和负面示例方面更好。事实上,我们预期在这方面还有进一步的改进。具体来说,对于模型选择,我们使用一个小但有效的代理来执行多样化检索任务,我们计划探索是否有利于使用黑盒优化我们的教师在这个任务。

训练数据集和负面采样对模型质量至关重要。

我们的训练数据集包括开放 QA 数据集和自然对的,例如文章标题和摘要。我们对这些数据集进行了一些基本的清理和模糊去重。使用开源 LLM,我们还生成了大约 18 万对具有不同相关程度的合成查询和段落。我们使用多阶段提示策略,确保这个数据集涵盖多样的话题和各种查询类型,如关键词搜索、精确短语匹配以及短和长的自然语言问题。总的来说,我们的训练数据集包含大约 300 万个查询。

普遍观察到,质量会随着重排序深度的增加而下降。通常的难负样本挖掘使用浅层采样的检索结果:它为每个查询寻找最难的负样本。文档的多样性随着检索深度的增加而增加,我们认为典型的难负样本挖掘因此没有向重排序器呈现足够的多样性。特别是,训练必须展示查询和负面文档之间关系的充分多样性。

这种缺陷不能通过增加整体查询和文档多样性来解决;训练必须包括从检索结果的深尾部分来的负面文档。因此,我们使用多种方法提取每个查询的前 128 个文档。然后,我们使用一个由它们的分数形成的概率分布,从这个候选池中抽取五个负样本。每个查询使用这么多负样本并不典型;然而,我们发现增加抽样的负样本数量显著提高了最终质量。

使用大量多样的负样本集的一个好处是,它应该有助于模型校准。这是将模型分数映射到有意义的尺度(如相关性概率估计)的过程。校准良好的分数为下游处理或直接给用户提供有用的信息。它们还帮助其他任务,如选择一个阈值以删除结果。我们计划在单独的博客中发布一些我们研究校准策略的工作,以及它们如何有效应用于不同的检索和重排序模型。

训练语言模型传统上需要学习率调度以实现最佳结果。这是指随着训练进展改变用于梯度下降的步长乘数的过程。它带来了一些挑战:必须提前知道总训练步骤数;它还引入了多个额外的超参数需要调整。

一些最近有趣的工作表明,如果采用一种新的权重更新方案,包括沿优化轨迹平均参数,则可以放弃学习率调度。我们采用了这个方案,使用 AdamW 作为基础优化器,发现它产生了出色的结果,而且易于调整。

总结

在本文中,我们介绍了新的 Elastic Rerank 模型。它从 DeBERTa v3 基础模型微调而来,使用了一个精心准备的数据集,通过双编码器和交叉编码器模型的集合进行蒸馏。

我们展示了它在词法检索结果的重排序中提供了最先进的相关性。此外,它使用的参数比竞争模型少得多。在我们下一篇博客中,我们将更详细地研究其行为,并重新审视我们在本文中比较的其他高质量模型。因此,我们将提供一些关于模型和重排序深度选择的额外见解。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RAG的核心-结果召回和重排序
从用户输入Query到最终输出答案的各个步骤。整个流程包括Query预处理、检索召回、排序等关键环节,每个环节都有不同的技术和方法来提升检索效果。
JavaEdge
2025/06/01
1650
RAG的核心-结果召回和重排序
多维度信息捕捉:利用向量、稀疏向量、全文搜索及张量实现RAG的极致性能
开源 AI 原生数据库 Infinity 0.2 release 正式发布,提供了 2 种新数据类型:稀疏向量Sparse Vector 和 张量Tensor,在此前的全文搜索和向量搜索之外, Infinity 提供了更多的召回手段,如下图所示,用户可以采用任意 N 路召回(N ≥ 2)进行混合搜索,这是目前功能最强大的 RAG 专用数据库。
汀丶人工智能
2025/04/22
2010
多维度信息捕捉:利用向量、稀疏向量、全文搜索及张量实现RAG的极致性能
深入探讨高质量重排器及其性能优化:Elastic Rerank模型的实战评估
在这一系列博客的最后一部分,我们详细探讨了各种高质量重排器(re-ranker)的特性,包括我们自己开发的Elastic Rerank模型。特别是,我们关注检索质量随重排深度变化的定性和定量评估。我们提供了一些关于如何选择重排深度的高层次指南,并推荐了我们测试过的不同模型的合理默认值。我们使用BM25作为第一阶段的检索器,采用“检索-重排”管道,专注于英文文本搜索,并使用BEIR来基准测试我们的端到端准确性。
点火三周
2024/12/14
6540
深入探讨高质量重排器及其性能优化:Elastic Rerank模型的实战评估
玩转RAG应用:如何选对Embedding模型?
在打造检索增强生成(RAG)应用时,选择合适的Embedding模型就像挑选合适的工具,直接影响到应用的表现和效果。​那么,面对众多的模型,我们该如何轻松找到最适合的那一款呢?​
致Great
2025/03/19
1.5K0
玩转RAG应用:如何选对Embedding模型?
告别碎片化!两大先进分块技术如何提升RAG的语义连贯性?
可以看出, 当前RAG分块策略的研究聚焦于平衡上下文保留与计算效率。传统方法(固定分块、语义分块)在简单场景中仍具优势,而延迟分块和上下文检索在复杂语义任务中表现更优但代价高昂。未来需探索轻量化上下文增强、长文档优化技术,并建立统一评估标准以推动实际应用。
致Great
2025/04/30
2140
告别碎片化!两大先进分块技术如何提升RAG的语义连贯性?
生产级RAG系统一些经验总结
本文将探讨如何使用最新技术构建生产级检索增强生成(RAG)系统,包括健壮的架构、向量数据库(Faiss、Pinecone、Weaviate)、框架(LangChain、LlamaIndex)、混合搜索、重排序器、流式数据接入、评估策略以及实际部署技巧。
致Great
2025/05/02
2560
双塔模型的瓶颈究竟在哪?
开放域问答系统的泛化性和鲁棒性一直是一个业界难题,其中位于最顶层的稠密检索模型(Dense Retriever)常常被诟病其OOD泛化能力不如传统的BM25算法。
NewBeeNLP
2024/04/26
2760
双塔模型的瓶颈究竟在哪?
改进 Elastic Stack 中的信息检索:混合检索
在我们的上一篇博文中,我们介绍了 Elastic Learned Sparse Encoder,这是一种经过训练可有效进行零样本文本检索的模型。Elasticsearch ®还具有强大的词汇检索功能和丰富的工具来组合不同查询的结果。在本博客中,我们介绍了混合检索的概念,并探讨了 Elasticsearch 中可用的两种具体实现。特别是,我们探索如何通过使用倒数排名融合和加权分数和将弹性学习稀疏编码器与 BM25 相结合来提高其性能。
点火三周
2023/07/20
2.3K0
改进 Elastic Stack 中的信息检索:混合检索
SIGIR 2023 | 30万真实查询、200万互联网段落,中文段落排序基准数据集发布
机器之心专栏 机器之心编辑部 T2Ranking由超过 30 万的真实查询和 200 万的互联网段落构成,并且包含了由专业标注人员提供的 4 级细粒度相关性标注。 段落排序是信息检索领域中十分重要且具有挑战性的话题,受到了学术界和工业界的广泛关注。段落排序模型的有效性能够提高搜索引擎用户的满意度并且对问答系统、阅读理解等信息检索相关应用有所助益。在这一背景下,例如 MS-MARCO,DuReader_retrieval 等一些基准数据集被构建用于支持段落排序的相关研究工作。然而常用的数据集大部分都关注英文
机器之心
2023/04/21
8410
SIGIR 2023 | 30万真实查询、200万互联网段落,中文段落排序基准数据集发布
轻松构建聊天机器人、准确性新SOTA,RAG有了更强大的AI检索器
黄志恒拥有爱丁堡大学博士和加州大学伯克利博士后研究经历。志恒曾在微软、百度、Facebook、腾讯和亚马逊等 IT 公司工作。志恒在亚马逊 AWS 担任首席科学家领导了 Amazon Kendra 和 Amazon Q。志恒现在是 Denser.ai 的创始人。截至 2024 年 5 月,Google Scholar 引用次数超过 13,300 次。
机器之心
2024/06/17
2300
轻松构建聊天机器人、准确性新SOTA,RAG有了更强大的AI检索器
Denser Retriever: 企业级AI检索器,轻松构建RAG应用和聊天机器人(完全开源)
Denser Retriever是一个企业级AI检索器,将多种搜索技术整合到一个平台中。在MTEB数据集上的实验表明,可以显著提升向量搜索(VS)的基线(snowflake-arctic-embed-m模型, 在MTEB/BEIR排行榜达到了最先进的性能)。
DenserAI_Chris
2024/08/04
2050
Denser Retriever: 企业级AI检索器,轻松构建RAG应用和聊天机器人(完全开源)
从零开始了解语义搜索中的嵌入模型
正如大多数矢量搜索供应商所宣传的那样,语义搜索系统的基本设计有两个简单的(这很讽刺) 步骤:
点火三周
2023/08/25
4K0
从零开始了解语义搜索中的嵌入模型
大模型应用系列:从Ranking到Reranking
【引子】Ranking 和Reranking又是一个NLP 处理中的传统技术, 那么在大模型应用中又起到怎样的作用呢?
半吊子全栈工匠
2024/11/11
6780
大模型应用系列:从Ranking到Reranking
教你评估搜索相关性(第1部分)
这是一个系列博客的第一篇,讨论如何在更好地理解 BEIR 基准的背景下评估自己的搜索系统。我们将介绍一些具体的技巧和方法,以改善您的搜索评估过程,并介绍一些常见的问题,这些问题会使评估变得不那么可靠。最后,我们指出 LLMs 提供了一个强大的新工具,可以帮助搜索工程师评估搜索效果,并通过示例展示如何使用它们来帮助评估搜索。
点火三周
2024/07/31
2560
教你评估搜索相关性(第1部分)
什么是语义重排(semantic rerank)?如何使用它?
在这个系列博客中,我们将介绍 Elastic 的新语义重排器。语义重排通常可以在零样本设置中显著提高相关性,还可以通过显著提升词汇检索的相关性,在索引计算成本与查询计算成本之间进行权衡。在这篇博客中,我们将介绍语义重排的背景以及它如何融入你的搜索和 RAG(检索增强生成)流水线。在第二篇文章中,我们将向你介绍 Elastic Rerank: Elastic 的新语义重排模型,这是我们训练并在技术预览中发布的新模型。
点火三周
2024/12/13
2610
什么是语义重排(semantic rerank)?如何使用它?
WSDM Cup 2020 引用意图识别赛道冠军解决方案(附答辩视频、PPT和代码)
新发现、新理论的研究论文发表数量呈指数型增长,并且论文被引用量(H-index)通常被学术界衡量论文的影响力贡献程度。然而,随着学术界的竞争越来越激烈,部分期刊中出现了一种“强制引用”的情况,也是就论文作者需要引用该期刊的相关文章,以提高期刊的影响因子。这些行为是对任何科学家和技术人员所要求的最高诚信的冒犯,并且如果任其发展,可能会破坏公众的信任并阻碍科学技术的未来发展。该竞赛是该系列竞赛中的第一场竞赛,探讨了网络搜索和数据挖掘技术在多大程度上可以用来区分多余的引文和真实的引用识别。赛题详解可参考:https://biendata.com/competition/wsdm2020/
提莫在线发育
2020/04/17
6790
WSDM Cup 2020 引用意图识别赛道冠军解决方案(附答辩视频、PPT和代码)
最新研究!谷歌利用大模型LLM扩展搜索查询
最近,借助 LLM 强大的理解与生成能力,结合基础大语言模型,使用LLM来帮助查询扩展 诞生了!
对白
2023/09/01
9340
最新研究!谷歌利用大模型LLM扩展搜索查询
超越传统搜索:Elasticsearch学习排序(LTR)的前沿技术
学习排序(LTR)使用一个经过训练的机器学习(ML)模型为你的搜索引擎构建一个排名函数。通常,该模型被用作第二阶段的重新排序器,用于改进由简单的第一阶段检索算法返回的搜索结果的相关性。LTR函数接收一份文档列表和一个搜索上下文,并输出重排名后的文档:
点火三周
2024/04/23
8120
超越传统搜索:Elasticsearch学习排序(LTR)的前沿技术
LLM in Reranking——利用LLM进行重排
重排器(Reranker)作为信息检索的第二阶段,需要根据查询和文档的相关性,对候选文档做细粒度的排序。经典的重排方法一般使用交叉编码器,结合文档和查询的语义信息进行打分和排序。
NewBeeNLP
2023/10/25
2.6K0
LLM in Reranking——利用LLM进行重排
一个可供参考的搜索引擎排序架构实践案例
全球性的搜索引擎 Google,看似简单的搜索框背后隐藏的是极其复杂的系统架构和搜索算法,其中排序(以下统称 Ranking)的架构和算法更是关键部分。Google 正是通过 PageRank 算法深刻改变搜索排序而一举击败众多竞争对手。本文将介绍有关搜索引擎排序的相关技术内容。
Spark学习技巧
2019/07/17
2.7K0
一个可供参考的搜索引擎排序架构实践案例
推荐阅读
相关推荐
RAG的核心-结果召回和重排序
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档