使用Amazon Bedrock的知识库构建可扩展、安全可靠的RAG应用程序

本文探讨了AmazonBedrock新引入的企业级功能,特别是在与AWSWell-ArchitectedFramework的一致性上,以实现生成式AI应用程序的可扩展性、安全性和成本效益。文章详细介绍了CloudFormation支持、私有网络策略、多S3数据源和ServiceQuotas的应用,以及这些如何与AWS架构原则协同工作,确保RAG应用的稳健和可持续发展。
摘要由CSDN通过智能技术生成

5c7c8bff2c1f6c4d63ea42b982203ee3.jpeg

生成式人工智能 (AI) 在组织中积极探索其潜在应用的情况下获得了显著的发展势头。随着成功的概念验证转向生产环境,组织越来越需要企业级的可扩展解决方案。然而,为了解锁这些AI驱动解决方案的长期成功和可行性,关键是要与经过实践检验的架构原则保持一致。

Amazon Web Services Well-Architected Framework提供了在云中设计和运营可靠、安全、高效和经济实用的系统的最佳实践和指南。将生成式AI应用程序与该框架保持一致非常重要,原因有以下几点:提供可扩展性、维护安全性和隐私性、实现可靠性、优化成本和简化运营。对于寻求利用生成式AI的力量并推动创新的组织来说,采用这些原则至关重要。

本文探讨了Amazon Bedrock的新企业级功能以及它们与Amazon Web Services Well-Architected Framework的契合度。通过Amazon Bedrock的知识库,您可以使用检索增强的生成(RAG)技术快速构建应用程序,用于问答、上下文聊天机器人和个性化搜索等用例。

下面是我们将要介绍的一些功能:

  1. Amazon CloudFormation支持
  2. 用于Amazon OpenSearch Serverless的私有网络策略
  3. 多个S3存储桶作为数据源
  4. 服务配额支持
  5. 混合搜索、元数据过滤、RetreiveAndGenerate API的自定义提示以及最大检索次数。

Amazon Web Services Well-Architected设计原则

使用Amazon Bedrock的知识库构建的基于RAG的应用程序可以从遵循Amazon Web Services Well-Architected Framework中获得很大裨益。该框架包含六个支柱,可帮助组织确保其应用程序安全、高性能、有弹性、高效、经济、可持续:

  • 运营卓越 – Well-Architected原则可以简化运营、自动化流程,并实现对生成式AI应用程序性能的持续监控和改进。
  • 安全性 – 实施强有力的访问控制、加密和监控措施,可以保护组织知识库中使用的敏感数据,防止滥用生成式AI。
  • 可靠性 – Well-Architected原则指导了设计出有弹性和容错能力的系统,从而为用户提供一致的价值交付。
  • 性能优化 – 选择合适的资源、实施缓存策略以及主动监控性能指标,可确保应用程序提供快速和准确的响应,从而实现最佳性能和增强用户体验。
  • 成本优化 – Well-Architected指南可以帮助优化资源使用、采用节省成本的服务以及监控费用支出,从而确保了生成式AI项目的长期可行性。
  • 可持续性 – Well-Architected原则倡导高效利用资源并最小化碳足迹,以解决日益增长的生成式AI使用对环境的影响。

通过与Well-Architected Framework保持一致,组织可以有效构建和管理使用Amazon Bedrock知识库的企业级RAG应用程序。现在,让我们深入探讨Amazon Bedrock知识库推出的新功能。

Amazon CloudFormation支持

对于构建RAG应用程序的组织而言,提供高效有效的运营以及跨不同环境保持一致的基础设施非常重要。这可以通过实施自动化部署流程等实践来实现。为了实现这一目标,Amazon Bedrock知识库现在提供了对Amazon CloudFormation的支持。

借助Amazon CloudFormation和Amazon Web Services Cloud Development Kit (Amazon CDK),您现在可以创建、更新和删除知识库及其关联的数据源。为了管理知识库和关联的数据源采用Amazon CloudFormation和Amazon CDK,不仅可以简化部署过程,而且还可以促进遵循Well-Architected原则。通过将运营(应用程序、基础设施)作为代码来执行,您可以在多个亚马逊云科技账户和亚马逊云科技区域中提供一致可靠的部署,并维护经过版本控制和可审计的基础设施配置。

以下是一个用于创建和更新Amazon Bedrock知识库的JSON格式CloudFormation示例脚本:

{

"Type" : "AWS::Bedrock::KnowledgeBase",

"Properties" : {

"Name": String,

"RoleArn": String,

"Description": String,

"KnowledgeBaseConfiguration": {

"Type" : String,

"VectorKnowledgeBaseConfiguration" : VectorKnowledgeBaseConfiguration

},

"StorageConfiguration": StorageConfiguration,

}

}

