Timescale 上的 Pgai 是一个云解决方案,用于使用 PostgreSQL 构建搜索、RAG 和 AI 代理。 这套工具使您能够使用 PostgreSQL 作为向量数据库来部署生产 AI 应用程序,在同一数据库中存储向量嵌入、关系数据(例如,相关元数据)和基于时间的数据。

立即开始构建

Timescale Cloud 上的 Pgai 由三个扩展组成:pgvector、pgvectorscale 和 pgai。 pgvector 提供向量数据类型和 HNSW 搜索索引。 Pgvectorscale 提供 StreamingDiskANN 索引,以增强嵌入搜索性能并使向量查询高效。 Pgai 允许您从数据库内部轻松调用 AI 嵌入和生成模型。 默认情况下,所有这三个扩展都安装在您的 Timescale Cloud 实例中。

免费试用

Pgvector 是一个流行的开源扩展,用于 PostgreSQL 中的向量存储和相似性搜索,而 pgvectorscale 为 pgvector 添加了高级索引功能。 Timescale 上的 Pgai 同时提供这两个扩展,因此您可以使用 pgvector 中已有的所有功能(如 HNSW 和 ivfflat 索引),还可以使用 pgvectorscale 中的 StreamingDiskANN 索引来加速向量搜索。

这使得迁移您现有的 pgvector 部署并利用 pgvectorscale 中的其他性能特性变得容易。 您还可以灵活地创建适合您需求的不同索引类型。 有关更多信息,请参阅向量搜索索引部分。

嵌入提供了一种表示数据语义本质的方法,并允许根据数据在意义上的相关程度来比较数据。 在数据库上下文中,这非常强大:可以将其视为增强版的全文搜索。 向量数据库允许存储与数据关联的嵌入,然后搜索与给定查询相似的嵌入。

向量嵌入在许多应用中都很有用。

通过创建能够理解查询的意图和上下文含义的系统,超越传统关键词驱动搜索方法的限制,从而返回更相关的结果。 语义搜索不仅仅寻求完全匹配的词;它还掌握用户查询背后的更深层意图。 结果如何? 即使搜索词措辞不同,也会浮现相关的结果。 利用混合搜索(结合了词汇和语义搜索方法)为用户提供了丰富且准确的搜索体验。 这不再仅仅是找到直接匹配项;而是挖掘上下文和概念上相似的内容以满足用户需求。

想象一下,一个用户对关于某个主题的几篇文章表现出了兴趣。借助嵌入,推荐引擎可以深入研究这些文章的语义本质,浮现出其他与同一主题产生共鸣的数据库项。 因此,推荐不仅仅停留在标签或类别等肤浅的层面,而是深入到内容的中心。

通过为大型语言模型 (LLM)(如 OpenAI 的 GPT-4、Anthropic 的 Claude 2 和 Llama 2 等开源模型)提供额外的上下文,从而增强生成式 AI 的能力。 当用户提出查询时,会提取相关的数据库内容并用于补充查询,作为 LLM 的附加信息。 这有助于减少 LLM 幻觉,因为它确保模型的输出更贴近特定和相关的信息,即使这些信息不是模型原始训练数据的一部分。

嵌入还为数据聚类提供了强大的解决方案。 将数据转换为这些向量化形式可以对高维空间中的数据点进行细致的比较。 通过 K-means 或层次聚类等算法,可以将数据分类为语义类别,从而提供表面属性可能遗漏的见解。 这揭示了固有的数据模式,丰富了探索和决策过程。

从高层次来看,嵌入帮助数据库查找与给定信息相似的数据(相似性搜索)。 此过程包括几个步骤

  • 首先,为数据创建嵌入并将其插入数据库。 这可以在应用程序中或数据库本身中进行。
  • 其次,当用户有搜索查询(例如,聊天中的问题)时,该查询将转换为嵌入。
  • 第三,数据库获取查询嵌入并搜索与其存储的最接近匹配(最相似)的嵌入。

在底层,嵌入表示为向量(数字列表),用于捕获数据的本质。 为了确定两段数据的相似性,数据库使用向量上的数学运算来获得距离度量(通常为欧几里得距离或余弦距离)。 在搜索期间,数据库应返回那些存储项,其中查询嵌入和存储嵌入之间的距离尽可能小,这表明这些项最相似。

Timescale 上的 pgai 适用于输出向量维度为 2,000 或更小的最流行的嵌入模型。

  • OpenAI 嵌入模型:text-embedding-ada-002 是 OpenAI 推荐的嵌入生成模型。
  • Cohere 表示模型:Cohere 提供了许多模型,可用于从英语或多种语言的文本生成嵌入。

以下是一些流行的图像嵌入选择

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面