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

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

下图显示了端到端应用工作流程,展示了如何在 Spanner 数据上启用和使用 Vector Search:

Spanner 到矢量搜索的工作流。

一般工作流程如下:

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

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

  2. 将嵌入同步到 Vector Search。

    使用 Spanner To Vertex AI Vector Search 工作流(使用工作流部署)将嵌入导出并上传到 Vector Search 索引。您可以使用 Cloud Scheduler 定期安排此工作流, “矢量搜索”会编入索引 Spanner 中的嵌入。

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

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

用例示例

矢量搜索的一个说明性应用场景是 该零售商拥有成千上万件商品。在此场景中,您是一家在线零售商的开发者,希望在 Spanner 中对商品目录使用向量相似性搜索,以帮助客户根据其搜索查询找到相关商品。

按照常规工作流中的步骤 1 和步骤 2 生成向量 然后使用这些嵌入来生成商品清单,然后将这些嵌入同步到 矢量搜索。

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

接下来,查询 Vector Search 索引,找出相应嵌入与客户搜索请求生成的请求嵌入相似的商品 ID。搜索索引可能会推荐在语义上相似的商品的商品 ID,例如水上摩托短裤、冲浪服装和游泳短裤。

在矢量搜索返回这些相似的商品 ID 后,您可以查询 Spanner for the Product'说明、商品目录数量、价格 以及其他相关的元数据,并将其展示给客户。

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

后续步骤