跳转到主要内容

VectorChord 技术博客与版本发布

VectorChord 技术博客与版本发布
使用 VectorChord 在 PostgreSQL 中实现 10,000 QPS 的向量搜索 vectorsearchvectorchord
VectorChord-BM25:用 BM25 排序彻底革新 PostgreSQL 搜索——速度比 ElasticSearch 快 3 倍 postgresqlvectorchord
我们真的需要专门的向量数据库吗?(2023) postgresql
VectorChord 0.2:支持 60,000 维向量,ARM 架构下索引速度提升 50% releasepostgresqlvectorchord
在 PostgreSQL 中使用 ColBERT 重排序为向量搜索赋能 colbert
ARM + VectorChord:高性价比的快速向量搜索 postgresqlvectorchord
为什么 HNSW 不是终极答案 postgresql
VectorChord 外部聚类中心构建的优势与操作步骤 vectorsearchvectorchord
VectorChord:在 PostgreSQL 中仅花 $1 存储 40 万向量 vectorchord
推出 PGVecto.rs Cloud:PostgreSQL 可扩展向量搜索现已上云 vector-database
为 PGVecto.rs Cloud 引入 Terraform 支持 postgresql
释放稀疏向量的强大潜能 sparsevectors
pg_bestmatch.rs:用 BM25 全面提升 PostgreSQL 文本查询能力 rag
我的二值向量搜索比你的 FP32 向量更强 postgresql
2024 年 pgvector vs. pgvecto.rs:PostgreSQL 向量搜索全方位对比
我们真的需要专门的向量数据库吗? ai
使用 pgvecto.rs 在 LangChain 中构建大语言模型应用 ai
使用 LlamaIndex 与 pgvecto.rs 构建 RAG 流水线 ai

为什么 HNSW 不是终极答案

2765 字 6 分钟

HNSW(分层可导航小世界图)已成为众多向量数据库的首选算法。其多层图结构以及高效遍历向量嵌入的能力使其备受青睐……

我们真的需要专门的向量数据库吗?

5007 字 11 分钟

