向量辅助概览

向量辅助是一项 Cloud SQL for PostgreSQL 扩展服务,可简化 Cloud SQL 向量工作负载的部署和管理。它提供了一个声明性 SQL 框架,可帮助您设置可用于生产环境的向量搜索功能,例如嵌入生成、查询优化和索引创建。此框架通过以下方式降低了向量工作负载的复杂性:

  • 简化意图声明:使用 SQL 函数声明要求(例如表、文本列或目标召回率)。
  • 自动执行最佳实践:生成优化的 SQL 命令(也称为建议),以使用您定义的向量规范和可计算最佳索引配置的优化自动调优算法来设置向量工作负载。
  • 提高透明度和可控性:在自动执行任务时,针对每项建议提供清晰的说明,让您可以按照自己的节奏查看、修改和应用建议。
  • 实现快速原型设计:可让您快速部署经过精心调整的向量搜索设置,缩短从概念到生产的时间。
  • 注重易用性:简化了语义搜索的复杂性,弥合了业务和工程要求之间的差距。

借助向量辅助功能,您可以构建具有语义搜索功能的端到端应用,并简化设置。

向量辅助功能的运作方式

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

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

向量辅助规范

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

  • 表格和相关列(文本或向量)
  • 嵌入模型偏好设置(如果使用嵌入生成)
  • 首选的索引类型,例如 HNSWIVFFlat
  • 搜索查询的目标召回率
  • 内存限制或其他性能限制

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

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

向量辅助建议

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

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

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

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

限制

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

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

后续步骤