通过与用户互动来改善 RAG 用例中的 LLM 响应 机器学习博客

用户反馈提升 RAG 应用中的 LLM 响应质量

关键要点

生成式 AI 和大语言模型:常用于基于特定知识库回答用户提问,但传统的检索增强生成RAG系统常常难以满足模糊提问的需求。解决方案:通过引入交互式的澄清组件,可以提升问答质量,特别是当用户提供的背景信息不足时。自定义工具:使用 AskHumanTool 使系统能够询问用户追问问题,从而获取更多必要的上下文信息。案例研究:通过用户提问的实时互动,提升 RAG 系统的响应准确性,从而改善用户体验。

在生成式 AI 与大语言模型LLMs的众多应用中,回答基于特定知识库的问题尤为普遍。检索增强生成RAG是一种流行的构建问答系统的技术,利用外部知识库进行响应。然而,传统的 RAG 系统面对 vague 或模糊的提问时,往往难以提供满意的答案,可能会出现诸如“我不知道”或是 incorrect 的虚构答案。本文将展示如何通过引入用户交互和澄清问题的方式来改善这种情况,提高 RAG 系统的答案质量。

解决方案概述

为了展示我们的解决方案,我们设置了一个 Amazon Kendra 索引包含 AWS 的在线文档,例如 Amazon Kendra Amazon Lex 和 Amazon SageMaker,并结合使用了 LangChain 的代理模型及简单的 Streamlit 用户界面。

前提条件

要在您的 AWS 账户中运行此演示,请完成以下前提条件:

克隆该 GitHub 仓库 并按照 README 中的步骤操作。在 AWS 账户中部署一个 Amazon Kendra 索引。可使用以下 AWS CloudFormation 模板 创建新的索引,或使用已在运行的索引。部署新索引可能会增加费用,建议如果不再需要请将其删除。LangChain 代理依赖于 Amazon Bedrock 中可用的数学模型,这可以根据需要适配为任何其他 LLM。若希望使用与代码共享的样本前端,可以通过 Amazon SageMaker Studio 运行 Streamlit 应用的本地部署。请注意,运行该演示将产生额外费用。

实现方案

传统的 RAG 代理通常设计如下:代理访问用于检索与用户查询相关的文档的工具。检索的文档随后插入到 LLM 提示中,以便代理基于检索到的文档片段提供答案。

以下是我们实现的代理,访问 KendraRetrievalTool,从 Amazon Kendra 索引中获取相关文档并基于上下文提供答案:

python

Kendra 检索工具

kendratool = Tool( name=KendraRetrievalTool func=retrievalqachain description=首先使用此工具回答人类问题。该工具的输入应为用户提问。)

传统 RAG 代理

traditionalagent = initializeagent( agent=AgentTypeZEROSHOTREACTDESCRIPTION tools=[kendratool] llm=llm earlystoppingmethod=generate memory=conversationalmemory)

用户问题

answer = traditionalagentrun(我的 EC2 实例有多少个 GPU?)

小熊加速器下载官网

请参考 GitHub 仓库 获取完整实现代码,想了解更多关于传统 RAG 应用的内容,可以访问 使用基础模型的检索增强生成进行问答。

在下面的例子中,用户询问:“我的 EC2 实例有多少个 GPU?”代理通过 KendraRetrievalTool 查找答案。但代理发现不知道用户指的是哪种 Amazon Elastic Compute Cloud (Amazon EC2) 实例类型,因此给出没有帮助的答案,导致用户体验不佳。

通过定义一个额外的自定义工具 AskHumanTool 并提供给代理,我们可以解决此问题。该工具指示 LLM 阅读用户问题,如果 KendraRetrievalTool 不能返回一个好的答案,则询问用户后续问题。这意味着:

python

询问人类的工具

humanasktool = CustomAskHumanTool()

具有两个工具的 RAG 代理

improvedagent = initializeagent( agent=AgentTypeZEROSHOTREACTDESCRIPTION tools=[kendratool humanasktool] llm=llm earlystoppingmethod=generate memory=conversationalmemory)

用户问题

answer = improvedagentrun(我的 EC2 实例有多少个 GPU?)

这种方式使代理能够更精确地细化问题或提供所需的上下文,以便响应用户提问。为了引导代理使用 AskHumanTool,我们为 LLM 提供以下工具说明:

如果使用 KendraRetrievalTool 找不到答案,请使用此工具。询问人类以澄清问题或提供缺失信息。输入应为人类的问题。

通过与用户互动来改善 RAG 用例中的 LLM 响应 机器学习博客

借助 AskHumanTool,代理现在能够识别 vague 的用户提问,并返回一个后续问题,请求澄清所使用的 EC2 实例类型。

在用户指定了实例类型后,代理将额外答案纳入原始问题的上下文,从而得出正确答案。

请注意,代理现在可以根据需要决定是使用 KendraRetrievalTool 检索相关文档,还是使用 AskHumanTool 提问澄清。代理的决策依据是它是否找到足够的信息片段用于提供最终答案。这种灵活性使 RAG 系统能够应对用户可能提交的多种提问,包括精确的和模糊的提问。