随着大语言模型(LLM)的普及,向量数据库也成为了热门话题。只需寥寥几行简单的 Python 代码,向量数据库就能充当 LLM 的外挂大脑……

  • 使用 VectorChord 在 PostgreSQL 中实现 10,000 QPS 的向量搜索

    发布于 工程实践 2389 字 5 分钟

    vectorsearchvectorchord

    VectorChord 是一款专为可扩展、高性能且磁盘友好的向量相似度搜索而设计的 PostgreSQL 扩展,也是 pgvecto.rs 的继任者。在我们之前的博客文章中,我们展示了仅需每月 $250 的成本,VectorChord 就能在 1 亿规模的向量数据集上以 0.95 的精度实现 131 QPS——展现了大规模向量搜索中令人印象深刻的高性价比。 在此基础上,本文将聚焦于极致性能,探讨如何借助 VectorChord 在 PostgreSQL 中实现 10,000 QPS。我们将为您详 …

    VectorChord 是一款专为可扩展、高性能且磁盘友好的向量相似度搜索而设计的 PostgreSQL 扩展,也是 pgvecto.rs 的继任者。在我们之前的博客文章中,我们展示了仅需每月 $250 的成本,VectorChord 就能在 1 亿规模的向量数据集上以 0.95 的精度实现 131 QPS——展现了大规模向量搜索中令人印象深刻的高性价比。 在此基础上,本文将聚焦于极致性能,探讨如何借助 VectorChord 在 PostgreSQL 中实现 10,000 QPS。我们将为您详 …

  • VectorChord-BM25:用 BM25 排序彻底革新 PostgreSQL 搜索——速度比 ElasticSearch 快 3 倍

    发布于 工程实践 5376 字 11 分钟

    postgresqlvectorchord

    我们非常高兴与大家分享一款重磅新作:VectorChord-BM25,这是一款旨在让 PostgreSQL 全文检索更上一层楼的全新扩展。无论您是在构建小型应用还是管理大规模系统,这款工具都能将先进的 BM25 评分与排序能力直接引入 PostgreSQL,让您的搜索更智能、更迅速。 有哪些新特性? BM25 评分与排序:借助 BM25 获得更精准、更相关的搜索结果,助您快速定位最重要的信息。 优化的索引结构:得益于 Block WeakAnd 算法,即便面对大规模数据集,搜索也能更加快速高效。 …

    我们非常高兴与大家分享一款重磅新作:VectorChord-BM25,这是一款旨在让 PostgreSQL 全文检索更上一层楼的全新扩展。无论您是在构建小型应用还是管理大规模系统,这款工具都能将先进的 BM25 评分与排序能力直接引入 PostgreSQL,让您的搜索更智能、更迅速。 有哪些新特性? BM25 评分与排序:借助 BM25 获得更精准、更相关的搜索结果,助您快速定位最重要的信息。 优化的索引结构:得益于 Block WeakAnd 算法,即便面对大规模数据集,搜索也能更加快速高效。 …

  • 我们真的需要专门的向量数据库吗?(2023)

    发布于 工程实践 5075 字 11 分钟

    postgresql

    注:本文最初发表于 2023 年,探讨了专用向量数据库的适用性与必要性,特别是它与 Postgres 及其能力之间的关系。如需了解关于此话题的更多见解与讨论,请参阅以下链接:Do we really need a specialized vector database? | Hacker News。 随着大语言模型(LLM)的普及,向量数据库也成为了热门话题。只需寥寥几行简单的 Python 代码,向量数据库就能充当 LLM 廉价却高效的“外挂大脑”。但我们真的需要一个专门的向量数据库吗? 为 …

    注:本文最初发表于 2023 年,探讨了专用向量数据库的适用性与必要性,特别是它与 Postgres 及其能力之间的关系。如需了解关于此话题的更多见解与讨论,请参阅以下链接:Do we really need a specialized vector database? | Hacker News。 随着大语言模型(LLM)的普及,向量数据库也成为了热门话题。只需寥寥几行简单的 Python 代码,向量数据库就能充当 LLM 廉价却高效的“外挂大脑”。但我们真的需要一个专门的向量数据库吗? 为 …

  • VectorChord 0.2:支持 60,000 维向量,ARM 架构下索引速度提升 50%

    发布于 版本发布 1820 字 4 分钟

    releasepostgresqlvectorchord

    今天,我们非常激动地向大家分享 VectorChord 0.2——这是一个凝聚了社区反馈、旨在应对 PostgreSQL 向量搜索不断演进的挑战而打造的新版本。 %[https://github.com/tensorchord/VectorChord/] 优化存储布局:支持高达 60,000 维向量 在 PostgreSQL 中,基础存储单元是 8KB 的数据页(Page)。虽然这种设计对于大多数常规负载非常稳健,但它也给高维向量搜索等现代应用场景带来了限制。例如,受限于固定的页面大小 …

    今天,我们非常激动地向大家分享 VectorChord 0.2——这是一个凝聚了社区反馈、旨在应对 PostgreSQL 向量搜索不断演进的挑战而打造的新版本。 %[https://github.com/tensorchord/VectorChord/] 优化存储布局:支持高达 60,000 维向量 在 PostgreSQL 中,基础存储单元是 8KB 的数据页(Page)。虽然这种设计对于大多数常规负载非常稳健,但它也给高维向量搜索等现代应用场景带来了限制。例如,受限于固定的页面大小 …

  • 在 PostgreSQL 中使用 ColBERT 重排序为向量搜索赋能

    发布于 工程实践 1335 字 3 分钟

    colbert

    传统的向量搜索方法通常采用句子级嵌入(sentence embeddings)来定位相似内容。然而,通过对词元嵌入(token embeddings)进行池化来生成句子嵌入,可能会牺牲词元级别所蕴含的细粒度细节。ColBERT 通过将文本表示为词元级多向量(multi-vectors)而非单个聚合向量,克服了这一局限。这种方法利用词元级的上下文后期交互(contextual late interaction),使 ColBERT 相比仅依赖句子嵌入的方法能够保留更微妙的语义信息,并提高搜索准确度 …

    传统的向量搜索方法通常采用句子级嵌入(sentence embeddings)来定位相似内容。然而,通过对词元嵌入(token embeddings)进行池化来生成句子嵌入,可能会牺牲词元级别所蕴含的细粒度细节。ColBERT 通过将文本表示为词元级多向量(multi-vectors)而非单个聚合向量,克服了这一局限。这种方法利用词元级的上下文后期交互(contextual late interaction),使 ColBERT 相比仅依赖句子嵌入的方法能够保留更微妙的语义信息,并提高搜索准确度 …

  • ARM + VectorChord:高性价比的快速向量搜索

    发布于 工程实践 1072 字 3 分钟

    postgresqlvectorchord

    ARM64 正悄然成为高性价比云服务器的首选架构,尤其是在 AWS 上。借助 Graviton 系列(Graviton3 和 Graviton4)等基于 ARM 的处理器,你可以在不牺牲性能的前提下节省一大笔开销。这些 ARM64 实例比传统的 x86 实例实惠得多,是在云端平衡成本与性能的可靠选择。 话虽如此,由于 ARM 的架构与 x86 不同,未针对其进行优化的软件可能会因为指令模拟或缺乏优化而运行缓慢。这正是 VectorChord 大显身手的地方——它是一款专为可扩展、高性能且磁盘高效 …

    ARM64 正悄然成为高性价比云服务器的首选架构,尤其是在 AWS 上。借助 Graviton 系列(Graviton3 和 Graviton4)等基于 ARM 的处理器,你可以在不牺牲性能的前提下节省一大笔开销。这些 ARM64 实例比传统的 x86 实例实惠得多,是在云端平衡成本与性能的可靠选择。 话虽如此,由于 ARM 的架构与 x86 不同,未针对其进行优化的软件可能会因为指令模拟或缺乏优化而运行缓慢。这正是 VectorChord 大显身手的地方——它是一款专为可扩展、高性能且磁盘高效 …

  • 为什么 HNSW 不是终极答案

    发布于 工程实践 2765 字 6 分钟

    postgresql

    HNSW(Hierarchical Navigable Small World,分层可导航小世界图)已成为众多向量数据库的首选算法。其多层图结构以及高效导航向量嵌入的能力使其格外具有吸引力。然而,尽管拥有诸多显著优势,对于大规模且动态变化的向量相似度搜索而言,HNSW 可能并非最优解。在本文中,我们将挑战 HNSW 的主导地位,并探讨为什么基于磁盘的替代方案——例如 IVF(Inverted File Index,倒排文件索引)——在面对海量数据集时更具实用价值。 HNSW 的吸引力 HNSW …

    HNSW(Hierarchical Navigable Small World,分层可导航小世界图)已成为众多向量数据库的首选算法。其多层图结构以及高效导航向量嵌入的能力使其格外具有吸引力。然而,尽管拥有诸多显著优势,对于大规模且动态变化的向量相似度搜索而言,HNSW 可能并非最优解。在本文中,我们将挑战 HNSW 的主导地位,并探讨为什么基于磁盘的替代方案——例如 IVF(Inverted File Index,倒排文件索引)——在面对海量数据集时更具实用价值。 HNSW 的吸引力 HNSW …

  • VectorChord 外部聚类中心构建的优势与操作步骤

    发布于 工程实践 1442 字 3 分钟

    vectorsearchvectorchord

    聚类(Clustering)是向量搜索中的重要组成部分,而 K-means 算法依然是目前应用最广泛的技术之一。然而,它的简洁性也伴随着一个显著的缺点:密集的计算资源消耗使其在处理大规模数据集时往往力不从心。本文将探讨这一挑战产生的原因,并介绍如何利用外部构建(External Builds)来克服它,同时分享我们在实现这一方案过程中的技术洞察。 为什么需要外部构建 VectorChord 使用 IVF + RaBitQ 来执行向量搜索。IVF 聚类簇的质量会直接影响搜索精度和速度 …

    聚类(Clustering)是向量搜索中的重要组成部分,而 K-means 算法依然是目前应用最广泛的技术之一。然而,它的简洁性也伴随着一个显著的缺点:密集的计算资源消耗使其在处理大规模数据集时往往力不从心。本文将探讨这一挑战产生的原因,并介绍如何利用外部构建(External Builds)来克服它,同时分享我们在实现这一方案过程中的技术洞察。 为什么需要外部构建 VectorChord 使用 IVF + RaBitQ 来执行向量搜索。IVF 聚类簇的质量会直接影响搜索精度和速度 …

  • VectorChord:在 PostgreSQL 中仅花 $1 存储 40 万向量

    发布于 工程实践 2639 字 6 分钟

    vectorchord

    我们很高兴地宣布推出全新的 PostgreSQL 向量搜索扩展,为大规模向量管理提供极具性价比的解决方案。使用 VectorChord,您可以在 1 亿条 768 维向量数据集上执行 Top 10 查询时,以 0.95 的精度实现 131 QPS。整套环境可在单台机器上运行,每月成本仅为 $250。 这意味着您只需花费 $1 即可存储 40 万条向量,从而大幅节省成本:在同等价格下,可存储的向量数量是 Pinecone(存储优化型实例)的 6 倍,更是 pgvector/pgvecto.rs 的 …

    我们很高兴地宣布推出全新的 PostgreSQL 向量搜索扩展,为大规模向量管理提供极具性价比的解决方案。使用 VectorChord,您可以在 1 亿条 768 维向量数据集上执行 Top 10 查询时,以 0.95 的精度实现 131 QPS。整套环境可在单台机器上运行,每月成本仅为 $250。 这意味着您只需花费 $1 即可存储 40 万条向量,从而大幅节省成本:在同等价格下,可存储的向量数量是 Pinecone(存储优化型实例)的 6 倍,更是 pgvector/pgvecto.rs 的 …

  • 推出 PGVecto.rs Cloud:PostgreSQL 可扩展向量搜索现已上云

    发布于 工程实践 800 字 2 分钟

    vector-database

    我们非常激动地宣布推出 PGVecto.rs Cloud——将可扩展向量搜索的强大能力带入你的 PostgreSQL 数据库,现已作为全托管云服务正式上线。 PGVecto.rs 是一款开创性的 Postgres 扩展,支持高性能向量搜索,赋能开发者在现有 Postgres 基础设施之上构建先进的相似度检索应用。借助 PGVecto.rs Cloud,你现在无需自行承担管理扩展的运维开销,即可直接释放这项变革性技术的全部潜力。 通过与现有 Postgres 基础设施无缝集成,PGVecto.rs …

    我们非常激动地宣布推出 PGVecto.rs Cloud——将可扩展向量搜索的强大能力带入你的 PostgreSQL 数据库,现已作为全托管云服务正式上线。 PGVecto.rs 是一款开创性的 Postgres 扩展,支持高性能向量搜索,赋能开发者在现有 Postgres 基础设施之上构建先进的相似度检索应用。借助 PGVecto.rs Cloud,你现在无需自行承担管理扩展的运维开销,即可直接释放这项变革性技术的全部潜力。 通过与现有 Postgres 基础设施无缝集成,PGVecto.rs …

  • 为 PGVecto.rs Cloud 引入 Terraform 支持

    发布于 工程实践 2849 字 6 分钟

    postgresql

    我们非常高兴地宣布发布适用于 PGVecto.rs Cloud 的 Terraform Provider。这一全新 Provider 旨在简化我们云服务上的资源管理流程,让用户能够通过基础设施即代码(IaC)工具 Terraform,以直观、高效的方式管理 Postgres 集群的部署与运维。对于尚不熟悉 Terraform 的读者,它是一款开源工具,用于安全、高效地构建、变更和版本化管理基础设施。它支持用户将基础设施定义为代码,从而以编程方式调配和管理各类资源。 关于 …

    我们非常高兴地宣布发布适用于 PGVecto.rs Cloud 的 Terraform Provider。这一全新 Provider 旨在简化我们云服务上的资源管理流程,让用户能够通过基础设施即代码(IaC)工具 Terraform,以直观、高效的方式管理 Postgres 集群的部署与运维。对于尚不熟悉 Terraform 的读者,它是一款开源工具,用于安全、高效地构建、变更和版本化管理基础设施。它支持用户将基础设施定义为代码,从而以编程方式调配和管理各类资源。 关于 …

  • 释放稀疏向量的强大潜能

    发布于 工程实践 2741 字 6 分钟

    sparsevectors

    在过去,混合搜索(hybrid search)通常结合两种搜索方式:传统的基于关键词的搜索与基于向量的相似度搜索。然而,稀疏向量(sparse vector)可以作为关键词搜索的替代方案,通过纯向量搜索释放数据流水线的全部潜能。 本文将探讨如何结合 BGE-M3 与 pgvecto.rs,同时利用稀疏向量和稠密向量(dense vector)来充分发挥混合搜索的潜力。 让我们开始吧。 稀疏向量与稠密向量嵌入概览 稀疏向量是仅包含少量非零值的高维向量,非常适合传统的信息检索场景。例如,一个拥有 …

    在过去,混合搜索(hybrid search)通常结合两种搜索方式:传统的基于关键词的搜索与基于向量的相似度搜索。然而,稀疏向量(sparse vector)可以作为关键词搜索的替代方案,通过纯向量搜索释放数据流水线的全部潜能。 本文将探讨如何结合 BGE-M3 与 pgvecto.rs,同时利用稀疏向量和稠密向量(dense vector)来充分发挥混合搜索的潜力。 让我们开始吧。 稀疏向量与稠密向量嵌入概览 稀疏向量是仅包含少量非零值的高维向量,非常适合传统的信息检索场景。例如,一个拥有 …

  • pg_bestmatch.rs:用 BM25 全面提升 PostgreSQL 文本查询能力

    发布于 工程实践 1550 字 4 分钟

    rag

    提示 更新提示:欢迎了解我们最新的扩展 VectorChord-BM25,它在 PostgreSQL 中实现了端到端的 BM25 排序。详情请阅读:https://vchord.pgsty.com/zh/blog/post/vectorchord-bm25-revolutionize-postgresql-search-with-bm25-ranking-3x-faster-than-elasticsearch/ …

    提示 更新提示:欢迎了解我们最新的扩展 VectorChord-BM25,它在 PostgreSQL 中实现了端到端的 BM25 排序。详情请阅读:https://vchord.pgsty.com/zh/blog/post/vectorchord-bm25-revolutionize-postgresql-search-with-bm25-ranking-3x-faster-than-elasticsearch/ …

  • 我的二值向量搜索比你的 FP32 向量更强

    发布于 工程实践 2356 字 5 分钟

    postgresql

    在向量搜索领域,一项引人注目的技术进展正在兴起:二值向量搜索(binary vector search)。这种方法有望通过实现惊人的 30 倍内存缩减,攻克长期存在的内存消耗难题。然而,一个引发广泛讨论的关键问题是:它会对检索精度产生怎样的影响? 我们认为,将二值向量搜索与特定的优化技术相结合,完全可以保持相近的检索精度。为了阐明这一点,我们将在本文中展示一系列实验,演示该方法的实际效果及其重要意义。 什么是二值向量? 二值向量(binary vector)是一种将向量中的每个元素编码为二值(通 …

    在向量搜索领域,一项引人注目的技术进展正在兴起:二值向量搜索(binary vector search)。这种方法有望通过实现惊人的 30 倍内存缩减,攻克长期存在的内存消耗难题。然而,一个引发广泛讨论的关键问题是:它会对检索精度产生怎样的影响? 我们认为,将二值向量搜索与特定的优化技术相结合,完全可以保持相近的检索精度。为了阐明这一点,我们将在本文中展示一系列实验,演示该方法的实际效果及其重要意义。 什么是二值向量? 二值向量(binary vector)是一种将向量中的每个元素编码为二值(通 …

  • 2024 年 pgvector vs. pgvecto.rs:PostgreSQL 向量搜索全方位对比

    发布于 工程实践 3309 字 7 分钟

    pgvector 和 pgvecto.rs 都是旨在增强 PostgreSQL 向量检索能力的扩展。这些扩展彻底改变了数据库内部执行向量搜索的方式,提供了可扩展、低延迟且支持混合检索的解决方案。在这篇博客文章中,我们将详细阐述 pgvector 与 pgvecto.rs 之间的核心差异。 省流版(TL; DR):请直接跳转到文章末尾的总结小节,其中的对比表格汇总了两者之间的主要区别。 搜索能力(Search) 搜索是数据库的核心功能,在高效数据检索中扮演着至关重要的角色,能够帮助用户快速定位并访 …

    pgvector 和 pgvecto.rs 都是旨在增强 PostgreSQL 向量检索能力的扩展。这些扩展彻底改变了数据库内部执行向量搜索的方式,提供了可扩展、低延迟且支持混合检索的解决方案。在这篇博客文章中,我们将详细阐述 pgvector 与 pgvecto.rs 之间的核心差异。 省流版(TL; DR):请直接跳转到文章末尾的总结小节,其中的对比表格汇总了两者之间的主要区别。 搜索能力(Search) 搜索是数据库的核心功能,在高效数据检索中扮演着至关重要的角色,能够帮助用户快速定位并访 …

  • 我们真的需要专门的向量数据库吗?

    发布于 工程实践 5007 字 11 分钟

    ai

    随着大语言模型(LLM)的普及,向量数据库也成为了热门话题。只需寥寥几行简单的 Python 代码,向量数据库就能充当 LLM 廉价却高效的“外挂大脑”。但我们真的需要一个专门的向量数据库吗? 为什么 LLM 需要向量搜索? 首先,让我简要介绍一下为什么 LLM 需要使用向量搜索技术。向量搜索是一个存在已久的问题:给定一个对象,在集合中找出与之最相似对象的过程就是向量搜索。文本、图像等都可以转换为向量表示,从而将文本或图像的相似性问题转化为向量相似性问题。 文本搜索(图片来源) 在上面的例子中, …

    随着大语言模型(LLM)的普及,向量数据库也成为了热门话题。只需寥寥几行简单的 Python 代码,向量数据库就能充当 LLM 廉价却高效的“外挂大脑”。但我们真的需要一个专门的向量数据库吗? 为什么 LLM 需要向量搜索? 首先,让我简要介绍一下为什么 LLM 需要使用向量搜索技术。向量搜索是一个存在已久的问题:给定一个对象,在集合中找出与之最相似对象的过程就是向量搜索。文本、图像等都可以转换为向量表示,从而将文本或图像的相似性问题转化为向量相似性问题。 文本搜索(图片来源) 在上面的例子中, …

  • 使用 pgvecto.rs 在 LangChain 中构建大语言模型应用

    发布于 工程实践 1024 字 3 分钟

    ai

    LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使应用程序能够: 具备上下文感知能力:将语言模型连接到各种上下文来源(提示词指令、少样本示例、作为回答依据的业务内容等)。 进行推理:依靠语言模型进行推理(例如如何根据提供的上下文作答、应当采取什么行动等)。 pgvecto.rs 是 Postgres 中的一款向量搜索扩展。在本篇博客中,我们将向你展示如何使用 LangChain 和 pgvecto.rs 构建 LLM 应用程序。 安装依赖 使用 LangChain 集成需要安 …

    LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使应用程序能够: 具备上下文感知能力:将语言模型连接到各种上下文来源(提示词指令、少样本示例、作为回答依据的业务内容等)。 进行推理:依靠语言模型进行推理(例如如何根据提供的上下文作答、应当采取什么行动等)。 pgvecto.rs 是 Postgres 中的一款向量搜索扩展。在本篇博客中,我们将向你展示如何使用 LangChain 和 pgvecto.rs 构建 LLM 应用程序。 安装依赖 使用 LangChain 集成需要安 …

  • 使用 LlamaIndex 与 pgvecto.rs 构建 RAG 流水线

    发布于 工程实践 429 字 1 分钟

    ai

    LlamaIndex 是一个简单、灵活的数据框架,用于将自定义数据源连接到大语言模型(LLM)。 pgvecto.rs 提供了 LlamaIndex 集成,允许你快速检索最相似的向量。在本篇博客中,我们将向你展示如何使用 pgvecto.rs 和 LlamaIndex 构建一套 RAG 流水线。 安装依赖 使用 LlamaIndex 集成需要安装以下依赖项: pip install llama-index "pgvecto_rs[sdk]" 你可以在 Docker 容器中启动安装了 …

    LlamaIndex 是一个简单、灵活的数据框架,用于将自定义数据源连接到大语言模型(LLM)。 pgvecto.rs 提供了 LlamaIndex 集成,允许你快速检索最相似的向量。在本篇博客中,我们将向你展示如何使用 pgvecto.rs 和 LlamaIndex 构建一套 RAG 流水线。 安装依赖 使用 LlamaIndex 集成需要安装以下依赖项: pip install llama-index "pgvecto_rs[sdk]" 你可以在 Docker 容器中启动安装了 …