向量数据库工作原理:AI 搜索的基础设施

RAG/检索向量数据库工作原理openstarry.com

向量数据库工作原理:AI 搜索的基础设施

向量数据库是 RAG 系统的核心基础设施。它将文本、图像等非结构化数据转化为高维向量,并通过高效的近似最近邻搜索,实现毫秒级的语义检索。

什么是 Embedding?

Embedding(嵌入)是将高维稀疏的原始数据映射到低维稠密向量空间的过程。在 NLP 中,Embedding 模型将文本转换为固定维度的数值向量,语义相似的文本在向量空间中距离更近。

Embedding 示例:
"猫是一种可爱的动物" → [0.23, -0.87, 0.45, 0.12, ..., 0.67] (768维)
"小猫咪真萌"        → [0.25, -0.85, 0.43, 0.14, ..., 0.65] (768维)
"今天天气不错"      → [0.78, 0.12, -0.34, 0.56, ..., -0.21] (768维)

观察:语义相似的前两句向量更接近
距离(猫, 小猫) = 0.12  ← 近
距离(猫, 天气) = 0.89  ← 远

常用的 Embedding 模型包括 OpenAI text-embedding-3、BGE、E5、GTE 等,它们将文本映射到 384-3072 维的向量空间。


为什么需要向量数据库?

暴力搜索(Brute-Force)在百万级数据上仍然可用,但当数据规模达到亿级时,每次搜索都遍历全部向量是不可接受的。

暴力搜索的计算量:
1 亿向量 × 768 维 = 768 亿次浮点运算/查询
延迟:数秒到数十秒

向量数据库的目标:
用近似搜索(ANN)牺牲少量精度,换取 100-1000 倍的速度提升
延迟:毫秒级

核心 ANN 算法

1. HNSW(Hierarchical Navigable Small World)

HNSW 是目前最流行的 ANN 算法,基于可导航小世界图的层次化结构。

HNSW 的核心思想:
构建多层图结构,每层是一个"小世界网络"

层级结构(从上到下):
Layer 2:  A ──── D(稀疏层,少量节点)
          |    /
Layer 1:  A ── B ── D ── F(中等密度)
          |   |   |   |
Layer 0:  A─B─C─D─E─F─G─H(完整层,所有节点)

搜索过程:
1. 从最高层的入口节点开始
2. 在当前层贪心搜索,找到最近的节点
3. 下降到下一层,以上一层的结果为起点继续搜索
4. 重复直到最底层,返回最终结果

HNSW 的优势:查询速度快(O(log n))、召回率高、支持动态插入。劣势:内存占用较大。

2. IVF(Inverted File Index)

IVF 通过聚类将向量空间划分为多个区域,搜索时只检查最近的几个区域。

IVF 的工作流程:

训练阶段(聚类):
  1. 用 K-Means 将所有向量聚成 nlist 个簇
  2. 记录每个簇的中心点

搜索阶段:
  1. 计算查询向量与所有簇中心的距离
  2. 选择最近的 nprobe 个簇
  3. 只在这些簇内做暴力搜索
  4. 返回全局最优结果

示例(nlist=100, nprobe=10):
  搜索范围从 100% 缩小到 10%
  速度提升约 10 倍

3. PQ(Product Quantization,乘积量化)

PQ 通过将高维向量分割成子向量并分别量化,大幅压缩存储空间。

PQ 压缩原理:
原始向量 (768维, float32) = 3072 字节

PQ 压缩(m=96 个子空间,每个子空间 8 维):
  768 维 → 96 个子向量 → 96 个聚类中心的编号
  存储:96 × 1 字节 = 96 字节

压缩比:3072 / 96 = 32 倍

索引类型选择指南

索引类型 内存占用 查询速度 召回率 适用场景
Flat(暴力)最慢100%小数据集、精确搜索
IVF中高中等规模、内存有限
HNSW最快大规模、低延迟要求
IVF+PQ超大规模、内存受限

主流向量数据库对比

数据库 类型 特点 适用场景
Milvus开源/分布式支持万亿级向量、丰富索引类型大规模生产环境
Qdrant开源Rust 编写、过滤搜索强需要标量过滤的场景
Weaviate开源GraphQL API、多模态支持需要结构化查询的场景
Pinecone云托管全托管、开箱即用快速上手、不想运维
Chroma开源轻量级、Python 原生原型开发、小规模应用
pgvectorPG 扩展基于 PostgreSQL已有 PG 基础设施

向量数据库的选型建议


总结

向量数据库是 AI 应用的核心基础设施。理解 Embedding 的原理、HNSW 和 IVF 等 ANN 算法的机制,以及主流数据库的特点,能帮助你为 RAG 系统选择最合适的向量存储方案。在实际项目中,选型应综合考虑数据规模、延迟要求、运维成本和功能需求。

以 AI 之力,筑未来之境

现在注册,立即免费获赠 200 次大模型调用权益

免费注册 →