详细内容或原文请订阅后点击阅览
大规模的 HNSW:为什么您的 RAG 系统会随着矢量数据库的增长而变得更糟
近似向量搜索如何默默地降低召回率 - 以及如何处理它大规模的 HNSW 帖子:为什么随着向量数据库的增长,你的 RAG 系统变得更糟,首先出现在《走向数据科学》上。
来源:走向数据科学现代矢量数据库 - Neo4j、Milvus、Weaviate、Qdrant、Pinecone - 分层可导航小世界 (HNSW) 很有可能已经为您的检索层提供支持。您很可能在构建数据库时没有选择它,也没有调整它,甚至不知道它在那里。然而,HNSW 正在悄悄地决定你的法学硕士认为什么是真相。它决定将哪些文档块输入到您的 RAG 管道中、您的代理回忆起哪些记忆,以及最终模型是否正确回答或自信地产生幻觉。
随着矢量数据库的增长,检索质量逐渐下降:
但是,即使嵌入模型和距离度量保持不变,上下文质量也会随着时间的推移而恶化,并且您的 RAG 系统的可靠性也会降低。
在本文中,我将使用受控实验和真实数据演示 HNSW 如何随着数据库大小的增长而影响检索质量、为什么这种降级比平面搜索更糟糕,以及在生产 RAG 系统中您可以实际采取哪些措施。
具体来说,我会:
什么是 HNSW?
HNSW 是一种基于图的近似最近邻 (ANN) 搜索算法。它将数据组织成多层相连的邻居,并使用这种图结构来加速搜索。
HNSW指数参数
1.构建时参数:M和ef_construction。只能在建库前设置。
对于通用 RAG 应用,M 的典型值在 12 到 48 之间,ef_construction 的典型值在 64 到 200 之间。
2.查询时参数:ef_search