在我们的示例中,完整的代理工作流如下:

用户向 RAG 应用发出请求,询问:“我的 EC2 实例有多少个 GPU?”代理使用 LLM 决定采取何种行动:通过调用 KendraRetrievalTool 查找相关信息以回答用户请求。代理使用该工具从 Amazon Kendra 索引中检索信息,并将检索到的文档片段插入代理提示中。代理的 LLM 判断来自 Amazon Kendra 的检索文档对用户请求不够有帮助或缺乏足够上下文。代理使用 AskHumanTool 形成跟进问题:“你在使用的具体 EC2 实例类型是什么?了解实例类型有助于回答它有多少个 GPU。”用户提供答案为“mlg512xlarge”,代理再次调用 KendraRetrievalTool,这次将 EC2 实例类型添加到搜索查询中。再次运行步骤 2 至 4,代理总算得出有用的答案并返回给用户。

清理

为了避免不必要的费用,如果不再使用,请删除 Amazon Kendra 索引,并关闭 SageMaker Studio 实例如果使用该实例来运行演示。

结论

在本篇文章中,我们展示了如何通过添加一个使系统能够向用户询问缺失信息的自定义工具,提升 RAG 系统用户的体验。这种互动式的对话方法代表了提升传统 RAG 架构的良好方向。通过对话清晰化模糊性可促使从知识库中提供更令人满意的答案。

需要注意的是,这种方法不仅限于 RAG 应用;您可以在依赖于代理的核心的其他 生成式 AI 应用中使用它,也可以添加自定义的 AskHumanTool。

有关如何将 Amazon Kendra 与生成式 AI 结合使用的更多信息,请参阅 使用 Amazon Kendra、LangChain 和大语言模型快速构建高准确度的生成 AI 应用程序。

关于作者

Antonia Wiebeler 是 AWS 生成式 AI 创新中心的数据科学家,致力于为客户构建概念验证。她热衷于探索生成式 AI 如何解决现实问题并为客户创造价值。在编程之余,她喜欢跑步和参加三项全能比赛。

Nikita Kozodoi 是 AWS 生成式 AI 创新中心的应用科学家,致力于开发 ML 解决方案以解决各行业的客户问题。他专注于推动生成式 AI 应对现实挑战。在业余时间,他喜欢打沙滩排球和阅读。

自动缩放 Amazon RDS 存储使用 Amazon CloudWatch 和 AWS Lambd

自动缩放 Amazon RDS 存储使用 Amazon CloudWatch 和 AWS Lambd

自动扩展 Amazon RDS 存储使用 Amazon CloudWatch 和 AWS Lambda关键要点关键要点在这篇文章中,我们探讨了一种利用 Amazon CloudWatch 和 AWS Lambda 自动扩展 Amazon RDS 存储的解决方案。随着客户数据库不断增长,存储管理变得越...

搜索

免费加速器iOS下载

小熊twitter加速器,成立于2007年,是一家位于中国黑龙江省五大连池市的创新型企业。自成立以来,公司致力于为全球用户提供安全、便捷、创新的数字货币交换和管理服务。作为行业的先锋,小熊twitter加速器利用先进的区块链技术打造一个去中心化的金融生态系统,旨在推动传统金融与现代技术的融合。

小熊twitter加速器拥有一支由各领域顶尖专家组成的团队,包括资深的金融分析师、经验丰富的软件工程师、以及区块链技术的先驱者。这支团队共同协作,不断研发和优化我们的技术和服务,确保能够在迅速变化的市场中保持领先地位。公司的技术平台支持多种加密货币的交易和存储,包括比特币、以太坊、莱特币等主流数字货币,同时也不断探索和添加新兴的加密货币,以满足市场需求。

在安全性方面,小熊twitter加速器采用多层次安全策略来保护用户的资产和数据。我们的系统设计了多个安全层,包括实时监控、自动化的风险管理系统,以及强大的加密技术,确保所有交易数据的安全性和隐私性。此外,公司还与全球多家顶级安全机构合作,定期对我们的系统进行安全审计和升级。

公司不仅在提供加密货币交易和管理服务上不断创新,在推动区块链技术的普及和应用上也是行业的领跑者。小熊twitter加速器积极参与国内外的区块链研究和开发项目,与多家大学和科研机构合作,推动区块链技术在金融、物流、医疗等多个领域的应用研究。

作为地处五大连池市的高科技企业,小熊twitter加速器生根于这片富有极地地貌的独特土地,将东北老工业基地的坚韧精神与新时代科技革命的创新活力成功结合。公司未来的发展方向是构建一个全球化的数字货币交易和金融服务平台,为用户提供更多元化、一体化的金融解决方案,推动全球金融市场的发展和进步。

在未来,小熊twitter加速器将继续拓展国际市场,与更多国际合作伙伴建立合作关系,扩大我们的业务范围,并致力于成为全球领先的数字货币和区块链技术服务提供商。在数字货币日益被广泛接受的今天,小熊twitter加速器将持续在创新与安全的道路上前行,为全球用户提供更加优质的服务和更为可靠的技术支持。