将嵌入从 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 到 Vertex AI 向量搜索工作流,该工作流是使用 Workflows 部署的,用于将嵌入导出并上传到向量搜索索引中。您可以使用 Cloud Scheduler 定期安排此工作流,以使您的向量搜索索引始终与 Spanner 中的嵌入的最新更改保持同步。

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

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

用例示例

“向量搜索”的典型用例是在线零售商,拥有包含数十万件商品的库存。在此场景中,您是一名在线零售商的开发者,您想在 Spanner 中对您的商品清单使用向量相似度搜索,以帮助客户根据其搜索查询找到相关的商品。

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

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

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

向量搜索返回这些类似的产品 ID 后,您可以查询 Spanner 以获取产品的说明、库存数量、价格和其他相关的元数据,并向客户显示这些信息。

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

后续步骤