-
在 PostgreSQL 中利用上下文检索优化 RAG
在标准的检索增强生成(RAG)方案中,一种常见做法是将长篇文档切分为更小、更易于管理的文本块(chunk)。这样做主要是为了结合句子嵌入(sentence embedding)与关键词 BM25 评分来提升检索效率,使系统能够快速定位并提取出相关的信息片段。虽然这种方法在许多场景下行之有效,但它也带来了一个显著的挑战:单个文本块很可能会丢失其原本所处的上下文语境。 不妨以历史文献集合为例。如果用户询问某个特定历史事件,而检索出的文本块写着:“条约正式签署,敌对状态宣告结束。” 脱离了前后的文本, …
在标准的检索增强生成(RAG)方案中,一种常见做法是将长篇文档切分为更小、更易于管理的文本块(chunk)。这样做主要是为了结合句子嵌入(sentence embedding)与关键词 BM25 评分来提升检索效率,使系统能够快速定位并提取出相关的信息片段。虽然这种方法在许多场景下行之有效,但它也带来了一个显著的挑战:单个文本块很可能会丢失其原本所处的上下文语境。 不妨以历史文献集合为例。如果用户询问某个特定历史事件,而检索出的文本块写着:“条约正式签署,敌对状态宣告结束。” 脱离了前后的文本, …
-
推出 Vechord:以 Pythonic 的方式将 PostgreSQL 打造成你的搜索引擎
今天,我们非常激动地宣布发布 Vechord——一个全新的 Python 库,旨在大幅简化直接在 PostgreSQL 数据库之上构建稳健搜索基础设施的流程。 在人工智能与大语言模型(LLM)飞速发展的今天,检索增强生成(RAG)和语义搜索已成为不可或缺的核心组件。然而,搭建所需的向量搜索基础设施往往意味着学习全新的数据库技术、管理复杂的系统集成,或是与繁琐的框架搏斗。这不仅增加了研发摩擦,还会拖慢开发进度,对于已经熟悉 PostgreSQL 的团队而言尤为如此。 挑战:混合搜索的复杂性 构建搜 …
今天,我们非常激动地宣布发布 Vechord——一个全新的 Python 库,旨在大幅简化直接在 PostgreSQL 数据库之上构建稳健搜索基础设施的流程。 在人工智能与大语言模型(LLM)飞速发展的今天,检索增强生成(RAG)和语义搜索已成为不可或缺的核心组件。然而,搭建所需的向量搜索基础设施往往意味着学习全新的数据库技术、管理复杂的系统集成,或是与繁琐的框架搏斗。这不仅增加了研发摩擦,还会拖慢开发进度,对于已经熟悉 PostgreSQL 的团队而言尤为如此。 挑战:混合搜索的复杂性 构建搜 …
-
VectorChord 0.3:在 PostgreSQL 中实现高效的多向量上下文晚期交互
我们非常激动地宣布发布 VectorChord 0.3!这一重要里程碑直接在你的 Postgres 数据库内部显著提升了高级向量搜索技术的性能与适用性。在带来 ARM 支持与更快索引构建的 0.2 版本基础上,0.3 版本攻克了现代检索领域的最大难关之一:具备晚期交互(Late Interaction)能力的高效多向量搜索。 超越单向量:为什么多向量如此强大 多年来,向量搜索主要将整篇文档或整个查询表示为单个稠密向量(Dense Vector)。这种方法虽然强大,但需要将复杂的信息平均或压缩为单 …
我们非常激动地宣布发布 VectorChord 0.3!这一重要里程碑直接在你的 Postgres 数据库内部显著提升了高级向量搜索技术的性能与适用性。在带来 ARM 支持与更快索引构建的 0.2 版本基础上,0.3 版本攻克了现代检索领域的最大难关之一:具备晚期交互(Late Interaction)能力的高效多向量搜索。 超越单向量:为什么多向量如此强大 多年来,向量搜索主要将整篇文档或整个查询表示为单个稠密向量(Dense Vector)。这种方法虽然强大,但需要将复杂的信息平均或压缩为单 …
-
在 PostgreSQL 中使用 ColBERT 重排序为向量搜索赋能
传统的向量搜索方法通常采用句子级嵌入(sentence embeddings)来定位相似内容。然而,通过对词元嵌入(token embeddings)进行池化来生成句子嵌入,可能会牺牲词元级别所蕴含的细粒度细节。ColBERT 通过将文本表示为词元级多向量(multi-vectors)而非单个聚合向量,克服了这一局限。这种方法利用词元级的上下文后期交互(contextual late interaction),使 ColBERT 相比仅依赖句子嵌入的方法能够保留更微妙的语义信息,并提高搜索准确度 …
传统的向量搜索方法通常采用句子级嵌入(sentence embeddings)来定位相似内容。然而,通过对词元嵌入(token embeddings)进行池化来生成句子嵌入,可能会牺牲词元级别所蕴含的细粒度细节。ColBERT 通过将文本表示为词元级多向量(multi-vectors)而非单个聚合向量,克服了这一局限。这种方法利用词元级的上下文后期交互(contextual late interaction),使 ColBERT 相比仅依赖句子嵌入的方法能够保留更微妙的语义信息,并提高搜索准确度 …
-
VectorChord 外部聚类中心构建的优势与操作步骤
聚类(Clustering)是向量搜索中的重要组成部分,而 K-means 算法依然是目前应用最广泛的技术之一。然而,它的简洁性也伴随着一个显著的缺点:密集的计算资源消耗使其在处理大规模数据集时往往力不从心。本文将探讨这一挑战产生的原因,并介绍如何利用外部构建(External Builds)来克服它,同时分享我们在实现这一方案过程中的技术洞察。 为什么需要外部构建 VectorChord 使用 IVF + RaBitQ 来执行向量搜索。IVF 聚类簇的质量会直接影响搜索精度和速度 …
聚类(Clustering)是向量搜索中的重要组成部分,而 K-means 算法依然是目前应用最广泛的技术之一。然而,它的简洁性也伴随着一个显著的缺点:密集的计算资源消耗使其在处理大规模数据集时往往力不从心。本文将探讨这一挑战产生的原因,并介绍如何利用外部构建(External Builds)来克服它,同时分享我们在实现这一方案过程中的技术洞察。 为什么需要外部构建 VectorChord 使用 IVF + RaBitQ 来执行向量搜索。IVF 聚类簇的质量会直接影响搜索精度和速度 …