利用生成式人工智能发掘企业数据的潜力:来自亚马逊肯德拉、LangChain和大规模语言模型的见解

利用生成式人工智能挖掘企业数据的潜力:来自亚马逊肯德拉、LangChain和大规模语言模型的独到见解

大型语言模型(LLMs)以其广博的知识可以在几乎任何主题上生成类似人类的文本。然而,它们在海量数据集上的训练也限制了它们在专门任务上的有用性。没有持续的学习,这些模型对于新数据和趋势完全无视,这些数据和趋势是在它们初始训练之后出现的。此外,训练新的LLMs的成本对于许多企业来说可能是禁止的。然而,使用检索增强生成(RAG)的方法,可以通过将模型答案与原始专业内容进行交叉引用从而避免训练新的LLM模型。

RAG使LLMs能够检索和整合外部知识。RAG不仅依靠其预训练的知识,还使模型能够从文档、数据库等中获取数据。然后模型巧妙地将这些外部信息整合到其生成的文本中。通过获取与上下文相关的数据,模型可以提供根据您的用例定制的明智、最新的回答。知识增强也降低了模型出现错觉、生成不准确或无意义文本的可能性。通过RAG,基础模型成为了能够随着您的知识库的增长而适应的专业专家。

今天,我们很高兴地推出了三个生成AI演示,根据MIT-0许可证进行许可:

  • 使用基础LLM的Amazon Kendra – 利用Amazon Kendra的深度搜索功能与LLMs的丰富知识结合。这种集成可以通过从各种来源获取的数据提供精确且能够理解上下文的复杂查询答案。
  • 使用基础LLM的嵌入模型 – 将嵌入的能力(一种捕捉单词和短语的语义含义的技术)与LLMs的广泛知识库相结合。这种协同作用使得话题建模、内容推荐和语义搜索能力更加准确。
  • 基础模型制药广告生成器 – 为制药行业量身定制的专用应用。利用基础模型的生成能力,这个工具可以创建令人信服且符合行业标准和法规的药品广告。

这些演示可以在您的AWS账户中无缝部署,为您提供基础洞察和指导,以利用AWS服务创建先进的LLM生成AI问答机器人和内容生成。

在本文中,我们将探讨如何通过结合Amazon Kendra或自定义嵌入的RAG,来克服这些挑战并对自然语言查询提供精细的响应。

解决方案概述

通过采用这个解决方案,您可以获得以下好处:

  • 改进的信息获取 – RAG允许模型从广泛的外部来源中获取信息,当预训练模型的知识过时或不完整时,这尤其有用。
  • 可扩展性 – RAG允许模型根据需要检索相关信息。这意味着当新数据可用时,可以将其添加到检索数据库中,而无需重新训练整个模型。
  • 内存效率 – LLMs需要大量内存来存储参数。通过使用RAG,模型可以更小,因为它不需要记住所有细节,只需要在需要时检索。
  • 动态知识更新 – 与具有固定知识端点的传统模型不同,RAG的外部数据库可以进行定期更新,使模型获得最新的信息。检索功能可以根据不同的任务进行微调。例如,医学诊断任务可以从医学期刊中获取数据,确保模型获得专家和相关的见解。
  • 偏见缓解 – 从经过精心策划的数据库中获取信息的能力有助于通过确保平衡和公正的外部来源来最小化偏见。

在深入了解Amazon Kendra与基础LLMs的集成之前,重要的是要具备必要的工具和系统要求。具备正确的设置是实现演示无缝部署的第一步。

先决条件

您必须具备以下先决条件:

尽管您可以从您的本地计算机设置和部署本教程中详细介绍的基础架构,但AWS Cloud9提供了一个便捷的替代方案。 AWS Cloud9预装了AWS CLI、AWS CDK和Docker等工具,可以作为您的部署工作站。要使用此服务,只需通过AWS Cloud9控制台设置环境。

有了前提条件,让我们深入了解Amazon Kendra with foundational LLM的功能和能力。

Amazon Kendra with foundational LLM

