链载Ai

标题: PG用户福音|一次性搞定RAG完整数据库套装 [打印本页]

作者: 链载Ai    时间: 昨天 22:25
标题: PG用户福音|一次性搞定RAG完整数据库套装

一次性搞定构建RAG的完整数据库套件

要在数据库中构建高效的RAG, 除了向量搜索能力还需要什么?

VectorChord Suite: 提供了在PG中构建RAG的完整套件(不包括图, 因为PG未来将支持PGQ语法 或 有其他插件已支持了!), 让我们一起来看看.

以下内容翻译自: https://blog.vectorchord.ai/all-in-one-vectorchord-suite-building-production-ready-rag-solutions-directly-in-postgresql

VectorChord Suite: 构建RAG数据库的完整套件!

检索增强生成 (RAG) 正在彻底改变我们与海量数据集和LLM的交互方式。RAG 系统通过先检索与“问题”相关的信息, 再结合这些“信息”和“问题”最终生成响应答案,提供更精准、更符合语境、更贴近当前世界的答案。然而,构建稳健、可扩展且高效的 RAG 流程仍面临诸多挑战,尤其是在生产环境中。

许多解决方案架构复杂,向量搜索、关键词搜索和主数据存储均使用不同的数据库(类似以前使用MySQL用户的常见解决方案, 搜索或分析就通过binlog同步到elasticsearch和数仓, 也是架构相当复杂, 同步问题、一致性问题、同步错误等诸多问题, 还有异构查询+结果合并的效率问题、成本提升、运维复杂度提升等.)。这通常会导致数据同步挑战、基础设施复杂性增加以及运营成本上升。

如果您可以在可信赖的 PostgreSQL 数据库中直接构建功能强大、可立即投入生产的 RAG 系统,情况会怎样?

了解VectorChord Suite,它是一系列 PostgreSQL 扩展程序,旨在将高性能向量搜索、原生 BM25 排序和灵活的标记化(tokenization)功能直接引入 Postgres。让我们探索这些组件以及它们如何赋能下一代 RAG 解决方案。

什么是 VectorChord Suite?

该套件包含三个协同工作的关键 PostgreSQL 扩展:

1、VectorChord:核心向量搜索引擎。它专为在 PostgreSQL 中实现可扩展、高性能且节省磁盘空间的向量相似性搜索而设计。

2、VectorChord-bm25:此扩展直接在 PostgreSQL 内部实现了复杂的 BM25 排序算法,并利用了高效的 Block-WeakAnd 算法。BM25 是基于关键词频率和文档特征进行相关性排序的标准。

3、pg_tokenizer.rs:提供有效全文检索所需的基本文本标记功能,实现对全文检索的文本处理方式的细粒度控制。

通过结合这些扩展,您可以解锁在 PostgreSQL 中完整构建高级 RAG 系统的强大功能。

如何使用 VectorChord Suite

您可以使用该tensorchord/vchord-suitedocker 镜像运行 TensorChord 提供的多个扩展程序。该镜像基于 Postgres 官方镜像,包含以下扩展程序:

docker run  \
--name vchord-suite \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
-d tensorchord/vchord-suite:pg17-latest

# If you want to use ghcr image,
you can change the image to
`ghcr.io/tensorchord/vchord-suite:pg17-latest`.

# if you want to use the specific version,
you can use the tag `pg17-20250414`,
supported version can be foundinthe support matrix.
CREATE EXTENSION IF NOT EXISTS vchord CASCADE; 
CREATE EXTENSION IF NOT EXISTS pg_tokenizer CASCADE;
CREATE EXTENSION IF NOT EXISTS vchord_bm25 CASCADE;
\dx
pg_tokenizer | 0.1.0 | tokenizer_catalog | pg_tokenizer
vchord | 0.3.0 | public | vchord: Vector database pluginforPostgres, writteninRust, specifically designedforLLM
vchord_bm25 | 0.2.0 | bm25_catalog | vchord_bm25: A postgresql extensionforbm25 ranking algorithm
vector | 0.8.0 | public | vector datatypeand ivfflat and hnsw access methods

VectorChord Suite 的用例

用例 1:使用原生 BM25 和 VectorChord 实现强大的混合搜索


在 RAG 时代,有效的检索至关重要。单独的关键字搜索向量搜索都不是完美的:

解决方案:混合搜索。VectorChord Suite 结合了 Postgres 中两种方法的优势,弥补了这一差距。您可以运行以下查询:

两者的结果可以智能地组合(例如,使用基于reciprocal rank fusion(RRF)的 rerank 或 基于LLM的rerank),从而生成比单独使用任何一种方法都更准确、更符合上下文、更具有语义感知的最终排序, 得到更具有相关性的结果。这将显著提升您的 RAG 应用程序的检索性能。

用例 2:超越文本 - 使用 ColQwen2 和 VectorChord 的无 OCR RAG

为 PDF 或扫描图像等文档构建 RAG 系统通常涉及繁琐的预处理流程。传统方法严重依赖光学字符识别 (OCR) 和版式分析来提取文本。此过程的问题包括:

解决方案:无需 OCR 识别、直接使用视觉感知(Visually-Aware)的 RAG。如果您无需显式 OCR,就能根据文档的layout和内容进行查询,那会怎样?

现在可以通过结合以下方法实现这一目标:

1、多模态视觉语言模型 (VLM):像 ColQwen2 这样的模型可以处理图像(文档页面)并生成捕获文本内容和视觉layout信息的embedding。

2、VectorChord 的多向量(multi-vectors)功能: VectorChord 可以在 Postgres 中高效地存储和搜索每个文档的多向量 - 允许您在一个vector[]字段中存储代表不同方面(例如,文本内容、视觉布局)的embedding。(核心技术包括用于vector[]近似计算的MaxSim算子)

通过此设置,您可以直接在 PostgreSQL 中使用视觉元素的prompt(“查找带有比较销售数据的条形图的文档”)或文本和视觉prompt的组合来查询文档数据库。这简化了您的 RAG技术栈,通过保留视觉上下文来潜在地提高检索准确性,并消除了与传统 OCR 流程相关的瓶颈。

为什么要在 PostgreSQL 中构建 RAG?

利用 Postgres 中的 VectorChord Suite 具有如下显著的优势:

结论

VectorChord 套件将 PostgreSQL 转变为一个功能强大、可立即投入生产的平台,用于构建先进的 RAG 解决方案。通过集成高性能向量搜索 (VectorChord)、关键字排名 (VectorChord-bm25) 和灵活的文本处理 (pg_tokenizer) 三大插件,您可以直接在数据库中实现混合搜索和无 OCR 多模态检索等尖端技术。使用 PostgreSQL 中的 VectorChord,简化您的架构、提高检索准确性并充分释放 RAG 的潜力。

在我们之前的博客中,我们分享了一些用户案例,其中所有docker image都可以用 VectorChord Suite image 替换。

《不是混合搜索? 另一种解决方案提高向量搜索结果相关性! 使用 PostgreSQL 中的 ColBERT rerank 增强向量搜索》

《使用 Postgres Native BM25 和 VectorChord 进行混合搜索》

《超越文本: 使用 Modal 和 PostgreSQL+VectorChord 解锁无 OCR 的 RAG, 无惧PDF、扫描文档等》






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5