Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語
Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語

MyScale vs. PostgreSQL&OpenSearch:集成向量数据库的探索

在本文中,我们将比较 MyScale,一个提供完整 SQL 支持的集成向量数据库,与两个传统数据库:PostgreSQL 和 OpenSearch。这两个数据库最近都在其工具箱中添加了向量相似性搜索功能。

注意:

我们在开源项目 vector-db-benchmark (opens new window) 中,持续更新MyScale和其他向量数据库产品的基准测试结果。

大型语言模型(LLM)的出现增加了将对话界面集成到各种应用程序中的兴趣,例如搜索引擎、代码生成器和数据分析工具。向量相似性搜索是一项关键技术,通过“检索增强生成(RAG)”来提高 LLM 的性能。

市场上有各种各样的向量数据库产品;有些是专门为向量索引而设计的专用向量数据库,而其他一些是集成向量数据库或扩展支持向量搜索的通用数据库。

此外,与专用向量数据库相比,集成向量数据库具有以下几个明显优势:

  • 它们将向量和结构化数据存储在同一个数据库中,便于进行更复杂的过滤搜索以及 SQL 和向量联合查询。
  • 它们使用强大且广泛使用的查询语言(如 SQL)进行结构化和向量数据分析。
  • 它们利用通用数据库的成熟工具和集成。
  • 它们减少了专用技能和专用数据库的许可成本的额外劳动力成本。

我们要比较的三个集成向量数据库如下:

如下所述,我们的全面基准评估显示,MyScale 在过滤向量搜索准确性、性能、成本效益和索引构建时间方面远远超过其他产品。重要的是,MyScale 是唯一经过测试在各种过滤比率下都能提供良好的搜索准确性和 QPS 的产品

此外,MyScale 在性能上也超过了专用向量数据库,请参阅此文章 (opens new window)和我们的开源基准 (opens new window)获取更多详细信息。如下图所示,将完整的 SQL 支持与高性能的向量搜索相结合,使 MyScale 成为管理 AI/LLM 相关数据(包括结构化和向量化数据)的一个引人注目的选择

MyScale Comparison

# 基准设置

我们对 MyScale、OpenSearch 和两个 Postgres 向量搜索扩展进行了基准测试。具体信息如下。

数据库 Pod 类型 月费用(美元) 备注
MyScale (opens new window) Pod 尺寸:x1 120 目前免费提供开发层 (opens new window)
带有pgvector (opens new window)的 Postgres db.r6g.xlarge (opens new window)(4C 32GB) 329 亚马逊 RDS for PostgreSQL
带有pgvecto.rs (opens new window)的 Postgres db.r6g.xlarge (opens new window)(4C 32GB) 329 亚马逊 RDS for PostgreSQL
AWS OpenSearch Service (opens new window) r6g.2xlarge.search (opens new window)(8C 64GB) 488 亚马逊 OpenSearch Service 域

我们使用了 500 万个 768 维向量,这些向量是从LAION 2B images (opens new window)数据集生成的,用于向量搜索和过滤向量搜索测试。

注意:

完整的代码、数据集和结果可以在我们的基准页面 (opens new window)上找到。

我们选择了每个数据库中能够容纳所有向量的最小 Pod 类型。

由于最新版本的 pgvector 和 pgvector.rs 尚未被任何 PostgreSQL 云服务广泛采用,我们在运行基准测试时选择了自主托管。但是,为了比较,我们在上表中包含了亚马逊 RDS for PostgreSQL 的定价信息。

注意:

PostgresSQL 云服务(如Supabase (opens new window)TimeScaleDB (opens new window))可能会在类似的硬件配置上花费更多。

对于 OpenSearch,我们选择了 r6g.2xlarge.search(64GB 内存),因为我们在尝试在 r6g.xlarge.search(32GB 内存)实例上构建向量索引时遇到了问题。正如摘要所示,MyScale 仍然是最具成本效益的集成向量数据库。

# 基准结果

我们总结了以下发现:

# 向量搜索

下图中,x 轴表示精度,y 轴表示每个向量数据库的吞吐量(QPS)。我们发现:

  • MyScale 和两个 Postgres 扩展在 97% 精度下的吞吐量相似;
  • pgvector 和 pgvecto.rs 可以在较低精度下实现更高的吞吐量,但成本显著高于 MyScale;
  • OpenSearch 在所有精度下的速度都落后于其他数据库。

Throughput of Vector Search

# 过滤向量搜索

在实际场景中,纯向量搜索很少足够。向量通常附带元数据,用户通常需要对此元数据应用一个或多个过滤器。

下图描述了 MyScale(以及其他集成向量数据库)在过滤比率为 1% 的数据集上的吞吐量。1% 的过滤比率意味着在应用过滤条件后,仍然保留 50K 个向量(1% x 5M 个向量)。

Throughput of Filtered Vector Search

我们的研究结果揭示了以下信息:

  • pgvector 和 OpenSearch 的精度很低(小于 50%),在实践中几乎无法使用。
  • pgvecto.rs 的吞吐量相对较低(小于 10 QPS)。
  • 只有 MyScale 保持健康的吞吐量(66 - 144 QPS)和精度(93% - 99%)。

在这些数据库中实现过滤向量搜索时,有两种主要方法。

# 后过滤

这种方法首先进行向量搜索,然后删除不符合过滤条件的结果。不幸的是,使用此方法存在两个重大缺点:

  • 首先,搜索中的元素数量是不可预测的,因为过滤器应用于已经减少的候选列表。
  • 其次,如果过滤器非常严格,即仅与数据集大小相比仅匹配很小比例的数据点,则原始向量搜索可能根本不包含任何匹配项。

