[SEO 副标题]
本指南介绍如何通过将 AWS 和人工智能(AI)服务与 pgvector 扩展集成,创建具有相似度搜索功能的产品目录。作为 PostgreSQL 的开源扩展,pgvector 增加了在向量嵌入中存储和搜索点以及查找与这些点最相似或“最近邻”的功能。借助最近邻搜索功能,可在 PostgreSQL 数据库中使用语义来支持各种智能应用程序和数据分析。如下所示,通过将 pgvector 与 AWS 服务集成,可进行纯图像以及文本转图像的相似度搜索,从而让消费者的购物体验更加个性化、更具相关性以及更高效。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
使用 AWS CloudFormation 在您的 AWS 账户中部署资源。具体内容是部署 Amazon Relational Database Service (Amazon RDS) for PostgreSQL、Amazon SageMaker、AWS Cloud9、AWS Lambda 的实例,以及自定义资源。
第 2 步
RDS for PostgreSQL 存储产品目录和产品嵌入,其方法是使用 PostgreSQL 开源扩展 pgvector 来存储和索引这些高维向量嵌入。
第 3 步
SageMaker 运行经过预训练的 HuggingFace 大型语言模型(LLM)(SentenceTransformer)进行实时推理。您也可以灵活选择最适合您需求的其他模型。而且 Amazon Bedrock 还有一种替代方法用于运行不同的基础模型以及进行推理以生成文本嵌入。
第 4 步
AWS Cloud9 集成式开发环境(IDE)托管着一个示例 Streamlit 应用程序,提供通过 RDS for PostgreSQL 检索到的产品信息。您可以用自己选择的应用程序替换该示例应用程序。
要选择其他计算方式来运行应用程序,可以考虑将其部署在以下服务上:Amazon Elastic Container Service(Amazon ECS)、Amazon Elastic Kubernetes Service(Amazon EKS)、AWS Fargate 或 Amazon Elastic Compute Cloud(Amazon EC2)。
第 5 步
CloudFormation 中的自定义资源在堆栈创建、更新(如果自定义资源被修改)或删除期间会运行用户定义的预置逻辑。搭配 Lambda 函数使用时,CloudFormation 会相应地调用并运行该函数。
CloudFormation 堆栈中的自定义资源调用 Lambda 引导 RDS for PostgreSQL。在此过程中,系统会创建 pgvector 扩展,初始化产品目录模式,并使用 SageMaker 近实时推理生成嵌入。
该系统将这些嵌入和产品目录元数据一起存储在 RDS for PostgreSQL 中,并使用 pgvector 索引类型“分层导航小世界(HNSW)”为嵌入建立索引。
第 6 步
在 AWS Cloud9 上运行电子商务产品目录应用程序,并在运行时预览应用程序。
第 7 步
在应用程序中对产品目录进行搜索,然后使用 SageMaker 近实时推理端点为搜索查询生成嵌入。
第 8 步
该应用程序连接到 RDS for PostgreSQL,使用 pgvector HNSW 索引对嵌入运行相似度搜索查询,然后在应用程序屏幕上显示产品目录相似度搜索结果。
开始使用
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
SageMaker 简化了机器学习模型生命周期管理,使您能够快速适应不断变化的数据和用户需求。带 pgvector 扩展的 RDS for PostgreSQL 具有强大的数据存储和高效的最近邻搜索功能,可为消费者提供准确及时的搜索结果。这些服务共同简化了搜索体验的部署、监控和维护。
-
安全性
RDS for PostgreSQL 使用行业标准加密协议保护您的数据,而 SageMaker 则提供内置安全控件,安全地管理模型训练和部署流程。
建议您使用 AWS Identity and Access Management(IAM)来控制对 AWS 资源的访问权限,以及使用 AWS Secrets Manager 保护敏感凭证。
-
可靠性
RDS for PostgreSQL 提供高可用性和耐久性,而且具有自动备份和数据库快照功能,以及在多个可用区(AZ)部署,从而提高其容错能力。此外,SageMaker 可跨可用区配置多个实例,以在机器学习操作中实现高可用性以及从故障中快速恢复的能力。
-
性能效率
SageMaker 支持进行近实时推理以及低延迟响应用户查询。 带 pgvector 扩展的 RDS for PostgreSQL 可实现对向量嵌入的高效管理和查询,显著加快将用户查询与产品目录匹配所需的相似度搜索速度。
建议您使用 Amazon CloudWatch 和 AWS Auto Scaling 等 AWS 服务持续监控和优化系统性能,以便本指南中的组件保持响应速度和成本效益。
-
成本优化
SageMaker 提供采用即用即付定价模式的托管服务以及针对特定工作负载进行了优化的实例类型,有助于降低成本。此外,RDS for PostgreSQL 的预留实例和扩展选项可根据数据库工作负载调整资源,最大限度地减少不必要的开支,从而实现成本效益。您可以实施成本监控和优化策略,例如 AWS Budgets 和 AWS Cost Explorer 成本管理服务,以持续识别和解决潜在的成本效率低下问题。
-
可持续性
SageMaker 和 RDS for PostgreSQL 都是 AWS 托管服务,通过高效处理工作负载来优化资源使用,通过最大限度地减少工作负载所需的计算资源来降低对环境的影响。通过在 AWS 云中部署本指南,您可以避免采购物理硬件,从而进一步增强系统的整体可持续性。而且,使用 AWS CloudTrail 和 AWS Config 等 AWS 服务来监控和执行可持续实践,例如资源利用率和能源效率。
相关内容
使用 Amazon SageMaker 和 pgvector 在 PostgreSQL 中构建人工智能驱动的搜索
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。