将嵌入从 Spanner 导出到 Vertex AI Vector Search

借助 Vertex AI Vector Search,用户可以使用向量嵌入来搜索语义相似项。您可以使用 Spanner To Vertex AI Vector Search 工作流 将 Spanner 数据库与 Vector Search 集成,以便对 Spanner 数据执行向量相似度搜索。

下图展示了相应的端到端应用工作流,以演示如何对 Spanner 数据启用和使用 Vector Search:

Spanner to Vector Search 工作流。

一般工作流程如下:

  1. 生成和存储向量嵌入。

    您可以生成数据的向量嵌入,然后将它们与运营数据一起存储在 Spanner 中并进行管理。您可以使用 Spanner 的 ML.PREDICT SQL 函数生成嵌入,以访问 Vertex AI 文本嵌入模型,也可以使用部署到 Vertex AI 的其他嵌入模型

  2. 将嵌入同步到 Vector Search。

    使用 Spanner To Vertex AI Vector Search 工作流(通过 Workflows 进行部署)将嵌入导出并上传到 Vector Search 索引中。您可以使用 Cloud Scheduler 定期安排此工作流,以确保 Vector Search 索引与 Spanner 中对嵌入的最新更改保持同步。

  3. 使用 Vector Search 索引执行向量相似度搜索。

    查询 Vector Search 索引,以搜索并查找语义相似项。您可以使用公共端点或通过 VPC 对等互连进行查询。

用例示例

Vector Search 的一个示例应用场景是拥有成千上万件商品的线上零售商。在此场景中,您是某个线上零售商的开发者,希望在 Spanner 中对商品清单使用向量相似度搜索,以帮助客户根据其搜索查询找到相关商品。

按照常规工作流中的第 1 步和第 2 步,为商品清单生成向量嵌入,并将这些嵌入同步到 Vector Search。

现在,假设浏览您应用的客户执行一个搜索,例如“最适合我在水中穿着的速干运动短裤”。当应用收到此查询时,您需要使用 Spanner ML.PREDICT SQL 函数为此搜索请求生成请求嵌入。请务必使用为商品清单生成嵌入时所用的同一嵌入模型。

接下来,查询 Vector Search 索引,以查找对应嵌入与通过客户搜索请求生成的请求嵌入相似的商品 ID。搜索索引可能会为语义相似项(例如尾浪滑水短裤、冲浪服和泳裤)推荐商品 ID。

在 Vector Search 返回这些相似商品 ID 后,您可以向 Spanner 查询相应商品的说明、库存数量、价格和其他元数据,并向客户显示这些内容。

您还可以先使用生成式 AI 来处理从 Spanner 返回的结果,然后再向客户显示这些结果。例如,您可以使用 Google 的大型生成式 AI 模型来生成推荐商品的简明摘要。如需了解详情,请参阅此教程,了解如何使用生成式 AI 在电子商务应用中获取个性化推荐

后续步骤