利用生成性AI驾驭企业数据的力量:来自Amazon Kendra、LangChain和大语言模型的洞
本篇文章介绍了如何利用 Amazon Kendra、LangChain 和大型语言模型 (LLMs) 中的检索增强生成 (RAG) 技术,克服专业任务的挑战,提升企业对数据的访问和利用效率。文章中还披露了三个基于生成 AI 的示范工具,并说明其具体架构、工作流程及其优势。
大型语言模型 (LLMs) 拥有广泛的知识,能在几乎任何主题上生成类似人类的文本。然而,其在庞大数据集上的训练也限制了其在专业任务中的实用性。若无持续学习,这些模型将无法获知其初次训练后出现的新数据和趋势。此外,训练新的 LLM 的成本对于许多企业来说可能是难以承担的。利用检索增强生成 (RAG),我们可以交叉比对模型的答案与原始专业内容,从而避免训练新的 LLM 模型。
蓝鸟加速器国际版RAG 透过提供检索和融入外部知识的能力来增强 LLM。模型不再仅依赖预先训练的知识,而是能从文档、数据库等中提取数据。然后,模型巧妙地将这些外部信息整合到生成的文本中,从而提供针对特定用例的知情且最新的回应。知识增强也降低了幻觉和不准确或荒谬文本的可能性。借助 RAG,基础模型成为可随著知识库增长而进化的灵活专家。
今天,我们很高兴推出三个基于 MIT0 许可证的生成 AI 演示:
演示名称描述Amazon Kendra 基础 LLM结合了 Amazon Kendra 的深层搜索能力和 LLM 的广泛知识,此整合能够依据多元来源为复杂查询提供准确且具背景的回答。嵌入模型及基础 LLM将嵌入技术一种捕捉单词和短语语义意义的技术,与 LLM 的广泛知识库相融合。该协同作用使主题建模、内容推荐和语义搜索能力更为准确。基础模型制药广告生成器专为制药行业量身定制的应用,利用基础模型的生成能力创造合规且可信的制药广告,确保内容符合行业标准及规范。这些示范可以无缝部署在您的 AWS 帐户中,并提供有关如何利用 AWS 服务创建顶尖 LLM 生成 AI 问答机器人和内容生成功能的基础见解。