Type指定将知识库作为顶级模板中的一个资源。至少,您必须指定以下属性:

  • Name – 为知识库指定一个名称。
  • RoleArn – 指定具有权限在知识库上调用API操作的Amazon Identity and Access Management (IAM) 角色的Amazon资源名称(ARN)。有关更多信息,请参阅为Amazon Bedrock知识库创建服务角色。
  • KnowledgeBaseConfiguration – 指定知识库的嵌入配置。需要以下子属性:
    • Type – 指定值VECTOR。
    • VectorKnowledgeBaseConfiguration – 包含用于为知识库创建向量嵌入的模型的详细信息。
  • StorageConfiguration – 指定有关数据源所存储的向量存储的信息。需要以下子属性:
    • Type – 指定您正在使用的向量存储服务。
    • 您还需要选择Knowledge Bases支持的向量存储之一,如OpenSearchServerless、Pinecone或Amazon PostgreSQL,并为所选的向量存储提供配置。

有关所有字段的详细信息,以及为Amazon Bedrock知识库支持的各种向量存储提供配置的信息,请参阅亚马逊云科技::Bedrock::KnowledgeBase。

截至本文撰写时,Amazon CloudFormation尚不支持Redis Enterprise Cloud向量存储。有关最新信息,请查阅上述文档。

创建知识库后,您需要从包含知识库文件的Amazon简单存储服务 (Amazon S3) 存储桶创建数据源。它调用CreateDataSource和DeleteDataSource API。

以下是JSON格式的CloudFormation示例脚本:

{

"Type" : "AWS::Bedrock::DataSource",

"Properties" : {

"KnowledgeBaseId": String,

"Name": String,

"RoleArn": String,

"Description": String,

"DataSourceConfiguration": {

"S3Configuration" : S3DataSourceConfiguration,

"Type" : String

},

ServerSideEncryptionConfiguration":ServerSideEncryptionConfiguration,

"VectorIngestionConfiguration": VectorIngestionConfiguration

}

}

Type指定将数据源作为顶级模板中的一个资源。至少,您必须指定以下属性:

  • Name – 为数据源指定一个名称。
  • KnowledgeBaseId – 指定数据源所属的知识库的ID。
  • DataSourceConfiguration – 指定包含数据源的S3存储桶的信息。需要以下子属性:
    • Type – 指定值S3。
    • S3Configuration – 包含包含数据源的S3对象的配置详细信息。
  • VectorIngestionConfiguration – 包含如何摄取数据源中的文档的详细信息。您需要提供”Chunking Configuration“,您可以在其中定义分块策略。
  • ServerSideEncryptionConfiguration – 包含服务器端加密的配置,您可以在其中提供用于加密资源的Amazon Web Services KMS密钥的Amazon资源名称(ARN)。

有关在Amazon Bedrock中设置数据源的更多信息,请参阅为知识库设置数据源。

注意:创建数据源后,您无法更改分块配置。

CloudFormation模板允许您使用基础设施作为代码(IaC)来定义和管理知识库资源。通过自动设置和管理知识库,您可以在不同环境下提供一致的基础设施。这种方法符合运营卓越支柱,该支柱强调将操作作为代码来执行。通过将整个工作负载视为代码,您可以自动化流程、对事件创建一致的响应,并最终减少人为错误。

用于Amazon OpenSearch Serverless的私有网络策略

对于构建RAG应用程序的公司而言,确保数据保持安全且网络流量不会流向公共互联网至关重要。为了支持这一点,Amazon Bedrock知识库现在支持Amazon OpenSearch Serverless的私有网络策略。

Amazon Bedrock知识库提供了将OpenSearch Serverless用作向量存储的选项。您现在可以访问设置了私有网络策略的OpenSearch Serverless集合,进一步增强了RAG应用程序的安全态势。为此,您需要创建一个OpenSearch Serverless集合,并将其配置为私有网络访问。首先,在集合中创建一个向量索引,用于存储嵌入。然后,在创建集合时,将网络访问设置设置为私有并指定VPC端点进行访问。重要的是,您现在可以为Amazon Bedrock专门提供OpenSearch Serverless的私有网络访问集合。为此,选择亚马逊云科技服务私有访问,并指定bedrock.amazonaws.com作为服务。

a322eb464ef6ac15cddaf5eb695e74e6.jpeg

这种私有网络配置确保您的嵌入被安全地存储,并且只能由Amazon Bedrock访问,从而增强了知识库的整体安全性和隐私性。它与安全性支柱的控制所有层中的流量的理念密切相关,因为在这些设置下,所有网络流量都保持在亚马逊云科技骨干网内。

到目前为止,我们已经探讨了自动创建、删除和更新知识库资源,以及通过OpenSearch Serverless的私有网络策略来安全地存储向量嵌入以增强安全性。现在,让我们了解如何构建更可靠、更全面和更具成本优化的RAG应用程序。

将多个 S3 存储桶作为数据源

Amazon Bedrock Knowledge Bases 现在支持在单个知识库中添加多个 S3 存储桶作为数据源,包括跨账户访问。这一增强功能通过允许用户无缝地汇总和使用来自各种来源的信息来提高知识库的全面性和准确性。

