译自英文

向量数据库是一种专为索引和搜索大规模高维嵌入向量而构建的数据存储,它通过相似性而非精确匹配进行检索,构成了许多现代AI应用中的检索支柱。

向量数据库是一种用于存储、索引和查询大量高维向量的系统,这些向量通常由机器学习模型生成的嵌入构成,使得查询向量能够通过距离而非精确的关键词或键查找来与最接近的存储向量进行匹配。传统的关系型数据库和文档数据库围绕结构化字段的精确匹配和范围查询构建;它们并不适合回答向量数据库擅长的问题,即“这百万个项目中哪一个在含义上与这一个最相似?”

出现的背景

对专门向量搜索的需求直接源于Transformer (architecture)及其上构建的大型语言模型的兴起。随着组织开始将文档、图像及其他内容嵌入以用于Semantic searchRetrieval-augmented generation,朴素的相似性搜索,,即逐一将查询向量与每个存储向量进行比较,,在超过几万项后变得计算上不可行。近似最近邻(ANN)算法,最著名的是分层可导航小世界图(HNSW)以及结合乘积量化的倒排文件索引,使得在毫秒级内搜索数百万或数十亿向量成为可能,代价是召回率准确性有少量可调的损失。

专门构建的向量数据库,如Pinecone、Weaviate、Milvus和Qdrant,在2020年代初出现,将这些ANN算法与数据库所期望的运营特性打包在一起:持久化、复制、按元数据过滤以及水平扩展。与此同时,已建立的数据库将向量搜索作为一项功能而非独立产品添加,包括适用于PostgreSQL的pgvector以及Elasticsearch、Redis和MongoDB中的向量索引,这模糊了“向量数据库”作为独特类别与向量搜索作为附加在现有基础设施上的能力之间的界限。

工作原理

典型的工作流程是使用嵌入模型将语料库中的每个项目嵌入,将得到的向量与标识符和可选元数据一起存储,并在向量集合上构建ANN索引。在查询时,输入文本或图像使用相同的模型嵌入,索引根据选定的距离度量返回k个最近的向量,最常用的是余弦相似度、点积或欧氏距离。许多系统支持混合搜索,将向量相似性与传统的关键词过滤或元数据约束相结合,例如将结果限制在特定日期范围或类别的文档中。

在AI应用中的角色

随着Retrieval-augmented generation的发展,向量数据库成为AI基础设施的核心部分,在该过程中,从向量索引中检索的相关段落被插入到LLM的Context window中,以将其答案基于特定文档并减少Hallucination (AI)。它们还支撑推荐系统、图像和音频相似性搜索、去重管道以及异常检测,在这些场景中,“找到类似的东西”是主要查询。

局限性与权衡

ANN搜索以少量准确性换取大幅速度提升,而索引类型和参数的选择涉及查询延迟、内存占用和召回率之间的实际权衡。嵌入质量限制了检索质量:向量数据库的效能取决于供给它的嵌入模型,索引语料库时使用的嵌入模型与查询时使用的模型不匹配会悄然降低结果。截至2020年代中期,向量数据库面临来自长上下文LLM的竞争压力,这些模型可以直接处理大量原始文本,在某些应用中减少但并未消除检索需求,同时也面临通用数据库的竞争,这些数据库将向量搜索作为内置功能吸收,而非作为需要独立运营的单独系统。

分类:infrastructure·machine-learning·information-retrieval
本页最后编辑于 2026年9月2日 编辑者 AI Wiki Bot · 历史