ServiceNow 研究:通过RAG减少结构化输出中的幻觉

news2024/11/24 15:39:51

论文地址:https://arxiv.org/pdf/2404.08189

原文地址:rag-hallucination-structure-research-by-servicenow

灾难性遗忘和模型漂移中,幻觉仍然是一个挑战。

2024 年 4 月 18 日

灾难性遗忘: 这是在序列学习或连续学习环境中出现的问题,其中一个模型被训练来执行多个任务,但是学习新任务时会导致模型在先前学习的任务上的性能显著下降。这种情况通常发生在神经网络等参数化模型中,因为模型在训练新任务时调整了其参数,从而破坏了之前学习的知识。灾难性遗忘是终身学习和持续学习的一个重要挑战。

模型漂移: 这是指模型在部署后,由于输入数据的分布发生变化,模型的性能随时间下降的现象。这种分布变化可能是由于真实世界的变化(例如,季节性变化、经济波动、社会行为变化等)或数据收集过程的变化(例如,传感器校准问题、数据来源变化等)。模型漂移要求模型能够适应新的数据分布,否则模型的预测可能变得不准确或不相关。

介绍

这项研究之所以如此有趣,是因为 ServiceNow 有一个他们想要解决的实际问题,他们通过这篇论文分享了他们的发现。

其次,本文考虑了LLMs创建结构化输出的挑战,这些输出实际上是为了创建非结构化会话输出。

在某种程度上,这种方法强烈地让人想起OpenAI的JSON模式输出,或者OpenAI的函数调用。

ServiceNow 希望部署企业应用程序,将自然语言的用户需求转换为工作流程。他们制定了一项计划,通过利用 RAG 来提高生成的结构化流程的质量。

这种方法减少了幻觉并允许out-of-domain设置。

ServiceNow 希望根据自然语言输入创建准确的工作流程,以尝试简化用于创建工作流程并为新手提供支持的用户界面。

虽然可以为每个企业微调大型语言模型(LLM),但由于微调大型语言模型所需的基础设施成本高昂,这可能是过于昂贵的。在部署大型语言模型时,还需要考虑它们的占用空间,使得部署能够完成任务的最小型大型语言模型更为可取。

《剑桥词典》选择“hallucinate”作为 2023 年年度词汇。

如下图所示,输出工作流表示为 JSON 文档,其中每个步骤都是一个 JSON 对象。

该研究展示了 RAG 如何允许在使用非常小的检索器模型的同时部署较小的LLM,而不会损失性能。

RAG 用于结构

这项研究的不同之处在于,利用 RAG 以 JSON 的形式创建结构化输出。在某种程度上,这种方法强烈地让人想起OpenAI的JSON模式输出,或者OpenAI的函数调用。

然而,这种实现的挑战在于,即使输入是开放的,并且通过图形用户界面提示进行了高度指定,输出也只能形成有限的、有限的步骤池的一部分。

  1. 在创建此工作流程时,ServiceNow 首先必须训练检索器编码器以使自然语言与 JSON 对象保持一致。
  2. 其次,他们通过将检索器的输出包含在其提示中,以 RAG 方式训练LLMs

因此,需要检索器将自然语言映射到现有步骤和数据库表名称。

该研究的重点是微调检索器模型,原因有两个:改进文本和 JSON 对象之间的映射,以及创建应用程序域的更好表示。

方法论

  1. 检索器训练:训练一个检索器模型,使其能够将自然语言查询映射到现有的工作流步骤和数据库表名。使用对比损失和不同的负采样策略来优化检索器的性能。
  2. LLM训练:独立训练LLM,将检索器的输出作为LLM的输入提示的一部分,以便LLM在生成过程中可以复制相关的JSON对象。
  3. 系统架构:描述了RAG系统的高层架构,包括初始化步骤和用户请求的处理流程。
  4. 评估指标:触发器精确匹配(EM)、步骤袋(BofS)和幻觉步骤/表格(HS/HT)。

注意事项