Amazon Kendra是一种通过机器学习(ML)增强的先进企业搜索服务,提供现成的语义搜索功能。借助自然语言处理(NLP),Amazon Kendra可以理解文档的内容和用户查询的潜在意图,使其成为基于RAG的解决方案的内容检索工具。通过使用Kendra的高准确性搜索内容作为RAG负载,可以获得更好的LLM响应。此解决方案中使用Amazon Kendra还可以根据最终用户的内容访问权限过滤响应,实现个性化搜索。

以下图示显示了使用RAG方法的生成型AI应用的架构。

文档是通过Amazon Simple Storage Service (Amazon S3)连接器由Amazon Kendra处理和索引的。来自Amazon Kendra的客户请求和上下文数据将指向Amazon Bedrock基础模型。演示允许您在由Amazon Bedrock支持的Amazon的Titan、AI21的Jurassic和Anthropic的Claude模型之间进行选择。会话历史记录保存在Amazon DynamoDB中,为LLM生成响应提供了附加的上下文。

我们在GitHub存储库中提供了此演示。请参阅自述文件中的部署说明,将其部署到您的AWS账户中。

以下步骤概述了用户与生成型AI应用交互时的过程:

  1. 用户通过Amazon Cognito进行身份验证登录到Web应用程序。
  2. 用户将一个或多个文档上传到Amazon S3。
  3. 用户运行Amazon Kendra同步作业,将S3文档摄入Amazon Kendra索引。
  4. 用户的问题通过Amazon API Gateway上托管的安全WebSocket API路由,该API由AWS Lambda 函数支持。
  5. 由AI语言模型驱动的多用途工具LangChain框架赋予的Lambda函数连接到Amazon Bedrock端点,根据聊天历史重定述用户的问题。重定述后的问题被转发给Amazon Kendra,使用Retrieve API显示查询结果,提供来自企业摄入数据中相关文档的摘录。
  6. 将用户的问题以及从索引中检索到的数据作为上下文发送给LLM提示。LLM的响应作为聊天历史记录存储在DynamoDB中。
  7. 最后,将LLM的响应发送回用户。

文档索引工作流程

以下是处理和索引文档的步骤:

  1. 用户通过用户界面(UI)提交文档。
  2. 文档通过AWS Amplify API传输到S3存储桶。
  3. Amazon Kendra通过Amazon Kendra S3连接器在S3存储桶中索引新文档。

优势

以下清单突出了这种解决方案的优势:

  • 企业级检索 – Amazon Kendra专为企业搜索而设计,适用于拥有大量结构化和非结构化数据的组织。
  • 语义理解 – Amazon Kendra的机器学习能力确保检索基于深度语义理解而不仅仅是关键字匹配。
  • 可扩展性 – Amazon Kendra可以处理大规模数据源,并提供快速和相关的搜索结果。
  • 灵活性 – 基础模型可以根据各种背景生成答案,确保系统的多功能性。
  • 集成能力 – Amazon Kendra可以与各种AWS服务和数据源集成,适应不同的组织需求。

具有基础LLM的嵌入模型

嵌入是表示不同数据类型(包括文本、图像、音频和文档)核心本质的数值向量。这种表示不仅捕捉了数据的内在含义,而且使其适用于各种实际应用。嵌入模型是机器学习的一个分支,将复杂的数据(如词语或短语)转化为连续的向量空间。这些向量本质上把数据之间的语义联系牢牢地抓在手中,使得更深入和更有洞察力的比较成为可能。

当接收到查询时,RAG系统利用嵌入来从大量数据中识别和提取相关部分。然后,基础模型根据这些提取的信息制定出一个上下文准确的响应。数据检索和响应生成之间的完美协同使系统能够提供全面的答案,利用存储在广泛数据库中的丰富知识。

在架构布局中,根据用户界面选择,用户被引导到亚马逊Bedrock或亚马逊SageMaker JumpStart基础模型。文档经过处理,嵌入模型生成向量嵌入。然后使用FAISS对这些嵌入进行索引,以实现高效的语义搜索。对话历史保存在DynamoDB中,丰富了LLM的响应上下文。

