趋近智
文本可以表示为捕捉语义的密集数值向量 (vector)(嵌入 (embedding))。余弦相似度 () 或欧几里得距离 () 等相似度指标有助于找到接近给定查询向量的向量。在处理这些表示时,一个主要问题出现了:如何处理规模。
想象一下,您的知识来源包含数千、数百万甚至数十亿文档。经过分块和嵌入后,您将拥有相应庞大的向量数量。在如此庞大的集合中,对您的查询向量进行暴力相似度搜索,与每个向量进行比较,计算成本高昂且耗时。对于需要快速响应的 RAG 系统而言,检索步骤等待数分钟是不可行的。
传统数据库,例如关系型 (SQL) 或许多 NoSQL 数据库,通常设计用于精确匹配、标量值的范围查询或基于关键词的文本搜索。它们本身并未针对在基于相似度指标的高维向量空间中查找“最接近”的匹配进行优化。这时向量数据库就发挥作用了。
向量数据库是一种特殊类型的数据库,专门用于存储、管理和查询大量高维向量,例如我们讨论过的文本嵌入 (embedding)。它们的主要目的是实现高效且可扩展的相似度搜索。
向量数据库不是基于关键词或特定字段值搜索精确匹配,而是让您输入一个查询向量,并根据选定的距离指标(例如,余弦相似度、欧几里得距离、点积)快速查找其索引中“最相似”的向量。
使向量 (vector)数据库高效的核心能力是它们对近似最近邻 (ANN) 搜索算法的有效实现。
为什么是“近似”?执行精确的K最近邻 (KNN) 搜索,它保证找到距离查询向量绝对最近的 K 个向量,仍然需要将查询与数据集的很大一部分进行比较,尤其是在高维度中。这对于大型数据集来说可能太慢了。
ANN 算法牺牲少量准确性,换取速度上的巨大提升。它们使用巧妙的索引技术快速缩小搜索范围,返回极有可能位于真实最近邻中的向量,尽管没有完美保证。在实际应用中,对于像 RAG 这样的系统,ANN 搜索的结果通常非常出色,并且速度优势显著。这就像超快速地找到非常相关的文档,即使最相关的那个文档有极小的可能未被返回。
为了实现快速 ANN 搜索,向量数据库依赖于专门的索引结构。当您向数据库添加向量时,它们会使用旨在划分高维空间 (high-dimensional space)的算法进行组织。一些常见的索引策略包括:
您通常无需自己实现这些算法。向量数据库抽象了这种复杂性,让您能够选择索引类型并根据您在搜索速度、内存使用和召回率(准确性)之间所需的权衡来配置其参数 (parameter)。
仅仅向量通常是不够的。在 RAG 系统中,当您检索相关分块时,您还需要知道它们来自哪里(例如,原始文档名称、页码、URL)。向量数据库允许您在每个向量旁边存储相关的元数据。
重要的是,它们通常在搜索期间支持元数据过滤。这意味着您可以在符合特定元数据条件的向量子集中执行相似度搜索。例如:“查找与我的查询最相似的文本分块,但仅在 2023 年 1 月之后发布的文档中搜索”或“查找与查询相似、源自‘技术规范’PDF 的分块”。此功能对于构建更有针对性和高效的 RAG 应用非常有用。
高层流程图,显示用户查询被向量化 (quantization),在向量数据库内的向量索引中进行搜索,并返回相关分块及其元数据。
在 RAG 的背景下,向量数据库作为您知识库的持久、可查询存储。当用户提出问题时:
通过使用向量数据库,检索步骤变得快速且可扩展,使 RAG 系统能够高效地从广泛的知识来源获取相关信息。下一节讨论了为您的特定需求选择向量数据库时需要考虑的因素。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造