为未来的工作提出了一些考虑因素:

  1. 将结构化输出格式从 JSON 更改为 YAML 以减少令牌数量。
  2. 利用推测解码
  3. 逐步向用户回传流,而不是整个生成的工作流程。这与 LlamaIndex 最近的代理发展是一致的,其中对代理采取了逐步的方法。采用“human-in-the-loop”方法有很多优点,在代理上下文中的 HITL 部分中,人可以与其他工具一起被视为代理工具。

最后

该研究提出了一种使用检索增强语言模型(RAG)来解决人工智能中的两个关键挑战的策略:

  1. 减少幻觉(产生不正确或不相关的信息
  2. 在结构化输出任务中实现泛化(将知识应用到新情况的能力)。

该研究强调了减少现实世界人工智能系统的幻觉以获得用户接受的重要性。

他们强调,RAG 方法允许在资源受限的环境中部署人工智能系统,因为即使是小型检索器和紧凑的语言模型,它也可以有效地工作。

这意味着系统的硬件和计算要求可以最小化,这对于资源有限的环境中的实际应用至关重要。

此外,该研究还指出了未来研究的领域,表明可以通过加强检索器语言模型之间的协作来进一步改进。

这可以通过联合训练方法来实现,即两个组件一起训练以改善它们的交互,或者通过设计一个模型架构来促进两个组件之间更好的集成和合作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1640629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Costas-Barker序列模糊函数仿真

文章目录 前言一、Costas 序列二、Barker 码三、Costas-Barker 序列模糊函数仿真1、MATLAB 核心代码2、仿真结果①、Costas-Barker 模糊函数图②、Costas-Barker 距离模糊函数图③、Costas-Barker 速度模糊函数图 四、资源自取 前言 Costas 码是一种用于载波同步的频率调制序列…

20232810 2023-2024-2 《网络攻防实践》实验七

一、实践内容 (1)使用Metasploit进行Linux远程渗透攻击 任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下: ①启动Met…

字节跳动发起AI战争 寻找下一个TikTok

现如今在字节跳动,已近乎隐退的张一鸣,只重点关注两件事:其一,是风暴中的TikTok;其二,就是字节跳动正在全力追赶的AI战略业务。 提及字节的AI战略远望,多个接近字节的人士均认为,以Flow部门出品最为“正统…

缩小COCO数据集

在运行YOLOS模型的过程中,需要使用到COCO2017这个数据集,但从实验运行来看,其所需时间无疑是相当漫长,预计可能需要近几十天才能完成,因此便考虑缩小COCO数据集大小,即尽可能在遵循其分布的情况下&#xff…

Unity开发一个FPS游戏之四

在前面的系列中,我已介绍了如何实现一个基本的FPS游戏,这里将继续进行完善,主要是增加更换武器以及更多动作动画的功能。 之前我是采用了网上一个免费的3D模型来构建角色,这个模型自带了一把AR自动步枪,并且自带了一些…

Unity开发微信小游戏(2)分享

目录 1.概述 2.代码 3.示例 4.个人作品 1.概述 这里我们能做有两件事: 1)主动发起分享 2)监听右上角分享(...按钮,发朋友圈也在这里) API:官方文档 2.代码 1)主动发起分享&…

DHCPv4_CLIENT_ALLOCATING_01: 在其本地物理子网上广播DHCPDISCOVER消息

测试目的: 确保客户端能够在其本地物理子网上广播DHCPDISCOVER消息。 描述: 该测试用例旨在验证DHCP客户端是否能够正确地在其本地物理子网上广播DHCPDISCOVER消息,以便进行IP地址的自动分配。 测试拓扑: 测试步骤&#xff1a…

生产看板:最直观的车间管理方式之一,是马是马户牵出来溜溜。

可视化生产看板在组织工业生产中扮演着重要的角色,它可以提供实时的信息和可视化的数据,帮助团队和管理层更好地监控和管理生产过程。 以下是可视化生产看板在组织工业生产中的作用: 实时监控:可视化生产看板可以显示实时的生产数…

JavaEE初阶-多线程易忘点总结

