新技术使 RAG 系统能够更好地检索正确的文档

新技术使 RAG 系统能够更好地检索正确的文档

检索增强生成 ( RAG ) 已成为将大型语言模型 (LLM) 置于外部知识中的一种流行方法。 RAG 系统通常使用嵌入模型对知识语料库中的文档进行编码,并选择与用户查询最相关的文档。

然而,标准检索方法通常无法解释上下文相关的细节,而这些细节可能会对特定于应用程序的数据集产生重大影响。在一篇新论文中,康奈尔大学的研究人员介绍了“上下文文档嵌入”,这是一种通过让嵌入模型了解文档被检索的上下文来提高嵌入模型性能的技术。

双编码器的局限性

RAG 中最常见的文档检索方法是使用“双编码器”,其中嵌入模型为每个文档创建固定表示并将其存储在向量数据库中。在推理过程中,将计算查询的嵌入并将其与存储的嵌入进行比较,以找到最相关的文档。

双编码器因其效率和可扩展性而成为 RAG 系统中文档检索的热门选择。然而,双编码器通常难以处理细微的、特定于应用程序的数据集,因为它们是在通用数据上进行训练的。事实上,当涉及到专业知识语料库时,它们在某些任务中可能不如BM25等经典统计方法

康奈尔理工大学博士生、论文合著者约翰·(杰克)·莫里斯 (John (Jack) Morris) 告诉 VentureBeat:“我们的项目始于对 BM25 的研究,这是一种老式的文本检索算法。我们进行了一些分析,发现数据集越超出领域,BM25 的表现就越优于神经网络。”

BM25 通过计算其索引的语料库上下文中每个单词的权重来实现其灵活性。例如,如果一个单词出现在知识语料库的许多文档中,它的权重就会降低,即使它在其他上下文中是一个重要的关键词。这使得 BM25 能够适应不同数据集的具体特征。

“传统的基于神经网络的密集检索模型无法做到这一点,因为它们只是根据训练数据设置一次权重,”莫里斯说。“我们试图设计一种可以解决这个问题的方法。”

上下文文档嵌入

新技术使 RAG 系统能够更好地检索正确的文档

康奈尔大学的研究人员提出了两种互补的方法,通过在文档嵌入中添加上下文概念来提高双编码器的性能。

莫里斯说:“如果你将检索视为文档之间的‘竞争’,以查看哪个文档与给定的搜索查询最相关,我们会使用‘上下文’来告知编码器有关将参与竞争的其他文档的信息。”

第一种方法修改了嵌入模型的训练过程。研究人员使用一种在训练嵌入模型之前对相似文档进行分组的技术。然后,他们使用对比学习来训练编码器以区分每个集群内的文档。 

对比学习是一种无监督技术,其中模型被训练来区分正例和反例。通过被迫区分相似的文档,模型对特定情况下很重要的细微差异变得更加敏感。

第二种方法修改了双编码器的架构。研究人员为编码器增加了一种机制,使其能够在嵌入过程中访问语料库。这使得编码器在生成嵌入时能够考虑文档的上下文。

增强架构分为两个阶段。首先,它计算文档所属集群的共享嵌入。然后,它将此共享嵌入与文档的独特特征相结合,以创建上下文化嵌入。

这种方法使模型能够捕获文档集群的一般上下文以及使其独一无二的具体细节。输出仍然是与常规双编码器相同大小的嵌入,因此不需要对检索过程进行任何更改。

上下文文档嵌入的影响

研究人员在各种基准上评估了他们的方法,发现它始终优于类似大小的标准双编码器,特别是在训练和测试数据集明显不同的域外设置中。

莫里斯说:“我们的模型应该适用于任何与训练数据有实质性差异的领域,并且可以被视为微调特定领域嵌入模型的廉价替代品。”

上下文嵌入可用于提高 RAG 系统在不同领域的性能。例如,如果您的所有文档都共享一个结构或上下文,则普通嵌入模型会通过存储这种冗余结构或信息来浪费嵌入中的空间。 

“另一方面,上下文嵌入可以从周围的上下文中看出这些共享信息是无用的,并在决定在嵌入中存储什么之前将其丢弃,”莫里斯说。

研究人员发布了其上下文文档嵌入模型的小版本 ( cde-small-v1 )。它可以作为 HuggingFace 和 SentenceTransformers 等流行开源工具的替代品,为不同的应用程序创建自定义嵌入。

Morris 表示,上下文嵌入不仅限于基于文本的模型,还可以扩展到其他模式,例如文本到图像架构。还有空间可以通过更先进的聚类算法对其进行改进,并在更大规模上评估该技术的有效性。

原创文章,作者:王 浩然,如若转载,请注明出处:https://www.dian8dian.com/xin-ji-shu-shi-rag-xi-tong-neng-gou-geng-hao-di-jian-suo

Like (0)
王 浩然的头像王 浩然作者
Previous 2024年10月15日
Next 2024年10月15日

相关推荐

发表回复

Please Login to Comment