以下是主要功能:

  • 多个 S3 存储桶 - Amazon Bedrock Knowledge Bases 现在可以整合来自多个 S3 存储桶的数据,使用户能够轻松地组合并使用来自不同来源的信息。这一功能促进了数据多样性,并确保 RAG 应用程序可以随时获得相关信息。
  • 跨账户数据访问 - Amazon Bedrock Knowledge Bases 支持配置跨不同账户的 S3 存储桶作为数据源。您可以提供访问这些数据源所需的凭据,从而扩大可以纳入知识库的信息范围。
  • 高效的数据管理 - 当删除数据源或知识库时,向量存储中相关或现有的项目会自动被移除。该功能确保知识库保持最新状态,并且没有过时或无关的数据,从而维护了 RAG 过程的完整性和准确性。

通过支持多个 S3 存储桶作为数据源,不再需要创建多个知识库或冗余数据副本,从而优化成本并促进云财务管理。此外,跨账户访问功能能够开发出有弹性的架构,与 亚马逊云科技 良好架构框架的可靠性支柱保持一致,提供高可用性和容错能力。

最近宣布的 Knowledge Bases 其他功能

为进一步提高 RAG 应用程序的可靠性,Amazon Bedrock Knowledge Bases 现在扩展了对 Service Quotas 的支持。该功能提供了单一窗口来查看应用的 亚马逊云科技 配额值和使用情况。例如,您现在可以快速访问诸如每秒允许的 RetrieveAndGenerate API 请求数之类的信息。

该功能允许您有效管理资源配额、防止过度供应以及限制 API 请求速率,以保护服务免受潜在滥用。

您还可以使用最近宣布的诸如混合搜索、基于元数据的过滤、自定义 RetreiveAndGenerate API 提示和最大检索数 等功能来提高应用程序性能。这些功能共同提高了生成响应的准确性、相关性和一致性,并与 亚马逊云科技 良好架构框架的性能效率支柱保持一致。

Amazon Bedrock Knowledge Bases 通过使用托管服务和优化资源利用率,与 亚马逊云科技 良好架构框架的可持续性支柱保持一致。作为一项完全托管的服务,Amazon Bedrock Knowledge Bases 消除了配置、管理和扩展底层基础设施的负担,从而减少了与运营和维护这些资源相关的环境影响。

此外,通过与 亚马逊云科技 良好架构原则保持一致,组织可以以可持续的方式设计和运营其 RAG 应用程序。实施 Amazon CloudFormation 自动化部署、实施私有网络策略以获取安全的数据访问、使用高效的服务如 OpenSearch Serverless 等实践有助于最小化这些工作负载对环境的影响。

总体而言,Amazon Bedrock Knowledge Bases 结合 亚马逊云科技 良好架构框架,使组织能够构建可扩展、安全且可靠的 RAG 应用程序,同时优先考虑通过高效利用资源和采用托管服务来实现环境可持续性。

结论

Knowledge Bases for Amazon Bedrock 的新企业级功能,如 Amazon CloudFormation 支持、私有网络策略、将多个 S3 存储桶用作数据源的能力以及对服务配额的支持,使用简化了在可扩展、安全和可靠的 RAG 应用程序上构建。通过使用 亚马逊云科技 托管服务并遵循良好的架构实践,组织可以专注于交付创新的生成式 AI 解决方案,同时提供运营卓越性、健壮的安全性和高效的资源利用率。在 亚马逊云科技 上构建应用程序时,将 RAG 应用程序与 亚马逊云科技 良好架构框架保持一致可为构建符合行业标准、推动业务价值的企业级解决方案奠定坚实的基础。

有关更多资源,请参考:

  • Amazon Bedrock Knowledge Bases
  • 使用 RAG 改进生成式 AI 应用程序响应
  • Amazon Bedrock Knowledge Base - 构建 RAG 工作流示例

关于作者

f97aee0138788c37e5f31c296f3bd1e5.jpeg

Mani Khanuja 是 Generative AI 专家技术主管,《Applied Machine Learning and High Performance Computing on 亚马逊云科技》一书作者,也是 Women in Manufacturing Education Foundation Board 董事会成员。她主导各领域如计算机视觉、自然语言处理和生成式 AI 的机器学习项目。她出席了 Amazon Web Services re:Invent、Women in Manufacturing West、YouTube 网络研讨会和 GHC 23 等内部和外部会议并发表演讲。闲暇时,她喜欢沿着海滩长跑。

708acd82d9f0dad557afe1c24d547e63.jpeg

Nitin Eusebius 是 亚马逊云科技 的高级企业解决方案架构师,拥有软件工程、企业架构和 AI/ML 方面的经验。他对探索生成式 AI 的可能性充满热情。他与客户合作,帮助他们在 亚马逊云科技 平台上构建良好的架构应用程序,并致力于解决技术挑战和协助他们的云之旅。

fd841a67a5152a19ba4b69dfaccc97b9.jpeg

Pallavi Nargund 是 亚马逊云科技 的首席解决方案架构师。作为云技术推动者,她与客户合作,了解他们的目标和挑战,并就如何利用 亚马逊云科技 产品实现目标提供规范性指导。她对女性从事技术工作充满热情,是 Amazon Women in AI/ML 的核心成员。她出席 Amazon Web Services re:Invent、Amazon Web Services Summits 和网络研讨会等内部和外部会议并发表演讲。工作之余,她喜欢做志愿者、园艺、骑自行车和远足。

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值