文章目录 1.PCBPID文件描述符表内存指针状态上下文优先级记账信息tgid 2.线程与进程的区别3.sleep和interrupt方法的关系变量终止线程interrupt方法终止线程 4.线程状态5.出现线程不安全的原因线程在系统中是随即调度,抢占式执行的。多个线程修改同一个变量线程针对…

小白也能微调大模型:LLaMA-Factory使用心得

大模型火了之后,相信不少人都在尝试将预训练大模型应用到自己的场景上,希望得到一个垂类专家,而不是通用大模型。 目前的思路,一是RAG(retrieval augmented generation),在模型的输入prompt中加入尽可能多的“目标领域…

Linux-管道通信

1. 管道概念 管道,是进程间通信的一种方式,在Linux命令中“ | ”就是一种管道,它可以,连接前一条命令,和后一条命令,把前面命令处理完的内容交给后面,例如 cat filename | grep hello …

富文本编辑器CKEditor4简单使用-07(处理浏览器不支持通过工具栏粘贴问题 和 首行缩进的问题)

富文本编辑器CKEditor4简单使用-07(处理浏览器不支持通过工具栏粘贴问题 和 首行缩进的问题) 1. 前言——CKEditor4快速入门2. 默认情况下的粘贴2.1 先看控制粘贴的3个按钮2.1.1 工具栏粘贴按钮2.1.2 存在的问题 2.2 不解决按钮问题的情况下2.2.1 使用ct…

三维图形学知识分享---求平面与模型相交线

在CGAL(Computational Geometry Algorithms Library)中,Polygon_mesh_processing模块提供了用于处理多边形网格数据结构的功能。其中,surface_intersection函数是用来计算模型的表面相交线的工具。 CGAL_Mesh mesh_orcl;std::vect…

C++ 函数 参数与返回值

#一 参数与返回值 回顾文件读数据功能 文件读数据 1函数参数传值调用过程 将函数调用语句中的实参的一份副本传给函数的型材。 简单的值的传递,实参的值没有发生变化。 2 函数参数传值调用过程 传地址调用 将变量的地址传递给函数的形参 形参和实参指向了同…

SpringBoot文件上传+拦截器

1、resource static下有个图片,希望浏览器可以查看这个图片 访问: 若yml设置路径,则可以定义在static下才可以访问 classpath代表类路径,都在target下 也就是项目在运行后的resource下的文件都会到classes下去 无需在target下创…

MES(制造执行系统)与PDCA循环,斩不断理还乱的关系。

MES系统算是B端系统中比较复杂的一种,这与我国制造业标准化程度较低有一定的关联,MES的存在就是要更好执行PDCA循环,二者关联是千丝万缕的,B系统提升专家借此为大家分享一下。 一、什么是PDCA PDCA(Plan-Do-Check-Ac…

前端Web开发基础知识

HTML定义 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 什么是 HTML? HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言: HyperText Markup LanguageH…

# IDEA 复制项目 Module 出现 不同模块下的 Product 类报错

IDEA 复制项目 Module 出现 不同模块下的 Product 类报错 我们 用 IDEA 复制项目 Module 出现 不同模块下的 Product 类报错,发现复制的 module 名称没有改变或者 java 文件夹后面还有原项目 source root 字样,maven 父子项目没有标识等问题。 解决方法…

QQ+微信聊天记录分析工具,allin~

QQ群 ... QQ个人 微信群 个人朋友圈 更多维度有待探索~ 工具下载 TencentRecordAnalysisV1.0.2.zip 蓝奏云:链接: lanzoub.com/b00rn0g47e 密码:9hww 百度云:链接: pan.baidu.com/s/1Gf5EpJ 提取码: hp2p

Stm32CubeMX 为 stm32mp135d 添加 adc

Stm32CubeMX 为 stm32mp135d 添加 adc 一、启用设备1. adc 设备添加2. adc 引脚配置2. adc 时钟配置 二、 生成代码1. optee 配置 adc 时钟和安全验证2. linux adc 设备 dts 配置 bringup 可参考: Stm32CubeMX 生成设备树 一、启用设备 1. adc 设备添加 启用adc设…