在本文中,我们将探讨如何将 RAG 与 Amazon Kendra 或自定义嵌入结合,克服这些挑战,并为自然语言查询提供精确的回应。
透过采用此解决方案,您可以获得以下好处:
好处描述改进的资讯获取RAG 允许模型从大量外部来源获取资讯,特别是在预训练模型的知识过时或不完整时非常有用。可扩展性RAG 允许模型即时检索相关信息,无需为所有可用数据训练模型,并可随新数据的出现进行调整。记忆效率LLM 需要大量内存来存储参数。透过 RAG,模型能够变小,因为它不需记住所有细节,而是能在需要时检索。动态知识更新RAG 的外部数据库可进行定期更新,让模型获得最新信息。对于特定任务,可调整检索功能。偏见减少从良好策划的数据库获取信息的能力可通过确保外部来源的平衡和公正来减少偏见。在深入了解 Amazon Kendra 与基础 LLM 的整合之前,必须先准备相应的工具和系统要求。拥有合适的设置是无缝部署示范的第一步。
您必须具备以下前提条件:
一个 AWS 帐户。AWS 命令行介面 (AWS CLI) v2。具体安装参见 安装或更新 AWS CLI。Python 36 或更高版本。Nodejs 18x 或更高版本。Docker v2010 或更高版本。本文中将使用 Python 的 AWS Cloud Development Kit (AWS CDK)。请参见 AWS CDK 入门指南来设置本地环境并引导开发帐户。此 AWS CDK 专案需要 Amazon SageMaker 实例两个 mlg548xlarge。您可能需要 请求配额增加。虽然可以从本地计算机设置和部署本文所述的基础设施,但 AWS Cloud9 提供了方便的替代方案。AWS Cloud9 预装了 AWS CLI、AWS CDK 和 Docker,您只需 设置环境 即可使用此服务。
在准备好前提条件后,让我们深入了解 Amazon Kendra 与基础 LLM 的功能与能力。
Amazon Kendra 是一个先进的企业搜索服务,通过机器学习 (ML) 增强,提供即用的语义搜索能力。利用自然语言处理 (NLP),Amazon Kendra 不仅能理解文件的内容,还能掌握用户查询的潜在意图,这使其成为 RAG 解决方案的内容检索工具。通过将 Kendra 的高精度搜索内容作为 RAG 装载,您可以 obteror 对 LLM 的回应结果进行改善。使用 Amazon Kendra 此解决方案还能通过根据最终用户的内容访问权限过滤回应实现个性化搜索。
下图显示了使用 RAG 方法的生成 AI 应用架构。
Amazon Kendra 通过 Amazon 简单存储服务 (Amazon S3) 连接器处理和索引文档。客户请求和来自 Amazon Kendra 的上下文数据将导向 Amazon Bedrock 基础模型。该示范让您可以选择 Amazon 的 Titan、AI21 的 Jurassic 和 Anthropic 的 Claude 模型。对话历史存储在 Amazon DynamoDB 中,为 LLM 生成回应提供了额外的上下文。
我们已在 GitHub 仓库 中提供了此示范。请参阅 readme 文件中的部署指南以将其部署到您的 AWS 帐户中。
当用户与生成 AI 应用进行互动时,下列步骤将被执行:
用户通过 Amazon Cognito 登录到网页应用。用户上传一个或多个文档到 Amazon S3。用户运行 Amazon Kendra 同步作业,将 S3 文档导入 Amazon Kendra 索引。用户的问题通过安全 WebSocket API 转发,该 API 托管于 Amazon API Gateway,背后是 AWS Lambda 函数。Lambda 函数利用 LangChain 框架这是一个为 AI 语言模型创建应用的多功能工具连接到 Amazon Bedrock 端点,根据对话历史重新表述用户问题。重新表述后,问题将通过检索 API 转发至 Amazon Kendra。作为回应,Amazon Kendra 索引将显示搜索结果,提供相关文件摘录,这些文件来自企业所导入的数据。用户问题及从索引检索到的数据将作为上下文发送至 LLM 提示中。LLM 的回应被存储为 DynamoDB 中的对话历史记录。最后,LLM 的回应会返回给用户。文档处理和索引的过程如下:
用户通过用户界面 (UI) 提交文档。文档使用 AWS Amplify API 转移至 S3 存储桶。Amazon Kendra 通过 Amazon Kendra S3 连接器索引 S3 存储桶中的新文档。本解决方案的优势包括:
优势描述企业级检索Amazon Kendra 专为企业搜索设计,适合拥有大量结构化和非结构化数据的组织。语义理解Amazon Kendra 的 ML 能力确保基于深入的语义理解进行检索,而非仅仅是关键字匹配。可扩展性Amazon Kendra 能够处理大规模数据源,并提供快速且相关的搜索结果。灵活性基础模型能够根据各种上下文生成答案,确保系统的多功能性。集成能力Amazon Kendra 可以与各种 AWS 服务和数据来源集成,使其适应不同的组织需求。嵌入是一种数值向量,代表各种类型数据的核心本质,包括文本、图像、音频和文档。这种表示不仅捕捉数据的内在含义,还使其适用于各种实际应用。嵌入模型作为 ML 的一个分支,将复杂数据如单词或短语转换为连续的向量空间,这些向量天然地抓住数据之间的语义联系,使得更深入和更有见地的比较成为可能。
RAG 无缝整合了基础模型如变压器的优势,与嵌入的精确性结合,来筛选海量数据库中的相关信息。在收到查询时,系统利用嵌入来识别并提取大量数据中的相关部分。基础模型然后根据这些提取的信息制定合乎上下文的精确回应。这种数据检索和回应生成之间的完美协同使系统能提供全面的答案,从扩展的数据库中汲取广泛知识。
在架构布局中,根据用户的 UI 选择,用户被引导到 Amazon Bedrock 或 Amazon SageMaker JumpStart 基础模型。文档经过处理,并由嵌入模型生成向量嵌入。这些嵌入然后使用 FAISS 进行索引,以实现有效的语义搜索。对话历史同样保存在 DynamoDB 中,为 LLM 制作回应提供了丰富的上下文。
下面的图示显示了解决方案架构和工作流程。
我们已在 GitHub 仓库 中提供了此示范。请参阅 readme 文件中的部署指南以将其部署到您的 AWS 帐户中。
嵌入模型的职责如下:
此模型负责将文本如文档或段落转换为密集的向量表示,通常称为嵌入。这些嵌入捕捉文本的语义意图,允许在不同文本之间进行有效且具意义的比较。嵌入模型可以在与基础模型相同的庞大语料库上进行训练,或针对特定领域进行专门化。文档的问答流程描述如下:
用户通过 Amazon Cognito 登录网页应用。用户将一个或多个文档上传至 Amazon S3。文档传输后,S3 事件通知会触发 Lambda 函数,该函数调用 SageMaker 嵌入模型端点以生成新文档的嵌入。嵌入模型将质问转换为一个密集的向量表示嵌入。生成的向量文件安全存储在 S3 存储桶内。FAISS 检索器通过比较此问题嵌入与数据库中所有文件或段落的嵌入来寻找最相关的段落。段落及用户问题将作为上下文提供给基础模型。Lambda 函数使用 LangChain 库并与 Amazon Bedrock 或 SageMaker JumpStart 端点连接,发送上下文丰富的查询。LLM 的回应将存储在 DynamoDB 中,与用户的查询、时间戳、唯一标识符及其他任意标识符如问题类别一起保存。将问题和回答作为独立项存储,使 Lambda 函数能够根据提问时间轻松地重建用户的对话历史。最后,回应通过 API 网关 WebSocket API 集成的 HTTPS 请求返回给用户。本解决方案的优势包括:
优势描述语义理解嵌入模型确保检索器基于深层的语义理解而非仅仅是关键字匹配来选择段落。可扩展性嵌入允许高效的相似度比较,使快速在庞大文档数据库中进行搜索成为可能。灵活性基础模型能够根据多种上下文生成回答,确保系统具多样性。领域适应性嵌入模型可以为特定领域进行训练或调整,允许系统针对各种应用进行适应。