第2章:发展历程 - 关键技术节点与演进¶
技术发展时间线¶
timeline
title 向量数据库技术演进史
section 萌芽期
2000年代初期 : NNDS研究开始
朴素最近邻搜索
section 索引算法突破
2003 : KD-Tree优化
空间分割索引
2006 : LSH局部敏感哈希
随机投影方法
2011 : PQ乘积量化
有损压缩索引
section 现代向量数据库
2017 : FAISS发布
Facebook开源
2019 : HNSW算法成熟
分层导航小世界
2020 : Pinecone云服务
托管向量数据库
section 爆发期
2021-2022 : Milvus、Qdrant
开源数据库涌现
2023-2024 : 大模型驱动
RAG应用爆发
一、萌芽期:从学术研究到概念形成¶
什么是最近邻搜索¶
最近邻搜索(Nearest Neighbor Search, NNS) 是向量数据库的核心问题:给定一个查询向量,在数据集中找到与它最相似的向量。
最早的研究可以追溯到1970年代,计算机科学家开始研究如何高效解决"在N个点中找到最近的点"这个问题。
早期方法的局限性¶
早期的方法如KD-Tree,在高维数据(维度>20)下会遭遇"维度灾难",检索效率急剧下降。
# 维度灾难示意图
dimensions = [2, 10, 50, 100, 500, 1000]
efficiency = [1.0, 0.8, 0.3, 0.1, 0.01, 0.001] # 相对检索效率
# 维度越高,数据分布越稀疏
# 导致"所有点之间的距离都差不多远"
二、索引算法突破期¶
1. 局部敏感哈希(LSH)- 2003-2006¶
局部敏感哈希(Locality-Sensitive Hashing, LSH) 是第一个能够在大规模高维数据上有效进行近似最近邻搜索的算法。
核心思想:相近的向量经过哈希后,会有很高的概率被映射到相同的"桶"中。
graph LR
subgraph LSH工作原理
A[向量A: 相似] -->|哈希函数| C[桶1]
B[向量B: 相似] -->|哈希函数| C
D[向量C: 不相似] -->|哈希函数| E[桶2]
C --> F[在桶内精确搜索]
end
style A fill:#b3e5fc
style B fill:#b3e5fc
style D fill:#ffccbc
style C fill:#c8e6c9
LSH的优缺点:
| 优点 | 缺点 |
|---|---|
| 理论成熟 | 哈希桶数量需要预设 |
| 适合低维数据 | 内存占用较大 |
| 查询速度快 | 精度有限 |
2. 乘积量化(PQ)- 2011¶
乘积量化(Product Quantization, PQ) 由法国研究机构提出,是一种有损压缩方法,能够将高维向量压缩到更小的存储空间。
核心思想: 1. 将向量分成多个子向量 2. 对每个子向量空间进行聚类 3. 用聚类中心的ID代替原始子向量
# PQ压缩示例
original_vector = [0.23, -0.45, 0.89, -0.12, 0.56, -0.78] # 6维原始向量
# PQ压缩后:用聚类中心ID表示
# 假设分成3组,每组2维
# [0.23, -0.45] -> 聚类中心ID: 42
# [0.89, -0.12] -> 聚类中心ID: 17
# [0.56, -0.78] -> 聚类中心ID: 89
compressed = [42, 17, 89] # 只存储3个整数
# 压缩率:6个浮点数 -> 3个整数 = 50倍压缩
三、深度学习驱动期¶
词嵌入的崛起¶
2013年,Google发布了 Word2Vec 模型,首次实现了将词语转换为密集向量的突破。这种"嵌入"技术让机器能够理解词语之间的语义关系。
# Word2Vec示例:词语到向量的映射
word_vectors = {
"king": [0.5, 0.3, -0.2, 0.8],
"queen": [0.4, 0.2, -0.1, 0.9],
"man": [0.6, -0.1, 0.4, 0.2],
"woman": [0.3, 0.1, 0.5, 0.3]
}
# king - man + woman ≈ queen (向量运算!)
# 这说明向量确实编码了语义信息
Transformer与向量表示¶
2017年,Transformer架构被提出,随后产生了 BERT、GPT 等大语言模型。这些模型能够生成高质量的上下文相关向量表示,极大推动了向量数据库的发展。
四、现代向量数据库诞生期¶
1. FAISS - 2017¶
FAISS(Facebook AI Similarity Search) 由Facebook(现Meta)开源,是第一个工业级的向量检索库。
# FAISS基本使用示例
import faiss
import numpy as np
# 创建10000个128维的随机向量作为数据集
dimension = 128
vectors = np.random.random((10000, dimension)).astype('float32')
# 建立索引
index = faiss.IndexFlatL2(vectors.shape[1]) # L2距离索引
index.add(vectors)
# 查询
query = np.random.random((1, dimension)).astype('float32')
distances, indices = index.search(query, k=5) # 找5个最近邻
print(f"最近邻索引: {indices}")
print(f"距离: {distances}")
FAISS的贡献: - 证明了工业级向量检索的可行性 - 提供了多种索引算法(IVF、PQ、HNSW等) - 开源推动了整个领域的发展
2. HNSW算法成熟 - 2019¶
HNSW(Hierarchical Navigable Small World) 是目前最主流的向量索引算法之一,由俄罗斯科学家发明。
核心思想:构建多层图结构,上层稀疏、下层密集,通过"高速公路"实现快速搜索。
graph TB
subgraph Layer 2 [上层 - 稀疏]
L2_A((A)) --> L2_C((C))
L2_B((B)) --> L2_C
L2_C --> L2_E((E))
end
subgraph Layer 1 [中层]
L1_A((A)) --> L1_B((B))
L1_B --> L1_C((C))
L1_C --> L1_D((D))
L1_D --> L1_E((E))
end
subgraph Layer 0 [底层 - 密集]
L0_A((A)) --> L0_B((B))
L0_B --> L0_C((C))
L0_C --> L0_D((D))
L0_D --> L0_E((E))
L0_B --> L0_E
L0_A --> L0_D
end
style L2_A fill:#bbdefb
style L2_C fill:#bbdefb
style L2_B fill:#bbdefb
style L2_E fill:#bbdefb
style Layer 0 fill:#fff3e0,color:#000
style Layer 1 fill:#e8f5e9,color:#000
style Layer 2 fill:#fce4ec,color:#000
HNSW的优势: - 查询速度极快(毫秒级) - 精度高(接近100%召回率) - 无需调参,使用简单
五、云服务与开源并进期¶
2020-2022:云原生向量数据库兴起¶
| 产品 | 公司 | 特点 |
|---|---|---|
| Pinecone | Pinecone | 全托管、云原生 |
| Milvus | Zilliz | 开源、云原生 |
| Qdrant | Qdrant团队 | 开源、 Rust实现 |
| Weaviate | SeMI Technologies | 混合搜索 |
| Chroma | Chroma公司 | 轻量级、面向LLM |
2023-2024:大模型时代的爆发¶
ChatGPT 的成功证明了 LLM 的强大能力,也带火了 RAG(检索增强生成) 架构。向量数据库作为 RAG 的核心组件,迎来了爆发式增长。
flowchart LR
A[大语言模型] -->|驱动| B[RAG应用]
B -->|依赖| C[向量数据库]
C -->|海量需求| D[市场爆发]
D -->|资本涌入| E[产品成熟]
style A fill:#e1f5fe
style B fill:#fff3e0
style C fill:#e8f5e8
style D fill:#ffccbc
style E fill:#c8e6c9
六、技术演进规律总结¶
演进的驱动力¶
mindmap
root((向量数据库演进驱动力))
算法突破
KD-Tree
LSH
HNSW
PQ
硬件进步
GPU加速
大内存
SSD普及
深度学习
Word2Vec
Transformer
多模态模型
市场需求
语义搜索
RAG爆发
多模态AI
关键技术节点回顾¶
| 年份 | 技术/产品 | 意义 |
|---|---|---|
| 2003 | LSH | 解决了高维数据检索问题 |
| 2011 | PQ | 实现了向量压缩存储 |
| 2013 | Word2Vec | 证明了语义向量表示的可行性 |
| 2017 | FAISS | 首个工业级向量检索库 |
| 2019 | HNSW | 实现了极速高精度的向量搜索 |
| 2020 | Pinecone | 开启了云原生向量数据库时代 |
| 2023 | RAG爆发 | 向量数据库成为AI基础设施 |
本章小结¶
本章要点:
- 萌芽期(1970-2000):最近邻搜索问题被提出,早期算法遭遇维度灾难
- 算法突破期(2003-2011):LSH和PQ算法奠定了理论基础
- 深度学习驱动期(2013-2017):Word2Vec和Transformer证明了向量表示的可行性
- 现代数据库期(2017-至今):FAISS开源、HNSW成熟、云服务兴起、RAG爆发
下一章预告:第3章:核心原理 - 深入理解向量表示、距离计算和索引结构 →