向量辅助概览

Vector assist 是一项 AlloyDB for PostgreSQL 扩展服务,可提供声明式 SQL 框架来部署和管理 Vector Search 工作负载。您无需手动配置嵌入生成、索引参数和查询调优,而是可以使用 SQL 函数声明工作负载要求,例如目标表、源文本列和召回目标。

向量辅助功能会根据您的向量规范,使用自动调优算法生成优化的 SQL 建议,并提供说明,供您查看、修改和应用。此工作流可帮助您以最少的手动设置来制作原型并部署可用于生产用途的语义搜索应用。

向量辅助功能的工作原理

向量辅助功能要求您定义向量规范。该框架使用这些向量规范(也称为向量规范)来生成创建向量索引所需的步骤。向量辅助功能会以建议的形式输出部署向量工作负载所需的步骤。每次修改向量规范时,向量辅助功能都会重新生成建议。

使用这些建议的步骤生成向量索引后,您可以使用向量辅助功能生成优化的搜索查询。

向量辅助规范

设置向量索引规范(或向量规范)是使用向量辅助功能的第一步 。向量规范是一个对象,您可以在其中定义向量工作负载的意图和要求。它包含所有必要信息,包括以下内容:

  • 表和相关列(文本或向量)
  • 嵌入模型偏好设置(如果使用嵌入生成)
  • 首选索引类型:HNSW 或 IVFFlat。 ScaNN 不受支持。
  • 搜索查询的目标召回率
  • 内存限制

您可以使用 vector_assist.define_spec 函数定义向量规范,并且可以随时对其进行修改。系统会为每个规范分配一个唯一 ID,并将其存储在一个名为 vector_assist.VECTOR_SPECS 的表中。

向量辅助功能会推断规范输入和一种可计算最佳索引配置的优化自动调优算法。虽然向量辅助功能会使用这些值来简化开发流程,但您仍然可以根据自己的偏好自定义这些值。

向量辅助建议

定义向量规范后,向量辅助功能会处理您的输入并生成建议。这些建议是必须执行的有用步骤(通常是 SQL 命令)的有序列表,以便根据您的规范部署向量工作负载。每条建议都包含以下内容:

  • 要运行的 SQL 查询。
  • 对查询的作用及其推荐原因的详细说明。
  • 有关潜在权衡或费用的信息,例如估计的索引大小或构建时间。

向量辅助会将建议存储在一个名为 vector_assist.RECOMMENDATIONS 的表格中,您可以单独或整体查看、修改和应用这些建议。

每次修改工作负载的向量规范时,向量辅助功能都会重新生成建议,以符合更新后的规范。

限制

将向量辅助功能与 AlloyDB 实例搭配使用时,请考虑以下限制:

  • 向量辅助功能仅支持 PostgreSQL 17 及更高版本。
  • 虽然向量辅助功能支持所有 pgvector 版本,但我们建议您使用最新版本,以获得最佳性能和功能支持。如需了解 详情,请参阅 pgvector更改日志。
  • 如果您的实例使用 google_ml_integration 扩展程序生成嵌入,那么在使用向量辅助功能时,其限制也适用。 如需了解详情,请参阅 AlloyDB 概览中的注册和调用远程 AI 模型。
  • 向量辅助功能仅支持 HNSW 和 IVFFlat 索引类型。不支持 ScaNN 索引类型。
  • 向量辅助功能仅支持文本嵌入模型来自动生成嵌入,并使用 text_column_name 作为输入参数。如果您的向量工作负载需要多模态嵌入模型,请使用 google_ml_integration 扩展程序或其他扩展程序手动生成这些嵌入,然后再使用向量辅助功能对这些嵌入启用语义搜索。

后续步骤