引言:向量搜索的崛起与核心挑战
随着大语言模型和多模态AI的爆发,向量嵌入(Embedding)已成为现代AI应用的基石。从语义搜索、推荐系统到RAG(检索增强生成),几乎所有AI系统的核心环节都依赖于大规模向量搜索引擎的高效运转。本文将从算法原理、工程实现和架构设计三个维度,深入解析当前最主流的向量搜索技术。
1. 近似最近邻搜索(ANN)的算法谱系
向量搜索本质上是在高维空间中寻找与查询向量距离最近的k个点。精确解法(暴力扫描)的复杂度为O(N·d),无法应对十亿级向量规模。近似最近邻(ANN)算法通过牺牲少量精度换取数量级的性能提升,成为工业界的标准方案。
1.1 基于图的索引:HNSW(Hierarchical Navigable Small World)
HNSW是目前综合性能最优的ANN索引之一。其核心思想是构建一个多层跳表式的近邻图:
- 多层结构:第0层包含所有节点,上层按指数衰减概率采样节点,形成快速公路
- 贪婪路由:从最高层开始,每层贪婪移动到更接近目标的邻居,逐层下沉
- 搜索复杂度:O(log N),实际搜索仅需数百次距离计算即可在十亿级数据集中定位目标
- 构建复杂度:O(N log N),支持增量插入但重建成本较高
关键参数包括M(每节点的最大边数)、ef_construction(构建时的候选集大小)和ef_search(搜索时的候选集大小),需要在recall、速度和内存之间权衡。
1.2 基于量化的方法:PQ(Product Quantization)
乘积量化通过向量分解实现高维向量的有损压缩,将存储和计算成本降低一个数量级:
- 将d维向量切分为m个子空间,每个子空间用k-means聚类(通常k=256)
- 每个子向量用聚类中心ID编码,原始d×4字节压缩为m字节 li>ADC(非对称距离计算):维护查询向量的距离查找表,查表求和代替浮点运算
- 典型压缩比:FP32 → 1/16到1/32,配合IVF-PQ可实现十亿级索引
1.3 ScaNN:各向异性量化的新范式
Google提出的ScaNN(Scalable Nearest Neighbors)引入各向异性量化,核心洞察是向量在不同方向上的搜索敏感度不同:
- 沿方差大的方向使用更多比特编码,方差小的方向用更少比特
- 通过优化漂移边界(drift boundary)保证各向异性距离的误差上界
- 在ann-benchmarks测试中,同等内存预算下recall@1比PQ提升5-10%
2. 主流向量搜索引擎架构对比
当前业界三大开源方案各有侧重,代表了三条不同的工程路线:
| 引擎 | 核心索引 | 适用场景 | 分布式 |
|---|---|---|---|
| Faiss | IVF/PQ/HNSW/SCNN | 研究/单机高性能 | 有限(CPU集群) |
| Milvus | HNSW/DiskANN/IVF-PQ | 企业级生产环境 | 原生分布式 |
| Qdrant | HNSW+自定义优化 | Rust生态/嵌入式 | Raft共识 |
2.1 Milvus的全链路设计
Milvus 2.x采用存算分离架构,核心模块包括:
- Proxy:接入层,负责请求鉴权、DML/DQL转写和结果合并
- Coordinator:元数据管理,包括数据分配、时间戳同步和GC策略
- DataNode:流数据写入,维护WAL并定期flush为sealed segment
- QueryNode:segment加载与查询执行,支持多副本与BulkLoad
- Object Storage:S3/MinIO持久化存储segment数据和索引文件
查询路径:Proxy收到请求→路由到所有QueryNode→各Node在本地的segment上执行ANN搜索→Proxy归并top-k结果→返回。
2.2 DiskANN:突破内存限制的工程创新
Microsoft Research提出的DiskANN解决了十亿级向量无法全部驻留内存的难题:
- 在SSD上构建压缩的Vamana图索引,保持10亿向量仅需~30GB SSD空间
- 利用SSD的随机读取能力,配合缓存热点的beam search策略
- 在64GB RAM + NVMe SSD上实现10亿级向量P95延迟<5ms>
3. 查询图引擎(VII)在生产中的关键挑战
部署向量搜索引擎面临的核心工程难题:
- 混合搜索:向量+标量过滤的组合查询。标量过滤比例高时,先过滤后搜索的ROI远大于先搜索后过滤
- 增量更新:HNSW不支持高效删除(需lazy deletion标记),定期重建索引是常见做法
- 冷启动:新数据聚类中心偏移时IVF-PQ退化严重,需要Adaptive Reassignment策略
- 多租户隔离:通过Partition Key实现逻辑隔离,配合资源配额防止Noisy Neighbor
4. 前沿趋势
- 稀疏向量 + BM25融合:Splade等稀疏编码器与传统倒排索引互补,解决专有名词和精确术语匹配问题
- GPU加速索引:RAPIDS cuVS将HNSW和IVF-PQ计算offload到GPU,查询吞吐提升5-10x
- 学习型索引:基于位置敏感哈希(LSH)数据分布动态调整桶大小,逐步替代静态ANN参数
- RAG驱动架构演进:向量数据库与LLM编排框架深度集成,检索+重排+生成端到端优化
结语
向量搜索引擎已从学术研究走向大规模工业部署,其技术演进反映了AI基础设施的核心趋势:算法与系统的协同设计。对于掌握向量数据库的原理和调优,是构建高质量AI应用不可或缺的关键能力。

发表评论 取消回复