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

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

下图显示了如何对 Spanner 数据启用和使用向量搜索的端到端应用工作流:

Spanner 到矢量搜索的工作流。

一般工作流程如下:

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

    您可以生成数据的矢量嵌入,然后使用运营数据在 Spanner 中存储和管理这些嵌入。您可以使用 Spanner 的 ML.PREDICT SQL 函数生成嵌入,以访问 Vertex AI 的 textembedding-gecko 模型使用部署到 Vertex AI 的其他嵌入模型

  2. 将嵌入同步到向量搜索。

    使用 Spanner To Vertex AI Vector Search Workflow,该工作流使用 Workflows 部署,用于将嵌入导出并上传到矢量搜索索引中。您可以使用 Cloud Scheduler 定期安排此工作流,以确保向量搜索索引始终包含 Spanner 中嵌入的最新更改。

  3. 使用向量搜索索引执行向量相似性搜索

    查询矢量搜索索引,以搜索和查找语义相似的项的结果。您可以使用公共端点或通过 VPC 对等互连进行查询。

用例示例

矢量搜索的一个说明性用例是一个在线零售商,该零售商拥有数十万件商品的库存。在此场景中,您是一家在线零售商的开发者,您希望在 Spanner 中的商品清单中使用向量相似度搜索,以便您的客户根据其搜索查询找到相关商品。

按照常规工作流中的第 1 步和第 2 步操作,为您的商品目录生成向量嵌入,并将这些嵌入同步到向量搜索。

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

接下来,在向量搜索索引中查询商品 ID,这些商品的相应嵌入与客户的搜索请求所生成的请求嵌入类似。搜索索引可能会为语义相似的商品(例如滑水短裤、冲浪服装和游泳裤)推荐商品 ID。

在 Vector Search 返回这些类似商品 ID 后,您可以查询 Spanner 来查询商品的说明、商品目录数量、价格和其他相关元数据,并将其显示给您的客户。

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

后续步骤