以下图示了解决方案架构和工作流程。

我们在GitHub仓库中提供了此演示。请参考自述文件中的部署说明将其部署到您的AWS账户。

嵌入模型

嵌入模型的职责如下:

  • 该模型负责将文本(如文档或段落)转换为密集的向量表示,通常称为嵌入。
  • 这些嵌入捕捉了文本的语义含义,使得不同文本之间的比较高效且有语义意义。
  • 嵌入模型可以在与基础模型相同的大量语料库上进行训练,也可以针对特定领域进行专门训练。

问答流程

以下步骤描述了对文档进行问题回答的工作流程:

  1. 用户通过Amazon Cognito登录Web应用程序进行身份验证。
  2. 用户将一个或多个文档上传到Amazon S3。
  3. 在文档传输后,S3事件通知触发一个Lambda函数,该函数调用SageMaker嵌入模型端点,为新文档生成嵌入。嵌入模型将问题转换为密集向量表示(嵌入)。生成的向量文件安全地存储在S3存储桶中。
  4. FAISS检索器将该问题嵌入与数据库中所有文档或段落的嵌入进行比较,以找到最相关的段落。
  5. 将段落与用户的问题一起提供给基础模型。Lambda函数使用LangChain库,并连接到具有上下文填充查询的Amazon Bedrock或SageMaker JumpStart端点。
  6. LLM的响应与用户的查询、时间戳、唯一标识符以及其他用于该项的任意标识符(例如问题分类)一起存储在DynamoDB中。将问题和答案作为离散项存储使得Lambda函数可以根据问题提出的时间轻松重新创建用户的对话历史。
  7. 最后,通过API网关WebSocket API集成响应,将响应发送回用户。

好处

以下列表描述了该解决方案的好处:

  • 语义理解 – 嵌入模型确保检索器基于深层语义理解而不仅仅是关键词匹配选择段落。
  • 可扩展性 – 嵌入允许高效的相似性比较,使得快速搜索大量文档数据库成为可能。
  • 灵活性 – 基础模型可以根据各种上下文生成答案,确保系统保持灵活多变。
  • 领域适应性 – 嵌入模型可以针对特定领域进行训练或微调,使系统适应各种应用。

基础模型:制药广告生成器

在当今快节奏的制药行业中,高效和本地化的广告比以往任何时候都更为重要。为此,我们提供一种创新的解决方案,利用生成型人工智能从源图像和PDF中制作本地化的制药广告。除了加速广告生成过程外,这种方法还简化了医学法律审查(MLR)流程。MLR是一种严格的审查机制,医学、法律和监管团队在其中精心评估推广材料,以确保其准确性、科学支持性和合规性。传统的内容创作方法可能繁琐,通常需要手动调整和广泛审查,以确保与区域合规性和相关性一致。但是,随着生成型人工智能的出现,我们现在能够自动化地制作与当地受众真正共鸣的广告,同时保持严格的标准和准则。

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

根据选定的模型和广告偏好,用户会无缝地被引导到Amazon Bedrock基础模型。这种简化的方法确保新广告根据所需的配置精确生成。作为该过程的一部分,文档通过Amazon Textract高效地处理,并将结果文本安全地存储在DynamoDB中。该解决方案的一个亮点是图像和文本生成的模块化设计,使您能够根据需要独立重新生成任何组件。

我们在GitHub存储库中提供了这个演示。请参阅自述文件中的部署说明,将其部署到您的AWS账户中。

内容生成工作流程

以下步骤概述了内容生成的过程:

  1. 用户选择他们的文件、源图像、广告位置、语言和图像风格。
  2. 通过Amazon Cognito身份验证,确保对Web应用程序的安全访问。
  3. 通过Amplify托管Web应用程序的前端。
  4. 由API Gateway管理的WebSocket API促进用户请求。这些请求通过AWS身份和访问管理(IAM)进行验证。
  5. 与Amazon Bedrock的集成包括以下步骤:
    • Lambda函数使用LangChain库连接到Amazon Bedrock端点,并使用上下文丰富的查询。
    • 文本到文本基础模型根据给定的上下文和设置创建一个上下文相关的广告。
    • 文本到图像基础模型创建一个定制的图像,受源图像、选择的样式和位置的影响。
  6. 用户通过集成的API Gateway WebSocket API通过HTTPS请求接收响应。

