构建一个上下文文本和图像搜索引擎,以便使用 Amazon Bedrock 和 Amazon Open

构建上下文文本与图像搜索引擎以进行产品推荐

重点内容

本文介绍了如何使用 Amazon Bedrock 和 Amazon OpenSearch Serverless 构建上下文文本与图像搜索引擎,提升产品推荐系统的效率。通过使用多模态嵌入模型,用户可以依赖自然语言查询或图像来获取更精确的搜索结果,从而改善购物体验。

随着上下文和语义搜索的兴起,电子商务和零售业务使消费者的搜索变得更加简单。通过生成式 AI 驱动的搜索引擎和推荐系统可以显著改善产品搜索体验,理解自然语言查询并返回更准确的结果,从而提升整体用户体验,帮助客户找到他们所需的商品。

Amazon OpenSearch Service 现在支持针对 kNN 索引的 余弦相似度度量。余弦相似度衡量两个向量之间的角度余弦,较小的余弦角表示两个向量之间更高的相似性。使用余弦相似度,您可以衡量两个向量之间的方向,使其成为某些特定语义搜索应用的良好选择。

在本文中,我们将展示如何利用 Amazon Titan 多模态嵌入模型,在 Amazon Bedrock 和 Amazon OpenSearch Serverless 下构建一个上下文文本和图像搜索引擎以进行产品推荐。

解决方案概述

该解决方案提供了一种实现方式,用于构建一个大型语言模型LLM驱动的搜索引擎原型,以根据文本或图像查询检索和推荐产品。我们将详细介绍如何使用 Amazon Titan 多模态嵌入模型 将图像和文本编码为嵌入,如何将嵌入导入 OpenSearch Service 索引,以及如何使用 OpenSearch Service k最近邻kNN 功能查询索引。

该解决方案包括以下组件:

组件描述Amazon Titan 多模态嵌入模型该基础模型生成本文中使用的产品图像嵌入。当用户提交任何文本和图像组合作为搜索查询时,模型生成搜索查询的嵌入并将其与存储的嵌入匹配,从而提供相关的搜索和推荐结果。Amazon OpenSearch Serverless这是 OpenSearch 服务的按需无服务器配置,用于作为向量数据库。Amazon SageMaker Studio这是一个集成开发环境IDE,供机器学习从业者进行所有 ML 开发步骤 从准备数据到构建、训练和部署 ML 模型。

解决方案设计分为两个部分:数据索引和上下文搜索。在数据索引阶段,您将处理产品图像以生成这些图像的嵌入,然后填充向量数据存储。这些步骤在用户交互步骤之前完成。

在上下文搜索阶段,从用户发送的搜索查询文本或图像转换成嵌入,并在向量数据库上运行相似度搜索,以找到相似的产品图像。然后显示最相似的结果。所有代码可以在 GitHub 仓库 中找到。

以下图显示了该解决方案的架构。

解决方案工作流程的步骤如下:

从公共 Amazon S3 存储桶下载产品描述文本和图像。审查和准备数据集。使用 Amazon Titan 多模态嵌入模型生成产品图像的嵌入。如果您有大量图像和描述,也可以选择使用 Batch inference for Amazon Bedrock。将嵌入存储到 Amazon OpenSearch Serverless 中作为搜索引擎。最后,以自然语言获取用户查询,使用 Amazon Titan 多模态嵌入模型将其转换为嵌入,并执行 kNN 搜索以获得相关搜索结果。

我们使用 SageMaker Studio未在图中显示作为解决方案的 IDE。

在后续部分中将详细讨论这些步骤,并包括输出的屏幕截图和细节。

先决条件

要实现本文提供的解决方案,您需要具备以下条件:

一个 AWS 账户 并且熟悉 FMs、Amazon Bedrock、Amazon SageMaker 和 OpenSearch 服务。已在 Amazon Bedrock 中启用 Amazon Titan 多模态嵌入模型。您可以在 Amazon Bedrock 控制台的 模型访问 页面确认是否启用。如果启用了 Amazon Titan 多模态嵌入,访问状态将显示为 访问已授予。

如果该模型尚不可用,请通过选择 管理模型访问,选择 Amazon Titan Multimodal Embeddings G1 并选择 申请模型访问 来启用对该模型的访问。模型立即可供使用。

您还需要一个 SageMaker Studio 域。如果尚未配置 SageMaker Studio 域,请参考 Amazon SageMaker simplifies the Amazon SageMaker Studio setup for individual users 获取创建步骤。

设置解决方案

完成先决条件步骤后,即可准备设置解决方案:

在 AWS 账户中打开 SageMaker 控制台,选择导航面板中的 Studio。选择您的域和用户配置文件,然后选择 打开 Studio。

您的域和用户配置文件名称可能不同。

