向量搜索
概览
向量搜索实现的全面指南。
前提条件
- 理解向量数学和线性代数
- 熟悉 numpy 和数值计算
- 了解相似性度量(余弦相似度、欧几里得距离、点积)
- 理解索引和数据结构
- 有 FAISS 或类似库的经验
- 了解 GPU 计算概念
核心概念
- 向量搜索:使用相似性度量在高维向量空间中寻找最近邻
- HNSW(层次化可导航小世界):使用基于图的索引的近似最近邻算法
- IVF(倒排文件索引):将向量聚类到 Voronoi 单元中以加快搜索速度
- Flat Index:不使用近似的精确最近邻搜索
- 余弦相似度:使用向量之间角度的余弦值来衡量相似性
- 欧几里得距离:在向量空间中衡量两个向量的直线距离
- 点积:通过计算向量的点积来衡量相似性
- FAISS:Facebook AI 相似性搜索库,用于高效的向量搜索
- GPU 加速:使用 GPU 加速向量操作和搜索
- 元数据过滤:根据相关元数据过滤搜索结果
- 混合搜索:将向量搜索与关键字搜索结合起来以获得更好的结果
- 查询优化:提高查询性能的技术(归一化、扩展、增强)
- 重排:使用次级评分方法改善搜索结果
- 索引压缩:使用量化技术减小索引大小
- 分片:将向量索引分布到多个分片以实现水平扩展
- 复制:创建向量索引的多个副本以实现高可用性
- Recall@K:衡量不同 k 值下召回率的评估指标
- MAP(平均精度均值):评估排名质量的指标
- 增量更新:添加新向量而无需重建整个索引
- 批量处理:一起处理多个操作以提高效率