Timescale 上的 Pgai 是一种云解决方案,用于使用 PostgreSQL 构建搜索、RAG 和 AI 代理。这套工具使您能够使用 PostgreSQL 作为向量数据库部署生产 AI 应用程序,在同一个数据库中存储向量嵌入、关系数据(例如相关元数据)和时间数据。
立即开始构建
Timescale 云上的 Pgai 包含三个扩展:pgvector、pgvectorscale 和 pgai。pgvector 提供向量数据类型和 HNSW 搜索索引。Pgvectorscale 提供 StreamingDiskANN 索引,以增强嵌入搜索并使向量查询性能更高。Pgai 使您能够轻松地从数据库内部调用 AI 嵌入和生成模型。这三个扩展默认安装在您的 Timescale 云实例中。
Pgvector 是一个流行的开源扩展,用于 PostgreSQL 中的向量存储和相似性搜索,而 pgvectorscale 为 pgvector 添加了高级索引功能。Timescale 上的 Pgai 提供这两个扩展,因此您可以使用 pgvector 中已有的所有功能(如 HNSW 和 ivfflat 索引),还可以使用 pgvectorscale 中的 StreamingDiskANN 索引来加速向量搜索。
这使得迁移您现有的 pgvector 部署并利用 pgvectorscale 中的额外性能功能变得容易。您还可以灵活地创建适合您需求的不同索引类型。有关更多信息,请参阅 向量搜索索引 部分。
嵌入提供了一种表示数据语义本质并根据数据在含义上的相关性进行比较的方法。在数据库上下文中,这非常强大:可以将其视为全文本搜索的增强版。向量数据库允许存储与数据关联的嵌入,然后搜索与给定查询相似的嵌入。
向量嵌入在许多应用中都很有用。
通过创建理解查询的意图和上下文含义的系统,超越传统关键词驱动搜索方法的局限性,从而返回更相关的结果。语义搜索不仅仅寻找精确的词语匹配;它理解用户查询背后的深层意图。结果如何?即使搜索词语的措辞不同,也会显示相关结果。利用混合搜索,将词汇搜索和语义搜索方法结合起来,为用户提供既丰富又准确的搜索体验。它不再只是关于找到直接匹配;而是关于利用与上下文和概念相关的內容来满足用户需求。
想象一下,一个用户对某一特定主题上的几篇文章表现出兴趣。通过嵌入,推荐引擎可以深入探究这些文章的语义本质,并显示与相同主题相关的其他数据库项目。因此,推荐不再仅仅局限于标签或类别等表面层级,而是深入到内容的核心。
通过为大型语言模型 (LLM) 提供额外的上下文信息来增强生成式 AI,例如 OpenAI 的 GPT-4、Anthropic 的 Claude 2 以及开源模式,如 Llama 2。当用户提出查询时,会获取相关的数据库内容,并将其用作额外的信息来补充查询,供 LLM 使用。这有助于减少 LLM 幻觉,因为它确保模型的输出更加基于特定且相关的信息,即使这些信息不是模型原始训练数据的一部分。
嵌入还为数据聚类提供了一种强大的解决方案。将数据转换为这些向量化形式,可以对高维空间中的数据点进行细致的比较。通过 K 均值或层次聚类等算法,可以将数据分类为语义类别,从而揭示表面属性可能遗漏的见解。这揭示了固有的数据模式,丰富了探索和决策过程。
总的来说,嵌入帮助数据库查找与给定信息类似的数据(相似性搜索)。此过程包含几个步骤
- 首先,为数据创建嵌入并插入数据库。这可以在应用程序或数据库本身中进行。
- 其次,当用户有搜索查询(例如,聊天中的问题)时,该查询将转换为嵌入。
- 第三,数据库获取查询嵌入并搜索其存储的最近匹配(最相似)嵌入。
在幕后,嵌入表示为捕获数据本质的向量(数字列表)。为了确定两段数据的相似性,数据库对向量使用数学运算来获取距离度量(通常是欧几里得距离或余弦距离)。在搜索期间,数据库应返回那些存储项,其中查询嵌入与存储嵌入之间的距离尽可能小,这表明这些项最相似。
Timescale 上的 pgai 支持最流行的嵌入模型,这些模型的输出向量维度不超过 2000 维。
- OpenAI 嵌入模型:text-embedding-ada-002 是 OpenAI 推荐的嵌入生成模型。
- Cohere 表示模型:Cohere 提供许多模型,可用于从英语或多种语言的文本生成嵌入。
以下是一些流行的图像嵌入选择
- OpenAI CLIP:适用于涉及文本和图像的应用。
- VGG
- 视觉转换器 (ViT)
关键词
在该页面上发现问题?报告问题 或 在 GitHub 上编辑此页面。