0

优化开源向量数据库:与 Andrey Vasnetsov 对话

Demetrios Brinkmann

·

January 10, 2024

Optimizing an Open Source Vector Database with Andrey Vasnetsov

优化开源向量搜索:Qdrant 的 Andrey Vasnetsov 带来的策略

“对于像 Qdrant 这样的系统,在我看来,可扩展性和性能比事务一致性重要得多,因此它应该被视为搜索引擎而不是数据库。”
– Andrey Vasnetsov

Andrey 在讨论搜索引擎和数据库的核心区别时,强调了在为向量搜索任务选择数据库时,应用程序需求和可扩展性的重要性。

Andrey Vasnetsov,Qdrant 的 CTO,是开源、机器学习和向量搜索的热衷者。他致力于与向量相似性搜索和相似性学习相关的开源项目。他偏爱实践而非理论,偏爱可工作的演示而非 arXiv 论文。

您可以在 YouTube 上观看本期节目。

本期节目是卡内基梅隆大学数据库研究组的 ML⇄DB 研讨会系列(机器学习应用于数据库 + 数据库应用于机器学习)的一部分。

主要收获

与 Andrey 一起深入探讨向量数据库的复杂性,他将解析 Qdrant 如何结合过滤和向量搜索,揭示图遍历过程中的原地过滤如何在扩展到数十亿向量时,在不牺牲搜索精确性的情况下优化精度。

您将学到的 5 个关键见解

  • 🧠 子图策略:深入了解重叠区间和地理哈希区域如何增强向量搜索索引中的精度和连接性。

  • 🛠️ 引擎 vs 数据库:了解搜索引擎和关系数据库之间的区别,以及为什么考虑应用程序的需求对于可扩展性至关重要。

  • 🌐 将搜索与关系数据结合:获取关于集成关系搜索和向量搜索以提高效率和性能的见解。

  • 🚅 速度与精度策略:揭示通过调整 HNSW 索引中的波束大小来控制搜索精度和速度的技术。

  • 🔗 连接图挑战:了解在搜索操作期间进行过滤时维护连接图的困难。

有趣的事实:与传统的后过滤方法相比,Qdrant 系统能够在图遍历过程中进行原地过滤,这是一种新颖的方法,可确保结果数量符合过滤条件。

时间戳

00:00 向量和引擎领域的搜索专业人士。
09:59 Elasticsearch:可扩展,弱一致性,更适合向量搜索。
12:53 优化数据结构以提高处理效率。
21:41 向量索引需要特殊处理,例如 HNSW 的邻近图和贪婪搜索。
23:16 HNSW 索引:近似,精度控制,CPU 密集型。
30:06 后过滤效率低下,预过滤成本高昂。
34:01 基于元数据的过滤器;创建额外的连接链接。
41:41 向量维度影响比较速度,索引复杂度高。
46:53 重叠区间和子图以提高精度。
53:18 Postgres 限制可扩展性,额外的索引引擎提供更快的查询。
59:55 时间序列数据的嵌入模型解释。
01:02:01 更便宜的系统来服务数十亿向量。

Andrey 的更多引言

“它允许我们将向量压缩到一个维度仅用一位表示的程度,这使得向量总共压缩了 32 倍。”
– Andrey Vasnetsov 关于 AI 中的向量压缩

“我们构建重叠区间,并为这些区间构建带有额外链接的子图。我们也可以对位置数据做同样的事情,例如我们有地理坐标,即纬度和经度,我们将其编码为地理哈希,然后基本上为重叠的地理哈希区域构建这个额外的图。”
– Andrey Vasnetsov

“我们可以使用差分编码、变长字节编码等技术进一步压缩数据。这种总体的、结合的优化效果可以使不可变数据结构比可变结构效率提高一个数量级。”
– Andrey Vasnetsov

免费开始使用 Qdrant

开始使用