Vertex AI Vector Search 可让用户使用向量嵌入搜索语义相似的项。使用 Spanner 到 Vertex AI 向量搜索工作流,您可以将 Spanner 数据库与向量搜索集成,以对 Spanner 数据执行向量相似度搜索。
下图显示了如何对 Spanner 数据启用和使用向量搜索的端到端应用工作流:
一般工作流程如下:
生成和存储向量嵌入。
您可以生成数据的矢量嵌入,然后将其与您的运营数据一起存储在 Spanner 中并进行管理。您可以使用 Spanner 的
ML.PREDICT
SQL 函数生成嵌入,以访问 Vertex AI 的textembedding-gecko
模型或使用部署到 Vertex AI 的其他嵌入模型。将嵌入同步到向量搜索。
使用 Spanner 到 Vertex AI 向量搜索工作流,该工作流是使用 Workflows 部署的,用于将嵌入导出并上传到向量搜索索引中。您可以使用 Cloud Scheduler 定期安排此工作流,以使您的向量搜索索引始终与 Spanner 中的嵌入的最新更改保持同步。
使用向量搜索索引执行向量相似度搜索。
用例示例
“向量搜索”的典型用例是在线零售商,拥有包含数十万件商品的库存。在此场景中,您是一名在线零售商的开发者,您想在 Spanner 中对您的商品清单使用向量相似度搜索,以帮助客户根据其搜索查询找到相关的商品。
按照常规工作流中的第 1 步和第 2 步操作,为您的商品清单生成向量嵌入,并将这些嵌入同步到向量搜索。
现在,假设一位客户浏览您的应用执行了搜索,例如“最适合在水中穿的速干运动短裤”。当应用收到此查询时,您需要使用 Spanner ML.PREDICT
SQL 函数为此搜索请求生成嵌入请求。请务必使用为商品清单生成嵌入时所用的同一嵌入模型。
接下来,查询向量搜索索引,查找相应的嵌入类似于客户搜索请求中生成的请求嵌入的产品 ID。搜索索引可能会针对语义相似的商品(例如滑水短裤、冲浪服装和游泳裤)推荐商品 ID。
向量搜索返回这些类似的产品 ID 后,您可以查询 Spanner 以获取产品的说明、库存数量、价格和其他相关的元数据,并向客户显示这些信息。
您还可以使用生成式 AI 处理 Spanner 返回的结果,然后再将其显示给客户。例如,您可以使用 Google 的大型生成式 AI 模型生成推荐产品的简明摘要。如需了解详情,请参阅有关如何使用生成式 AI 在电子商务应用中获取个性化推荐的教程。
后续步骤
- 了解如何使用 Spanner 生成嵌入。
- 详细了解 AI 的多工具:向量嵌入
- 观看我们关于嵌入的速成课程,详细了解机器学习和嵌入。
- 如需详细了解 Spanner 至 Vertex AI 向量搜索工作流,请参阅 GitHub 代码库。
- 详细了解开源 spanner-analytics 软件包,它有助于 Python 中的常见数据分析操作,并集成了 Jupyter 笔记本。