链载Ai

标题: 吴恩达DeepLearning.AI课程系列 - 大模型检索增强生成(四):向量数据库中的检索优化 [打印本页]

作者: 链载Ai    时间: 昨天 16:58
标题: 吴恩达DeepLearning.AI课程系列 - 大模型检索增强生成(四):向量数据库中的检索优化

前言

在前面的课程中,我们已经介绍了关于文本数据如何被载入并进行切分,以及如何将这部分切分后的文本数据进行向量化后存储在我们的向量数据库当中。完成了以上的步骤其实就是意味着我们前期数据处理工作已经完成了,即便是我们需要载入更多的数据存储到向量数据库中,我们只需要重复上述的步骤即可。在上节课的末尾,我们简单尝试了一下在向量数据库中通过similarity_search的方式进行相关数据的检索,那这节课我们来更加深入的阐述一下这部分的内容。

那对于Retrival这个事情而言,除了最基本的similarity_search通过计算计算查询向量和所有候选文档向量之间的相似度以外,我们其实还有一些其他的方法,包括Maximum Marginal Relevance(MMR,最大边际相关性)、Metadata(元数据)以及LLM Aided Retrieval(大型语言模型辅助检索)等。那下面我们将逐一介绍一下这些方法。

Similarity Search 方法详解

Similarity Search(相似度搜索) 是向量数据库中最基础的检索方法之一。它通过计算查询向量与数据库中所有文档向量之间的相似度,来找到与查询最相关的文档。通常使用的相似度度量方法包括 余弦相似度欧氏距离 等,这些方法能够有效衡量两个向量在高维空间中的接近程度。

在相似度搜索中,用户输入一个查询,系统会将这个查询转化为一个向量,然后与数据库中的向量进行比较,从而找到最相似的内容。这种方法的优点在于它的简单和直观,适合用于快速找到与查询内容高度相关的结果。例如,当用户查询“深度学习的基本概念”时,相似度搜索能够返回与“深度学习”内容最接近的文档片段。

相似度搜索提供了直接匹配用户查询的能力,是许多向量数据库的基础检索方式。然而,单纯依赖相似度搜索可能导致结果的多样性不足,因为它仅关注与查询的匹配程度,而忽略了内容之间的差异性。在一些应用场景下,特别是需要覆盖多个不同方面的信息时,Maximum Marginal Relevance (MMR) 这样的扩展方法可以更好地平衡相关性和多样性。

Maximum Marginal Relevance 方法详解

在信息检索和自然语言处理领域,检索最相似的信息并非总是最优的选择,特别是在用户需求涵盖多个不同方面时,仅选择与查询最相似的响应可能会造成信息重复,缺乏多样性。为了解决这一问题,Maximum Marginal Relevance (MMR) 方法应运而生。MMR 通过在相关性和多样性之间进行权衡,从而优化最终检索结果,使用户能够获得既相关又互补的信息。

MMR 方法的原理与动机

如图所示,当用户提出查询(例如"Tell me about all-white mushrooms with large fruiting bodies")时,系统会尝试寻找与查询最相似的响应。然而,完全基于相关性的检索可能会忽略信息的多样性。例如,如果只选择最相似的响应,得到的结果可能会非常相似,甚至包含重复的内容。这时,虽然每个结果与查询的相似度都很高,但它们却未能提供全面且多样化的内容。

MMR 的核心思想是平衡相关性与多样性,即在选择与查询最相关的信息的同时,也要确保这些信息在内容上具有多样性。通过减少信息之间的重复性,MMR 能够帮助用户获得更加全面和丰富的知识视角,涵盖不同的细节和角度,而不仅仅是获取多个相似的答案。例如,在检索某一特定主题的文档时,MMR 不仅会选出与查询高度匹配的结果,还会确保所选文档在涵盖的内容和信息层次上存在差异,从而使得用户得到的结果既有深度又有广度。

MMR 算法的工作流程

MMR 算法的具体工作流程可以通过下图来理解,下面逐步分解介绍其主要步骤:

  1. 查询向量存储(Query the Vector Store)






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5