gpt4 book ai didi

vespa - 使用单独命名空间的 ANN 性能

转载 作者:行者123 更新时间:2023-12-05 04:28:36 25 4
gpt4 key购买 nike

我正在尝试执行 ANN,但我的数据被分成多个分区或“租户”。搜索始终仅限于单个租户,这只占文档总数的一小部分。

我首先尝试在租户字符串属性上使用过滤器来实现这一点。然而,我遇到了this piece of documentation ,这表明性能会很差:

There is a small problem here however. If the eligibility list is small in relation to the number of items in the graph, skipping occurs with a high probability. This means that the algorithm needs to consider an exponentially increasing number of candidates, slowing down the search significantly. To solve this, Vespa.ai switches over to a brute-force search when this occurs. The result is a efficient ANN search when combined with filters.

解决我的问题的最佳方法是什么?将我的数据分成单独的 namespaces触发为每个命名空间创建单独的 HNSW 图?

最佳答案

性能会很好,查询规划器只会选择不对这些查询使用 ANN 索引。您将在这篇博文中找到有关此主题的很多详细信息,包括如何调整它:https://blog.vespa.ai/constrained-approximate-nearest-neighbor-search/

如果所有您的查询都是针对单个租户的,这只占文档总数的一小部分,我认为您根本不需要创建 HNSW 索引,但这取决于绝对数字和最大的“小百分比”。

(命名空间在这里不相关 - 它们唯一的目的是安全地向 id 添加字符串,这样您就可以拥有多个 id 来源,并且仍然保证全局唯一性。)

关于vespa - 使用单独命名空间的 ANN 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72566416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com