生成式人工智能和大型语言模型 (LLM) 最常见的应用之一是根据特定的外部知识库回答问题。 检索增强生成(RAG)是一种流行的技术,用于构建使用外部知识库的问答系统。 要了解更多信息,请参阅 使用 Amazon SageMaker、Amazon OpenSearch Service、Streamlit 和 LangChain 构建强大的问答机器人.
当用户在没有提供足够上下文的情况下提出模糊或模棱两可的问题时,传统的 RAG 系统通常很难提供令人满意的答案。 这会导致法学硕士提供无益的回答,例如“我不知道”或不正确的、虚构的答案。 在这篇文章中,我们演示了一种解决方案,通过引入交互式澄清组件,可以比传统 RAG 系统提高此类用例中答案的质量 浪链.
关键思想是让 RAG 系统在初始问题不清楚时与用户进行对话。 通过提出澄清问题、提示用户提供更多详细信息以及合并新的上下文信息,RAG 系统可以收集必要的上下文来提供准确、有用的答案,即使是来自模糊的初始用户查询。
解决方案概述
为了演示我们的解决方案,我们建立了一个 亚马逊肯德拉指数 (由 AWS 在线文档组成 亚马逊肯德拉, 亚马逊Lex及 亚马逊SageMaker),浪链代理 亚马逊基岩 LLM,以及简单的 流光 用户界面。
先决条件
要在您的 AWS 账户中运行此演示,请满足以下先决条件:
- 克隆 GitHub存储库 并按照自述文件中说明的步骤进行操作。
- 在您的 AWS 账户中部署 Amazon Kendra 索引。 您可以使用以下内容 AWS CloudFormation 模板 创建新索引或使用已经运行的索引。 部署新索引可能会增加您的账单额外费用,因此,如果您不再需要它,我们建议将其删除。 请注意,索引中的数据将发送到选定的 Amazon Bedrock 基础模型 (FM)。
- LangChain 代理依赖于 Amazon Bedrock 中提供的 FM,但这可以适用于 LangChain 支持的任何其他 LLM。
- 要试验与代码共享的示例前端,您可以使用 亚马逊SageMaker Studio 运行 Streamlit 应用程序的本地部署。 请注意,运行此演示会产生一些额外费用。
实施解决方案
传统的 RAG 代理通常设计如下。 代理可以访问用于检索与用户查询相关的文档的工具。 然后将检索到的文档插入到 LLM 提示中,以便代理可以根据检索到的文档片段提供答案。
在这篇文章中,我们实现了一个可以访问的代理 KendraRetrievalTool
并从 Amazon Kendra 索引中导出相关文档,并根据检索到的上下文提供答案:
参考 GitHub回购 获取完整的实现代码。 要了解有关传统 RAG 用例的更多信息,请参阅 在 Amazon SageMaker JumpStart 中使用带有基础模型的检索增强生成来回答问题.
考虑以下示例。 用户询问“我的 EC2 实例有多少个 GPU?” 如下图所示,代理正在使用以下方式寻找答案 KendraRetrievalTool
。 然而,代理意识到它不知道哪个 亚马逊弹性计算云 (Amazon EC2) 实例类型是用户引用的,因此无法向用户提供有用的答案,从而导致客户体验不佳。
为了解决这个问题,我们定义了一个额外的自定义工具,称为 AskHumanTool
并提供给代理人。 该工具指示法学硕士阅读用户问题并向用户询问后续问题,如果 KendraRetrievalTool
无法返回一个好的答案。 这意味着代理现在可以使用两种工具:
这允许代理完善问题或提供响应提示所需的附加上下文。 指导代理使用 AskHumanTool
以此目的, 我们向法学硕士提供以下工具说明:
如果您使用 KendraRetrievalTool 找不到答案,请使用此工具。 要求人员澄清问题或提供缺失的信息。 输入应该是人类的问题。
如下图所示,通过使用 AskHumanTool
,代理现在正在识别模糊的用户问题并向用户返回后续问题,要求指定正在使用的 EC2 实例类型。
用户指定实例类型后,代理会将附加答案合并到原始问题的上下文中,然后再得出正确答案。
请注意,代理现在可以决定是否使用 KendraRetrievalTool
检索相关文件或提出澄清问题 AskHumanTool
. 代理的决定取决于它是否发现插入到提示中的文档片段足以提供最终答案。 这种灵活性使得 RAG 系统能够支持用户可能提交的不同查询,包括格式良好的问题和模糊的问题。
在我们的示例中,完整的代理工作流程如下:
- 用户向 RAG 应用程序发出请求,询问“我的 EC2 实例有多少个 GPU?”
- 代理使用 LLM 来决定采取什么操作:通过调用查找相关信息来回答用户的请求
KendraRetrievalTool
. - 该代理使用该工具从 Amazon Kendra 索引检索信息。 检索到的文档中的片段将插入到代理提示中。
- (代理的)法学硕士认为从 Amazon Kendra 检索到的文档没有帮助,或者不包含足够的上下文来回答用户的请求。
- 代理使用
AskHumanTool
提出一个后续问题:“您正在使用的具体 EC2 实例类型是什么? 了解实例类型将有助于回答它有多少个 GPU。” 用户提供答案“ml.g5.12xlarge”,代理呼叫KendraRetrievalTool
再次,但这次将 EC2 实例类型添加到搜索查询中。 - 再次运行步骤 2-4 后,代理会得出有用的答案并将其发送回用户。
本文中描述的示例说明了如何添加自定义 AskHumanTool
允许代理在需要时请求澄清详细信息。 这可以提高响应的可靠性和准确性,从而在跨不同领域的越来越多的 RAG 应用程序中带来更好的客户体验。
清理
为了避免产生不必要的成本,如果您不再使用 Amazon Kendra 索引,请删除它;如果您使用 SageMaker Studio 实例运行演示,请关闭它。
结论
在这篇文章中,我们展示了如何通过添加自定义工具使系统能够向用户询问缺失的信息,从而为 RAG 系统的用户提供更好的客户体验。 这种交互式对话方法代表了改进传统 RAG 架构的一个有前途的方向。 通过对话解决模糊性的能力可以从知识库中提供更令人满意的答案。
请注意,这种方法不仅限于 RAG 用例; 您可以在其他依赖于其核心代理的生成人工智能用例中使用它,其中自定义 AskHumanTool
可以添加。
有关将 Amazon Kendra 与生成式 AI 结合使用的更多信息,请参阅 使用 Amazon Kendra、LangChain 和大型语言模型在企业数据上快速构建高精度的生成式 AI 应用程序.
关于作者
安东尼娅·维伯勒 是 AWS Generative AI 创新中心的数据科学家,她喜欢为客户构建概念验证。 她热衷于探索生成式人工智能如何解决现实世界的问题并为客户创造价值。 虽然她不编码,但她喜欢跑步和参加铁人三项比赛。
尼基塔·科佐多伊 是 AWS 生成 AI 创新中心的应用科学家,他在那里开发 ML 解决方案来解决跨行业的客户问题。 在他的职位上,他专注于推进生成式人工智能以应对现实世界的挑战。 业余时间,他喜欢打沙滩排球和读书。
- :具有
- :是
- :不是
- :在哪里
- $UP
- 100
- 120
- 16
- 17
- 7
- a
- 对,能力--
- Able
- 关于
- ACCESS
- 账号管理
- 精准的
- 横过
- 操作
- 加
- 添加
- 添加
- 增加
- 额外
- 地址
- 前进
- 再次
- 经纪人
- 中介代理
- AI
- 人工智能用例
- 允许
- 已经
- Amazon
- Amazon EC2
- 亚马逊肯德拉
- 亚马逊开放搜索服务
- 亚马逊SageMaker
- 亚马逊网络服务
- an
- 和
- 回答
- 答案
- 任何
- 再
- 应用
- 应用领域
- 应用的
- 的途径
- 架构
- 保健
- AS
- 问
- 问
- At
- 增强
- 可使用
- 避免
- AWS
- 背部
- 基地
- 基于
- BE
- 海滩
- before
- 作为
- 更好
- 法案
- 博特
- 都
- 建立
- 建筑物
- 但是
- by
- 被称为
- 调用
- 呼叫
- CAN
- 例
- Center
- 挑战
- 收费
- 码
- 编码
- 相当常见
- 竞争
- 完成
- 元件
- 由
- 计算
- 概念
- 包含
- 上下文
- 上下文
- 听起来像对话
- 核心
- 正确
- 成本
- 创建信息图
- 创造价值
- 习俗
- 顾客
- 客户体验
- 合作伙伴
- data
- 数据科学家
- 决定
- 决定
- 定义
- 交付
- 演示
- 演示
- 部署
- 部署
- 描述
- 描述
- 设计
- 详情
- 发展
- 对话
- 不同
- 方向
- 处理
- 文件
- 文件
- 文件
- 不
- 不会
- 域名
- 别
- 向下
- 或
- enable
- 使
- 结束
- 从事
- 更多
- 企业
- 例子
- 体验
- 实验
- 解释
- 探索
- 外部
- 最后
- 找到最适合您的地方
- 发现
- (名字)
- 高度灵活
- 重点
- 遵循
- 以下
- 如下
- 针对
- 基金会
- 止
- 前
- 前端
- ,
- 收集
- 生成
- 代
- 生成的
- 生成式人工智能
- 特定
- 非常好
- 图形处理器
- 成长
- 指南
- 有
- he
- 帮助
- 有帮助
- 这里
- 他的
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- 人
- 主意
- 确定
- if
- 说明
- 实施
- 履行
- 改善
- 改善
- 改善
- in
- 其他
- 包含
- 结合
- 指数
- 行业
- 信息
- 初始
- 創新
- 输入
- 例
- 互动
- 互动
- 接口
- 成
- 介绍
- IT
- 它的
- JPG
- 键
- 知道
- 会心
- 知识
- 语言
- 大
- 铅
- 领导
- 信息
- 学习用品
- 喜欢
- 有限
- LLM
- 本地
- 不再
- 寻找
- 爱
- 制作
- 许多
- 可能..
- 可能
- 失踪
- ML
- 模型
- 模型
- 更多
- 最先进的
- my
- 必要
- 需求
- 打印车票
- 全新
- 没有
- 现在
- 数
- of
- 经常
- on
- 在线
- or
- 原版的
- 其他名称
- 我们的
- 超过
- 情
- 片
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 贫困
- 热门
- 帖子
- 强大
- 先决条件
- 市场问题
- 问题
- 有希望
- 样张
- 提供
- 提供
- 提供
- 优
- 质量
- 查询
- 题
- 有疑问吗?
- 阅读
- 阅读
- 真实的世界
- 建议
- 参考
- 引用
- 提炼
- 定期
- 相应
- 可靠性
- 代表
- 请求
- 解决
- 回应
- 响应
- 回复
- 回报
- 返回
- 角色
- 运行
- 运行
- sagemaker
- 科学家
- 搜索
- 选
- 发送
- 发送
- 服务
- 特色服务
- 集
- 共用的,
- 她
- 应该
- 显示
- 如图
- 关闭
- So
- 方案,
- 解决方案
- 解决
- 一些
- 具体的
- 指定
- 步骤
- 简单的
- 奋斗
- 工作室
- 提交
- 这样
- 足够
- SUPPORT
- 支持
- 系统
- 产品
- 滑车
- 采取
- 技术
- 这
- 然后
- 因此
- Free Introduction
- 通过
- 次
- 至
- 工具
- 工具
- 传统
- 二
- 类型
- 不必要
- 使用
- 用过的
- 用户
- 用户界面
- 用户
- 使用
- 运用
- 折扣值
- we
- 卷筒纸
- Web服务
- 什么是
- ,尤其是
- 是否
- 这
- 而
- 将
- 中
- 也完全不需要
- 工作流程
- 将
- 雅姆
- 完全
- 您一站式解决方案
- 和风网