向量库(Vector Database)概述
向量库(Vector Database)概述
1. 核心概念
-
向量
高维空间中的数值数组,通常由模型(如BERT、ResNet)将非结构化数据(文本、图像等)转换为嵌入向量。 -
向量相似性
衡量方法:余弦相似度、欧氏距离、内积等。 -
近似最近邻搜索(ANN)
牺牲一定精度以换取高搜索速度,适用于大规模数据场景。
2. 核心功能
2.1 高效相似性搜索
- 支持Top-K相似结果检索。
- 应用场景:推荐系统、语义搜索、以图搜图。
2.2 向量存储与管理
- 动态增删改查、数据分片、压缩、版本控制。
2.3 分布式与扩展性
- 水平扩展支持PB级数据,GPU/TPU加速计算。
3. 技术原理
3.1 索引结构
索引类型 | 描述 |
---|---|
倒排索引(IVF) | 将向量聚类为桶,仅搜索相关桶 |
树结构 | KD-Tree/Ball-Tree,适用于低维数据 |
图索引(HNSW) | 分层导航小世界图,平衡速度与精度 |
哈希(LSH) | 局部敏感哈希将相似向量映射到相同桶 |
量化(PQ) | 乘积量化压缩向量,降低存储成本 |
3.2 存储与计算优化
- 压缩技术:标量量化(SQ)、乘积量化(PQ)。
- 分片与副本:数据分片存储,副本提升可用性。
- 硬件加速:Faiss-GPU、CUDA优化。
4. 应用场景
- 推荐系统
用户行为向量匹配相似商品。 - 图像检索
以图搜图、视频内容匹配。 - NLP语义搜索
问答系统、文本去重。 - 异常检测
通过向量距离识别欺诈行为。 - 生物信息学
DNA序列比对、蛋白质结构分析。
5. 主流工具对比
工具 | 特点 | 适用场景 |
---|---|---|
FAISS | Meta开源,CPU/GPU加速,高性能ANN | 大规模检索 |
Milvus | 分布式,多索引支持 | 企业级应用 |
Pinecone | 全托管云服务,自动扩展 | 云原生应用 |
Elasticsearch | 支持文本+向量混合搜索(8.0+) | 多条件过滤场景 |
pgvector | PostgreSQL扩展,关系型数据库集成 | 结构化+向量联合查询 |
6. 挑战与趋势
挑战
- 维度灾难:高维数据计算复杂度高。
- 实时更新:动态数据索引重建成本高。
- 多模态检索:跨模态(文本+图像)统一搜索。
趋势
- 硬件协同:TPU/FPGA加速计算。
- 混合搜索:向量+关键词+过滤条件组合。
- 标准化:统一查询语言(如VQL)。
7. 总结
向量库是AI基础设施的核心组件,通过高效的ANN搜索赋能推荐、搜索、风控等场景。选型需权衡数据规模、延迟、精度和运维成本,未来在多模态与硬件优化方向潜力显著。