在 实用工具和文件 下选择 系统终端。运行以下命令将 GitHub 仓库 克隆到 SageMaker Studio 实例:

bash git clone https//githubcom/awssamples/amazonbedrocksamplesgit

导航到 multimodal/Titan/titanmultimodalembeddings/amazonbedrockmultimodalosssearchenginee2e 文件夹。打开 titanmmembedsearchblogipynb 笔记本。

运行解决方案

打开位于 titanmmembedsearchblogipynb 的文件,使用数据科学 Python 3 内核。在 运行 菜单中,选择 运行所有单元 执行该笔记本中的代码。

该笔记本执行如下步骤:

安装本解决方案所需的包和库。在 pandas 数据框中加载公开的 Amazon Berkeley Objects Dataset 和元数据。

该数据集包含 147702 条产品列表,具有多语言元数据和 398212 个独特的目录图像。在本文中,我们仅使用约 1600 个产品的图像和英文名称。

使用 Amazon Titan 多模态嵌入模型生成产品图像的嵌入,使用 gettitanmultomodalembedding() 函数。为了抽象化,我们在 utilspy 文件中定义了该笔记本中使用的所有重要函数。

接下来,您需要创建并设置一个 Amazon OpenSearch Serverless 向量存储集合和索引。

在创建新的向量搜索集合和索引之前,必须先创建三个相关的 OpenSearch 服务策略:加密安全策略、网络安全策略和数据访问策略。

加速器安卓下载免费

最后,将图像嵌入导入向量索引中。

现在,您可以执行实时的多模态搜索。

进行上下文搜索

在本节中,我们将展示根据文本或图像查询的上下文搜索结果。

构建一个上下文文本和图像搜索引擎,以便使用 Amazon Bedrock 和 Amazon Open

首先,我们基于文本输入进行图像搜索。在以下示例中,我们使用文本输入“饮用器玻璃”并发送到搜索引擎以查找类似的项目。

接下来的屏幕截图展示了结果。

现在,让我们通过简单的图像查看结果。输入图像被转换为向量嵌入,并且根据相似性搜索,模型返回结果。

您可以使用任何图像,但在以下例子中,我们将使用来自数据集的随机图像,通过项目 ID例如,itemid = “B07JCDQWM6”来选择,然后将该图像发送到搜索引擎以查找相似项目。

接下来的屏幕截图展示了结果。

清理

为了避免未来产生费用,请删除本解决方案中使用的资源。您可以通过运行笔记本的清理部分来完成此操作。

结论

本文提供了使用 Amazon Titan 多模态嵌入模型在 Amazon Bedrock 中构建强大上下文搜索应用的详尽指导。特别是,我们演示了产品列表搜索应用的示例。我们看到嵌入模型如何使从图像和文本数据中有效、准确地发现信息成为可能,从而提升用户在寻找相关商品时的体验。

Amazon Titan 多模态嵌入为您提供更准确和上下文相关的多模态搜索、推荐和个性化体验。举例来说,一个拥有数亿张图像的图库公司可以使用该模型来推动其搜索功能,以便用户可以通过短语、图像或图像和文本的组合来搜索图像。

Amazon Titan 多模态嵌入模型现已在美国东部弗吉尼亚北部和美国西部俄勒冈 AWS 区域提供。要了解更多信息,请参阅 Amazon Titan 图像生成器、多模态嵌入和文本模型现已在 Amazon Bedrock 中可用、Amazon Titan 产品页面 及 Amazon Bedrock 用户指南。要开始使用 Amazon Titan 多模态嵌入模型,请访问 Amazon Bedrock 控制台。

今天就开始在 Amazon Bedrock 中构建 Amazon Titan 多模态嵌入模型吧。

关于作者

Sandeep Singh 是 Amazon Web Services 的高级生成式 AI 数据科学家,帮助企业使用生成式 AI 创新。他专注于生成式 AI、人工智能、机器学习和系统设计。对于开发最先进的 AI/ML 解决方案以解决各类行业的复杂业务问题充满热情,致力于提高效率和可扩展性。

Mani Khanuja 是明星技术总监,专注于生成式 AI,出版过《应用机器学习与 AWS 高性能计算》一书,同时也是制造教育基金会董事会成员。她在计算机视觉、自然语言处理和生成式 AI 等领域领先机器学习项目。经常在 AWS reInvent、Women in Manufacturing West、YouTube 网络研讨会和 GHC 23 等内部和外部会议上演讲。闲暇时,她喜欢沿海滩进行长时间跑步。

Rupinder Grewal 是 AWS 的高级 AI/ML 解决方案架构师。当前专注于在 Amazon SageMaker 上提供模型和 MLOps。在此之前,他曾担任机器学习工程师,开发并托管模型。在工作之余,他喜欢打网球和在山路上骑自行车。

加载评论

发表评论

订阅我们的邮箱