向量数据库

向量数据库全景:从嵌入到检索引擎

入门基础与全景约 15 分钟kp-001

一句话定义

向量数据库是以高维向量为一等公民的数据系统:负责嵌入向量的存储、近似最近邻(ANN)索引、元数据过滤、增删改与水平扩展,把"语义相似度检索"变成一条可运维的数据管道。

为什么重要

大模型时代几乎所有"理解语义"的需求(RAG 知识库、推荐、以图搜图、去重)最终都收敛为同一个动作:在高维空间里找最近邻。当向量从几千条涨到几亿条,NumPy 暴力循环就撑不住了,需要专门的索引与系统工程。向量数据库就是这件事的标准化答案——就像关系数据库之于结构化数据。

前置知识

无硬性前置。知道"向量是一串数字"即可,其余概念本库会从零建立。

核心概念

原理与机制

一条完整的数据流:

原始数据(文本/图片/音频)
      │  编码器(embedding 模型)
      ▼
 嵌入向量(d 维浮点数组, 可选 L2 归一化)
      │  批量写入
      ▼
┌────────────────────────────────────┐
│            向量数据库               │
│  向量存储 + ANN 索引(IVF/HNSW/…)   │
│  元数据索引 + 过滤器                │
│  增删改 + 段合并 + 一致性级别        │
│  分片 + 副本 + 监控                 │
└────────────────────────────────────┘
      │  查询: query 向量 + 过滤条件 + top-k
      ▼
 top-k 近邻 → (可选)重排 rerank → 业务(RAG/推荐/搜索)

它与 RAG 的分工:本库关心检索引擎本身(左半段管道),RAG 站点关心切块与提示组织(应用层)。

公式或模型

本节不适用:本篇是全景导览,无计算模型;距离与召回公式见 kp-003、kp-004。

图示

见上方数据流图。右侧查询路径是"在线"路径(毫秒级),左侧写入路径是"离线"路径(批量、可异步)——读写两条路径的资源竞争是后文所有架构设计的主线。

实例或案例

客服知识库:10 万篇文档切块成 80 万个片段,各生成 1024 维向量写入向量库。用户提问"发票丢了怎么报销"被编码成查询向量,库在 5 毫秒内返回 top-8 相似片段(含 department=财务 过滤),交给大模型生成答案。若无向量库,等价做法是对 80 万片段逐一调用相似度计算,单次查询需数百毫秒到数秒。

直观类比

传统数据库回答"这个值等于什么"(等值/范围匹配),向量数据库回答"什么和这个最像"(语义排序)。B+ 树按大小划分数轴,ANN 索引按相似性划分高维空间——这是两套完全不同的空间观。

常见误区

  1. "向量库就是一个只会算距离的玩具"——成熟向量库的数据系统能力(过滤、事务性写入、副本、备份)才是与算法库(FAISS/hnswlib)的分水岭,详见 kp-018。
  2. "检索结果是精确的"——几乎所有规模化检索都是近似的,存在漏召回的可能,这是特性不是缺陷,见 kp-004。
  3. "向量无损包含原文"——嵌入是有损压缩,语义细节(精确数字、专有名词)可能丢失,这正是 kp-015 稀疏检索存在的理由。

自测题

  1. 向量数据库与 FAISS 这类算法库的本质差别是什么?
  2. 答:算法库只有内存中的索引与距离计算;向量库在其上补齐数据系统能力——持久化、CRUD、元数据过滤、分布式与高可用、一致性语义、监控运维。

  3. 一段文本进入向量库之前经历了哪几步?
  4. 答:切块(分片成语义单元)→ 嵌入模型编码 → (可选归一化)→ 携带元数据写入,进入内存段并异步建索引。

  5. 为什么说生产环境的向量检索是概率性的?
  6. 答:ANN 索引用启发式剪枝换速度,真实最近邻可能不在被扫描的候选里;召回率是可测量的指标,而非恒等于 1。

与其他知识点的关系

kp-002 讲管道第一环"嵌入从哪来";kp-004 把"近似"形式化;kp-018 展开本篇框架图中的系统组件。

延伸阅读

Wang et al., "Milvus: A Purpose-Built Vector Data Management System"(SIGMOD 2021)——第一篇把向量库作为数据管理系统系统化论述的论文,本篇框架图的学术原型。

相关知识点