文档和图像处理工作流程

以下是处理文档和图像的流程:

  1. 用户通过指定的用户界面上传资源。
  2. Amplify API将文档传输到S3存储桶。
  3. 在资源传输到Amazon S3之后,将执行以下一项操作:
    • 如果是文档,Lambda函数使用Amazon Textract来处理和提取用于广告生成的文本。
    • 如果是图像,Lambda函数将其转换为base64格式,以适应使用源图像创建新图像的稳定扩散模型。
  4. 提取的文本或base64图像字符串安全保存在DynamoDB中。

益处

以下清单描述了这个解决方案的益处:

  • 效率 – 使用生成式人工智能显著加速广告生成过程,消除了手动调整的需要。
  • 遵守合规性 – 该解决方案确保生成的广告符合特定的指导方针和规定,例如美国食品药品监督管理局(FDA)的营销指南。
  • 具有成本效益 – 通过自动化定制广告的创建,公司可以显著降低与广告制作和修订相关的成本。
  • 精简的MLR流程 – 该解决方案简化了MLR流程,减少了摩擦点,确保平稳的审核。
  • 本地共鸣 – 生成式人工智能产生与当地观众共鸣的广告,确保在不同地区具有相关性和影响力。
  • 标准化 – 该解决方案保持必要的标准和指南,确保所有生成的广告保持一致性。
  • 可扩展性 – 基于人工智能的方法可以处理庞大的源图像和PDF数据库,使大规模广告生成成为可能。
  • 减少手动干预 – 自动化减少了人为干预的需求,减少了错误,确保一致性。

您可以从本地计算机部署此教程中的基础架构,或者可以将AWS Cloud9作为部署工作站。 AWS Cloud9预装了AWS CLI、AWS CDK和Docker。如果您选择使用AWS Cloud9,请从AWS Cloud9控制台创建环境

清理

为了避免不必要的成本,请通过AWS CloudFormation控制台清理所有创建的基础架构,或者在工作站上运行以下命令:

$ cdk destroy —all.

此外,请记得关闭通过SageMaker控制台启动的任何SageMaker端点。请记住,删除Amazon Kendra索引不会从存储中删除原始文档。

结论

生成式人工智能(LLMs)代表了我们访问和生成信息的范式转变。尽管这些模型功能强大,但它们往往受到其训练数据的限制。RAG解决了这一挑战,确保这些模型内部的广泛知识始终与相关的和当前的观点相结合。

我们基于RAG的演示向世人展示了这一点。它们展示了Amazon Kendra,向量嵌入和LLMs之间的无缝协同,打造出一个信息不仅广泛而且准确及时的系统。当您深入研究这些演示时,您将第一手地探索将预训练知识与RAG的动态能力相结合的变革潜力,从而产生既可靠又适合企业内容的输出。

虽然由LLMs提供动力的生成型AI开启了获得信息洞察的新途径,但这些洞察必须可信且仅限于使用RAG方法进行企业内容。这些基于RAG的演示使您能够获得准确和最新的洞察。这些洞察的质量取决于语义的相关性,而要实现语义的相关性,您需要使用Amazon Kendra和向量嵌入。

如果您准备进一步探索和利用生成型AI的力量,以下是您的下一步:

  • 参与我们的演示–亲身体验是无价之宝。探索功能,了解集成,熟悉界面。
  • 深入了解–利用现有的资源。AWS提供深入的文档,教程和社区支持,助力您的AI之旅。
  • 启动试点项目–考虑在您的企业中以小规模实现生成型AI。这将为您提供有关系统在特定环境中的实用性和适应性的洞察。

有关AWS上生成型AI应用的更多信息,请参阅以下链接:

请记住,AI的领域不断发展。保持更新,保持好奇,并始终准备适应和创新。