一、概念
向量库是为“向量”(embeddings)而生的数据库:它存储由文本、图片、音频等数据通过嵌入模型转换出的高维向量,并提供基于相似度(如余弦、内积、L2 距离)的近邻检索能力。相比只做精确匹配的关键词搜索,向量库擅长找“语义相近”的内容,用于语义搜索、推荐、RAG 等任务。
二、为什么需要
传统检索只能匹配词面;向量检索能理解“意思相近”。例如查询“健康零食”时,向量搜索能返回“低卡零食、燕麦棒”等语义相近结果,而不是只含“健康”二字的文本。对接大模型时,向量库还能把与问题最相关的外部知识取回到提示词中,显著减少“编造”。
三、工作流程(简化版)
1)用嵌入模型把数据转成向量,并连同元数据一起写入向量库;
2)建立索引(常见有 HNSW、IVF、PQ 或精确 Flat)以平衡速度、内存与召回率;
3)查询时把问题也编码成向量,做 k 近邻检索(kNN/ANN),再按分数与过滤条件返回结果;
4)在搜索场景可做“混合检索”:将 BM25 关键词分数与向量相似度融合,兼顾相关性与召回。
四、关键点速览
- 指标:常看 recall@k、延迟(p95/99)、吞吐与成本。
- 距离度量:余弦与内积常用于文本;L2 常用于部分视觉嵌入。注意是否需要向量归一化。
- 索引选择:小规模可用 HNSW 或精确检索;数据量上千万时,常用 IVF/PQ 等分簇与量化技术以省内存、提速度。
- 数据与一致性:语料更新需重建/增量构建索引;嵌入模型升级后要考虑“重嵌入”与版本化。
- 生态形态:既有专用向量库(如 Milvus、Weaviate),也有在通用数据库/搜索引擎上的向量能力(如 PostgreSQL+pgvector、OpenSearch/Elastic)。
五、常见应用
语义搜索、RAG 检索增强生成、相似内容去重、推荐召回、多模态检索(图文音视频)、异常检测与度量学习等。