向量库(VectorDatabase)
- 开源代码
- 2025-09-01 11:06:01

向量库
1. 向量库发展史 早期阶段(2000s) 基于关系型数据库的扩展(如 PostgreSQL 的向量插件)。简单相似度计算(如欧氏距离、余弦相似度)。 专用向量库的兴起(2010s) FAISS(Facebook AI Research,2017):首个高效向量检索库。Annoy(Spotify,2013):基于树的近似最近邻搜索。Milvus(2019):首个开源分布式向量数据库。 现代阶段(2020s) 云原生向量库(如 Pinecone、Weaviate)。多模态支持(文本、图像、视频向量统一管理)。与 AI 生态深度集成(如结合大语言模型)。
2. 向量库核心技术点
核心组件
索引结构:支持高效查询的数据结构(哈希、树、图、量化等)。相似度算法:余弦相似度、欧氏距离、内积等。分布式架构:水平扩展、负载均衡、容灾恢复。存储优化:压缩技术(如 PQ 乘积量化)、内存管理。核心功能
向量插入、删除、更新。近似最近邻搜索(ANN)。混合查询(向量 + 结构化数据过滤)。3. 相似度搜索算法分类
基于哈希(Hash-based)
局部敏感哈希(LSH) 原理:通过哈希函数将相似向量映射到相同桶。适用场景:高维数据快速检索。支持的库:FAISS(LSH 索引)、Vald。 多探针 LSH 改进:允许跨桶搜索,提高召回率。基于树(Tree-based)
KD-Tree 原理:递归划分高维空间。缺点:高维数据效率低。 Ball Tree 改进:以超球体划分空间,适合高维数据。 Annoy(Approximate Nearest Neighbors Oh Yeah) 原理:构建多棵二叉树,通过投票机制合并结果。支持的库:Annoy、Elasticsearch(部分支持)。基于图(Graph-based)
HNSW(Hierarchical Navigable Small World) 原理:构建分层图结构,快速导航到近邻。优势:高召回率、低延迟。支持的库:FAISS、Milvus、Weaviate。 NSG(Navigating Spreading-out Graph) 改进:优化图结构,减少内存占用。基于量化(Quantization-based)
IVF(Inverted File Index) 原理:聚类向量,建立倒排索引。支持的库:FAISS、Milvus。 PQ(Product Quantization) 原理:将高维向量分解为子空间并量化。优势:大幅减少内存占用。支持的库:FAISS、Milvus。混合方法
IVF-PQ:结合倒排索引和乘积量化。HNSW + IVF:分层图与聚类结合。4. 主流向量库推荐
开源向量库
FAISS 特点:高性能、支持多种索引(IVF、HNSW、PQ)。适用场景:单机小规模数据。 Milvus 特点:分布式、支持混合查询、云原生。适用场景:大规模生产环境。 Weaviate 特点:内置多模态模型、GraphQL 接口。 Annoy 特点:轻量级、基于树的索引。商业/云服务
Pinecone 特点:全托管、自动索引优化、低延迟。 Zilliz Cloud 特点:基于 Milvus 的云服务,企业级功能。5. 学习方法与资源
学习路径
基础理论:线性代数(向量空间、距离度量)、数据结构(树、图)。工具实践:FAISS/Milvus 官方文档、示例代码。算法深入:阅读论文(如 HNSW、PQ 的原始论文)。推荐资源
书籍: 《Nearest Neighbor Search: A Database Perspective》《Similarity Search and Applications》 论文: HNSW(arXiv:1603.09320)PQ(arXiv:1009.4579) 在线课程: Coursera《Approximate Nearest Neighbor Search for Machine Learning》 社区: GitHub(FAISS、Milvus 仓库)。知乎、Stack Overflow 技术讨论。动手实践
使用 FAISS 实现 IVF-PQ 索引。在 Milvus 中部署分布式向量检索服务。对比 HNSW 与 IVF 的召回率与性能。6. 使用向量库的典型流程
数据准备
生成向量(使用预训练模型如 BERT、ResNet)。数据清洗与归一化。索引构建
选择算法(HNSW、IVF-PQ 等)。配置参数(如聚类数、量化维度)。查询优化
调整搜索参数(nprobe、efSearch)。混合过滤(结合结构化条件)。性能监控
召回率(Recall)与延迟(Latency)权衡。资源占用(内存、CPU/GPU 利用率)。7. 重要补充技术
量化技术(Quantization)
标量量化(SQ):降低向量精度(如 float32 → int8)。残差量化(RQ):多阶段量化提升精度。近邻图算法变种
NGT(Neighborhood Graph and Tree):结合图与树结构。SPTAG(微软):基于图的分布式索引。GPU 加速
RAPIDS RAFT:基于 CUDA 的加速库。Milvus GPU 版:支持 GPU 索引构建与查询。8. 应用场景 推荐系统:用户/商品向量匹配。图像检索:以图搜图、版权检测。自然语言处理:语义搜索、问答系统。生物信息学:基因序列比对。
9. 未来趋势 自动化索引调优:基于机器学习的参数优化。多模态统一检索:文本、图像、视频跨模态搜索。边缘计算:轻量级向量库在端侧设备的应用。
通过此大纲,您可以从理论到实践全面掌握向量库的核心知识,并选择合适的工具与算法解决实际问题。
向量库(VectorDatabase)由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“向量库(VectorDatabase)”
下一篇
2.18学习总结