向量数据库把文档与其嵌入向量一起存储,并通过在向量空间中进行最近邻搜索来响应查询。由于大规模精确最近邻搜索的开销很高,这类系统依赖近似方法,例如 Malkov & Yashunin(2018)提出的 HNSW 图索引,以及 FAISS(Johnson et al., 2017)等 GPU 加速的搜索库。
结果是在数百万个段落中实现亚秒级的语义检索——正是这一存储层让检索增强生成真正落地可用。
向量数据库有什么用?
传统数据库查找与某个值精确匹配的行;向量数据库查找的是含义相近的条目。搜索“如何重置密码”时,它可能返回一篇标题为“恢复账户访问权限”的帮助文章,尽管两者几乎没有共同的词。因此,向量数据库成为以下应用的核心支柱:
- 面向帮助中心、知识库和文档档案的语义搜索
- 基于私有文档作答的 RAG 聊天机器人
- 推荐——为商品、文章或歌曲提供“更多类似内容”
- 重复与近似重复检测
- 图像与音频相似度搜索
向量数据库的工作原理
- 1嵌入并存储。每个条目都由嵌入模型转换为嵌入向量,并与原始内容和元数据一起存储。
- 2建立索引。向量被组织进 HNSW 等近似索引中,用少许精度换取大幅的速度提升。
- 3查询。用同一个模型对查询进行嵌入,数据库再按余弦相似度等相似度指标找出最接近的向量。
- 4过滤并返回。大多数系统会把相似度搜索与元数据过滤(日期、作者、权限)结合起来,返回排名最靠前的匹配结果,这些结果通常还会交给重排序模型处理。
向量数据库与传统数据库对比
| 传统数据库 | 向量数据库 | |
|---|---|---|
| 匹配依据 | 精确值和关键词 | 含义上的接近程度 |
| 查询方式 | SQL 或键值查找 | 问题的嵌入向量 |
| 索引 | B 树或倒排索引 | 近似最近邻索引(例如 HNSW) |
| 结果 | 所有匹配的行 | 按相似度排序的前 k 个最相似条目 |
可选方案既有 Pinecone、Weaviate、Milvus、Qdrant 和 Chroma 等专用向量数据库,也有为现有数据库提供向量搜索的扩展,例如 PostgreSQL 的 pgvector。对许多团队来说,在已有的数据库上加入向量搜索,比单独运维一套系统更简单。