将 S3 Vectors 与 Amazon Bedrock 知识库结合使用 - Amazon Simple Storage Service

将 S3 Vectors 与 Amazon Bedrock 知识库结合使用

注意

适用于 Amazon Simple Storage Service 的 Amazon S3 Vectors 为预览版,可能会发生变化。

S3 Vectors 与 Amazon Bedrock 知识库Amazon SageMaker AI 融通式合作开发工作室集成,以简化检索增强生成(RAG)应用程序的向量存储并降低其成本。

有关将 Amazon Bedrock 嵌入模型与 S3 Vectors 操作集成的高级 CLI 命令的更多信息,请参阅。

集成概述

在 Amazon Bedrock 中创建知识库时,可以选择 S3 Vectors 作为向量存储。此集成提供以下内容:

  • 对于使用大型向量数据集的 RAG 应用程序,可节省成本

  • 与 Amazon Bedrock 的完全托管式 RAG 工作流程无缝集成

  • 由 Amazon Bedrock 服务处理的自动向量管理

  • 知识库检索操作的查询延迟为亚秒级

Amazon Bedrock 知识库提供了完全托管式的端到端 RAG 工作流程。使用 S3 Vectors 创建知识库时,Amazon Bedrock 自动从 S3 数据来源获取数据,将内容转换为文本块,生成嵌入,并将其存储在向量索引中。然后,可以查询知识库,并根据从源数据中检索的分块生成响应。

何时使用此集成

当需要以下各项时,可考虑将 S3 Vectors 与 Amazon Bedrock 知识库结合使用:

  • 经济高效的向量存储,适用于亚秒级查询延迟可满足应用程序要求的大型数据集。

  • 基于文本和图像的文档检索,适用于搜索手册、策略和可视化内容等使用案例。

  • RAG 应用程序,优先考虑存储成本优化而不是超低延迟响应。

  • 托管式向量操作,而无需直接学习 S3 Vectors API 操作:可以继续使用熟悉的 Amazon Bedrock 界面。

  • 长期向量存储,具有 Amazon S3 的耐久性和可扩展性

这种集成非常适合于要构建 RAG 应用程序的组织,这些应用程序需要搜索写入的内容和图像并从中提取见解,其中 S3 Vectors 的成本优势与可接受的查询性能要求相一致。

支持的嵌入模型

S3 Vectors 与 Amazon Bedrock 知识库的集成支持以下嵌入模型:

  • amazon.titan-embed-text-v2:0:适用于基于文本的嵌入

  • amazon.titan-embed-image-v1:适用于图像嵌入和多模态嵌入

  • cohere.embed-english-v3:适用于多语言和专业的文本嵌入

先决条件和权限

在使用 S3 Vectors 创建知识库之前,请确保您具备以下各项:

设置安全配置时,可以选择一个 IAM 角色,该角色可为 Amazon Bedrock 提供访问所需 AWS 服务的权限。可以让 Amazon Bedrock 创建服务角色,也可以使用您自己的自定义角色。如果使用自定义角色,请配置向量存储桶策略,该策略将向量存储桶和向量索引的访问权限限制为该自定义角色。

有关所需权限和 IAM 角色的详细信息,请参阅《Amazon Bedrock User Guide》中的 Create a service role for Amazon Bedrock Knowledge Bases。服务角色还必须具有对 S3 Vectors 和 AWS KMS API 操作的权限。

使用 S3 Vectors 创建知识库

可以通过两种方法创建使用 S3 Vectors 的知识库。

方法一:使用 Amazon Bedrock 控制台

在 Amazon Bedrock 控制台中创建知识库时,可以选择“S3 向量存储桶”作为向量存储选项。您有两个设置选项:

  • 快速创建新的向量存储:Amazon Bedrock 创建 S3 向量存储桶和向量索引,并使用所需的设置对它们进行配置。默认情况下,向量存储桶使用具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)进行加密。可以选择使用 AWS KMS 对存储桶进行加密。有关在控制台中快速创建新的向量存储的更多信息,请参阅《Amazon Bedrock User Guide》中的 Create a knowledge base by connecting to a data source in Amazon Bedrock Knowledge Bases

  • 选择您创建的向量存储:从您的账户中选择您之前创建的现有 S3 向量存储桶和向量索引。有关在 Amazon Bedrock 知识库控制台中创建 S3 向量存储桶和向量索引的更多信息,请参阅《Amazon Bedrock User Guide》Prerequisites for using a vector store you created for a knowledge base 中的“S3 Vectors”选项卡。

有关详细的分步说明,请参阅《Amazon Bedrock User Guide》中的 Create a knowledge base by connecting to a data source in Amazon Bedrock Knowledge Bases

方法二:使用 Amazon SageMaker 融通式合作开发工作室

还可以通过 Amazon SageMaker AI 融通式合作开发工作室中的 Amazon Bedrock 使用 S3 Vectors 来创建和管理知识库。这为构建和测试使用知识库的人工智能应用程序提供了统一的开发环境。

SageMaker AI 融通式合作开发工作室中的 Amazon Bedrock 专为需要集成的笔记本功能和使用多种 AWS 机器学习和分析服务的用户而设计。在构建生成式人工智能应用程序时,可以快速创建 S3 向量存储桶并将其配置为知识库的向量存储。

有关将 S3 Vectors 与 SageMaker AI 融通式合作开发工作室中的 Amazon Bedrock 结合使用的信息,请参阅《SageMaker AI Unified Studio User Guide》中的 Add a data source to your Amazon Bedrock app

管理和查询知识库

数据同步和管理

Amazon Bedrock 知识库提供摄取作业操作,以使数据来源和向量嵌入保持同步。同步数据来源时,Amazon Bedrock 扫描每个文档,并验证是否已将其编入向量存储的索引中。也可以使用 IngestKnowledgeBaseDocuments 操作将文档直接编入向量存储的索引中。最佳实践是为每个知识库创建单独的向量存储,以确保数据同步。

删除知识库或数据来源资源时,Amazon Bedrock 提供两种数据删除策略:Delete(默认)和 Retain。如果选择 Delete 策略,则会自动删除向量索引和向量存储桶中的向量。

查询和检索

设置知识库后,可以执行以下操作:

  • 使用 Retrieve API 操作从源数据中检索分块

  • 使用 RetrieveAndGenerate API 操作根据检索到的分块生成响应

  • 直接在 Amazon Bedrock 控制台中测试查询

返回的响应中附有对原始源数据的引用。

限制

将 S3 Vectors 与 Amazon Bedrock 知识库结合使用时,应了解以下限制:

  • 仅限语义搜索:S3 Vectors 支持语义搜索,但不支持混合搜索功能。

  • S3 Vectors 大小限制:每个向量都有总元数据大小限制和可筛选元数据的大小限制,这可能会限制自定义元数据和筛选选项。有关每个向量的元数据和可筛选元数据大小限制的更多信息,请参阅限制和局限性

  • 分块策略约束:由于元数据大小限制,仅限于将内容拆分为最多 500 个令牌的分块的模型。

  • 仅限浮点向量:不支持二进制向量嵌入。

有关使用 Amazon Bedrock 知识库的全面指导,请参《Amazon Bedrock User Guide》中的 Retrieve data and generate AI responses with Amazon Bedrock Knowledge Bases