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