# 先过滤

pgvector 和 OpenSearch 的低精度归因于它们使用的后过滤方法。相比之下,MyScale 和 pgvector.rs 使用一种称为先过滤的不同方法。首先应用过滤器,然后将位图传递给向量索引以执行向量搜索。

在我们的基准测试中,pgvector.rs 使用的 HNSW 算法在过滤比率较低时表现不佳。此外,PostgreSQL 的基于行的存储对于先过滤中所需的大规模扫描操作不友好,这进一步加剧了性能不佳的问题。而 MyScale 通过结合 ClickHouse 的快速列式 SQL 执行引擎 (opens new window)和我们专有的MSTG 向量索引算法 (opens new window)解决了这个问题。

# 评估成本效益:纯向量搜索 vs. 过滤向量搜索

在选择数据库时,不仅要考虑原始性能,还要考虑投资带来的价值。成本效益,特别是在 95% 精度等较高精度下,成为进行大规模向量搜索的企业的关键标准。

Boost Your AI App Efficiency now
Sign up for free to benefit from 150+ QPS with 5,000,000 vectors
Free Trial
Explore our product

# 纯向量搜索

为了清楚地了解成本效益,我们通过检查每个数据库的月费用与其在大约 95% 精度下可以实现的每秒查询数(QPS)之间的关系,得出了每个数据库每 100 QPS 的成本。如下结果所示,MyScale 在成本效益方面表现出色,至少超过最接近的竞争对手 1.8 倍。

数据库 每 100 QPS 的月费用(美元)
MyScale 30
pgvector 54
pgvecto.rs 79
OpenSearch 613

# 过滤向量搜索(1% 过滤比率)

然而,许多实际场景需要更多的纯向量搜索。通常会对数据集应用过滤器,缩小结果范围。当我们评估 1% 过滤比率的过滤向量搜索的成本效益时,情况发生了变化。**值得注意的是,pgvector 和 OpenSearch 无法实现高于 50% 的精度。**这种低准确性在大多数情况下无法使用,因此在此分析中标记为 N/A。

数据库 每 100 QPS 的月费用(美元)
MyScale 96
pgvector N/A
pgvecto.rs 3290
OpenSearch N/A

总之,尽管 MyScale 在纯向量搜索中仍然是领先者,但在过滤向量搜索中,它的优势更加明显。MyScale 以极高的性能以及较低的成本提供了顶级的性能,为企业提供了最佳的投资回报。高精度、成本效益和性能的结合使 MyScale 成为有效利用集成向量数据库的明智选择。

# 索引构建时间

在向量插入向量数据库后,用户必须在执行向量搜索之前创建向量索引。构建索引所需的时间对于快速搜索结果至关重要,下表描述了四种不同向量数据库的构建时间:

数据库 上传和构建时间
MyScale 32 分钟
Pgvector 10.9 小时
Pgvecto.rs 80 分钟
OpenSearch 45 分钟

这些结果显示,MyScale 是构建时间最快的明显领先者,而 pgvector 由于缺乏并行构建支持而在构建 HNSW 向量索引时非常慢。快速构建索引对于应用程序需要插入和更新大量向量(例如大规模在线聊天、文档编辑等)非常重要,还减少了索引构建和向量搜索之间的资源争用。

# 结论

经过详尽的分析,MyScale 始终超越竞争对手,在过滤向量搜索和快速索引构建时间方面展现出卓越的性能。在所有经过测试的产品中,MyScale 是唯一一个在各种过滤比率下都能提供高搜索准确性和 QPS 的集成向量数据库。MyScale 与其他产品的区别在于其出色的成本效益,使其成为强大的集成向量数据库选择和经济上明智的选择。对于希望利用集成向量数据库能力的组织来说,MyScale 凭借其卓越的性能、精度和性价比的结合成为顶级竞争者。

Join Our Newsletter

# 进一步探索

为了更深入地了解 MyScale 在性能方面与专用向量数据库的匹配情况,我们建议阅读这篇文章 (opens new window)

对于那些考虑将其向量数据从 PostgreSQL 迁移到 MyScale 的人来说,这篇指南 (opens new window)提供了宝贵的见解和逐步说明。

Keep Reading
images
RAG vs. 大背景LLM:RAG将继续存在

生成AI(GenAI)的迭代速度呈指数增长。其中一个结果是上下文窗口的扩展,即一个大型语言模型(LLM)一次可以使用的标记数量,用于生成响应。 2024年2月发布的Google Gemini 1.5 Pro创下了迄今为止最长的上下文窗口记录:100万个标记,相当于1小时的视频或70万个单词。Gemini在处理长上下文方面的出色表现使一些人宣称“检索增强生成(RAG)已经死了”。他们说,LLM已经 ...

images
介绍 MyScale 强大的全文和混合搜索功能

MyScale 是一个基于 ClickHouse 构建的全面托管的 SQL 向量数据库,提供先进的向量搜索功能。在 MyScale 的 1.5.0 版本中,我们引入了由 Tantivy 提供支持的升级版全文搜索功能。 通过实现 BM25 算法来计算搜索结果的相关性得分,显著提高了 MyScale 的全文搜索功能。BM25 算法是文本搜索中的关键特性,它提供了一种根据与原始查询的相关性对搜索结果进 ...

images
如何从Hugging Face微调LLM

大型语言模型(LLM)由于transformers和大量的训练数据,具有多功能性和出色的性能。通常,LLM是通用的,没有特定的训练目的。例如,GPT-4可以进行语言翻译、文本生成、问答等多种功能 ...

Start building your Al projects with MyScale today

Free Trial
Contact Us