当前位置: 首页 > news >正文

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

论文地址: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 方法允许在资源受限的环境中部署人工智能系统,因为即使是小型检索器和紧凑的语言模型,它也可以有效地工作。

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

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

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

相关文章:

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

论文地址:https://arxiv.org/pdf/2404.08189 原文地址:rag-hallucination-structure-research-by-servicenow 在灾难性遗忘和模型漂移中,幻觉仍然是一个挑战。 2024 年 4 月 18 日 灾难性遗忘: 这是在序列学习或连续学习环境中出现…...

ADS基础教程10-多态性(动态模型选择)

目录 一、多态性定义二、操作步骤1.模型建立2.模型选择3.执行仿真 一、多态性定义 ADS中支持一个Symbol中,可以同时存在多个子图。在仿真时可以动态选择不同的子图继续宁仿真。 二、操作步骤 1.模型建立 在上一章A…...

代码随想录第四十六天|单词拆分

题目链接:. - 力扣(LeetCode)...

RabbitMQ的介绍和使用

1.同步通讯和异步通讯 举个例子,同步通讯就像是在打电话,因此它时效性较强,可以立即得到结果,但如果你正在和一个MM打电话,其他MM找你的话,你们之间是不能进行消息的传递和响应的 异步通讯就像是微信&#…...

前端get请求日期类型参数向后端传参失败

1、背景 get请求,通过url上传参,因此日期类型是string类型数据 2、异常信息 nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.time.LocalDate] for…...

【docker 】 push 镜像提示:denied: requested access to the resource is denied

往 Docker Registry &#xff08;私服&#xff09;push 镜像提示&#xff1a;denied: requested access to the resource is denied 镜像push 语法&#xff1a;docker push <registry-host>:<registry-port>/<repository>:<tag> docker push 192.16…...

浏览器各类好用插件使用及常见问题(技巧)总结

目录 Vimium C快捷键问题为什么Vimium C - 全键盘操作浏览器插件在百度页面中, x ,o,f等快捷键不起作用如何使用viminum c插件进行自定义快捷键?vimucm 为什么在浏览器首页时快捷键不起作用? 网页截图问题firefox 网页截图使用 idm问题浏览器点击idm 不下载? 待续、更新中 V…...

Python批量计算多张遥感影像的NDVI

本文介绍基于Python中的gdal模块&#xff0c;批量基于大量多波段遥感影像文件&#xff0c;计算其每1景图像各自的NDVI数值&#xff0c;并将多景结果依次保存为栅格文件的方法。 如下图所示&#xff0c;现在有大量.tif格式的遥感影像文件&#xff0c;其中均含有红光波段与近红外…...

6.k8s中的secrets资源

一、Secret secrets资源&#xff0c;类似于configmap资源&#xff0c;只是secrets资源是用来传递重要的信息的&#xff1b; secret资源就是将value的值使用base64编译后传输&#xff0c;当pod引用secret后&#xff0c;k8s会自动将其base64的编码&#xff0c;反编译回正常的字符…...

git 更换远程仓库地址三种方法总结

git 更换远程仓库地址三种方法总结 一、前言 由于私服的 gitlab 的地址变更&#xff0c;导致部分项目代码提交不上去&#xff0c;需要修改远端仓地址。 其它需要修改远程仓地址的情况如&#xff1a;切换git clone 协议由ssh变为https。 二、环境 windows 10git version 2.3…...

快速找出存(不存在)在某个(或多个)文件的文件夹

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 想要找出有下面这个文件存在的文件夹 切换到批量文件复制版块&#xff0c;快捷键Ctrl5 右侧&#xff0c;搜索添加 选定范围&#xff0c;勾选搜索文件夹、包…...

Linux USB转串口设备路径的查找方法

1、USB转串口设备 USB转串口设备是在嵌入式软件开发过程中经常要使用的&#xff0c;常常用于对接各种各样的串口设备。如果一台linux主机上使用多个usb转串口设备时&#xff0c;应用程序中就需要知道自己操作的是哪个串口设备。串口设备在系统上电时&#xff0c;由于驱动加载的…...

【初阶数据结构】单链表之环形链表

目录标题 前言环形链表的约瑟夫问题环形链表环形链表|| 前言 前面我们已经学习了关于单链表的一些基本东西&#xff0c;今天我们来学习单链表的一个拓展——环形链表&#xff0c;我们将用力扣和牛客网上的三道题目来分析讲解环形链表问题。 环形链表的约瑟夫问题 我们首先来看…...

【积分,微分,导数,偏导数公式推导】

1. 积分 积分是微积分的一个分支&#xff0c;用于计算曲边梯形的面积或者变速直线运动的总距离等。积分分为不定积分和定积分。 不定积分&#xff1a;给出一个函数&#xff0c;求出其所有可能的原函数。定积分&#xff1a;计算一个函数在特定区间上的积分。 2. 微分 微分是…...

java:递归实现的案例

//求第20个月兔子的对数 //每个月兔子对数&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8 public class Test {//求第20个月兔子的对数//每个月兔子对数&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8pu…...

Arxml文件解析03- 自动驾驶Radar服务radar_svc.arxml

<AR-PACKAGES><AR-PACKAGE><SHORT-NAME>bosch</SHORT-NAME><AR-PACKAGES>...</AR-PACKAGES>...

Elasticsearch安装步骤

引言 Elasticsearch是一个基于Lucene构建的开源、分布式、RESTful搜索和分析引擎。它设计用于云计算中&#xff0c;能够达到实时搜索&#xff0c;稳定&#xff0c;可靠&#xff0c;快速&#xff0c;安装使用方便。Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。无论…...

Windows系统和unbtun系统连接usb 3.0海康可见MVS和红外艾睿相机

一.海康可见USB3.0工业面阵相机 海康usb相机需要去海康官网上下载对应系统的MVS客户端及SDK开发包 海康机器人-机器视觉-下载中心 选择Windows系统和unbtun&#xff08;我是linux aarch64,所以选择了对应压缩包解压&#xff09; Windows系统 1.双击安装包进入安装界面&…...

深入Django:用户认证与权限控制实战指南

title: 深入Django&#xff1a;用户认证与权限控制实战指南 date: 2024/5/7 18:50:33 updated: 2024/5/7 18:50:33 categories: 后端开发 tags: AuthDecoratorsPermissionsGuardianRESTAuthSessionMgmtMFA 第1章&#xff1a;入门Django与设置 1.1 Django安装与环境配置 在…...

Kubernetes - Dashboard 配置用户名密码方式登录

Kubernetes - Dashboard 配置用户名密码方式登录 前言&#xff1a; 为了 K8s 集群安全&#xff0c;默认情况下 Dashboard 以 Token的形式登录的&#xff0c;那如果我们想以用户名/密码的方式登录该怎么操作呢&#xff1f;其实只需要我们创建用户并进行 ClusterRoleBinding绑定即…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...