知识注入以对抗大型语言模型(LLM)的幻觉11.6
知识注入以对抗大型语言模型(LLM)的幻觉
- 摘要
- 1 引言
- 2 问题设置和实验
- 2.1 幻觉
- 2.2 生成响应质量
- 3 结果和讨论
- 3.1 幻觉
- 3.2 生成响应质量
- 4 结论和未来工作
摘要
大型语言模型(LLM)内容生成的一个缺点是产生幻觉,即在输出中包含错误信息。对于需要可靠、基于事实的、可控的大规模文本生成的企业应用案例,这尤为危险。为了减轻这一问题,本文利用一种称为知识注入(KI)的技术,将与文本生成任务相关的实体的上下文数据从知识图谱映射到文本空间中,以便在LLM提示中包含这些数据。以回应在线客户对零售店铺的评论为例,我们发现KI可以增加生成文本中包含的正确断言的数量。在定性评估中,具有KI的经过微调的bloom560m模型表现优于OpenAI的未经微调的text-davinci-003模型,尽管text-davinci-003模型的参数数量是后者的300倍。因此,KI方法可以增加企业用户对利用LLM替代繁琐的手动文本生成的信心,并使较小、更便宜的模型表现更好。
1 引言
大型语言模型(LLM)内容生成的一个限制是幻觉,即在生成的文本中存在虚假断言。企业使用案例需要可靠、以事实为基础的大规模文本生成,因此对LLM生成的文本进行投资具有风险。为了减轻幻觉问题,我们利用一种称为知识注入(KI)的技术,将与任务相关的实体的上下文数据从知识图谱映射到文本空间中,以便在LLM提示中包含这些数据。在我们回应在线零售店铺客户评论的用例中,KI增加了正确断言的比例,同时提高了整体文本质量。
尽管LLM的参数包含了知识,但它们仍然容易产生幻觉,因为:
(1)并非所有当前数据都可以在模型训练期间提供(例如,训练后对业务信息进行的更新),以及
(2)将所有知识编码到模型参数中是困难的。KI从包含与任务相关的实体以及与其他实体的连接相关的知识图谱开始。KI旨在生成带有业务信息的可控文本,该信息不是通用知识(例如,商家的电话号码可能不是LLM从基础训练中获知的常识)。可控文本生成(CTG)受控制约束的影响,例如情感或者在我们的用例中,与真实业务信息的对齐。
从知识图谱中提取的文本字段被插入到一个模板化的提示中,以将基于图谱的上下文映射到文本空间,形成LLM的输入。这在图1中进行了演示,其中请求了LLM对在线客户评论的生成响应。相关实体Review 1及其邻居,例如Location 1,在知识图谱中被映射到一个模板化的提示中。
2 问题设置和实验
2.1 幻觉
我们旨在确定KI是否减少LLM生成的对在线客户评论的响应中的幻觉。使用bloom-560m 的LLM经过微调,使用人工客户服务代理撰写的评论和回复进行训练。对比评估了仅使用评论信息(作者、评分和内容)进行微调的仅评论模型生成的响应与使用添加的实体上下文进行KI提示的模型生成的响应。这些模型在约35,000个评论-回复对的数据集上进行了微调。
领域专家统计了每个生成的响应中的正确和错误断言。断言包括指定位置名称,可通过电话号码或网址联系,由品牌名称所有,并位于位置地址。不正确(即幻觉)的断言包含与知识图谱相矛盾的不真实信息,例如指示客户拨打虚构的电话号码。事实性断言是指其他没有标记为不正确的断言。
2.2 生成响应质量
除了测试KI对幻觉的影响外,我们还测试了其对生成的评论响应整体质量的影响。主题专家根据3级评分标准(表1)对非KI提示的OpenAI的text-davinci-003文本生成模型(即GPT-3 )和KI提示的bloom-560m生成的响应进行了评分。
3 结果和讨论
3.1 幻觉
KI增加了正确断言的数量,同时减少了错误断言的数量(表2),这表明在像评论回复这样的企业任务中,KI是有用的。这些任务在人工完成时既费时又昂贵,但需要关于业务的事实背景才能生成可信赖的文本。
3.2 生成响应质量
KI模型在生成的响应质量上获得了更高的评分,这表明KI对于帮助模型与业务品牌标准保持一致是有用的(表3)。尽管text-davinci-003的参数数量是bloom-560m的约300倍,但经过KI微调的较小模型表现优于较大的OpenAI模型。因此,通过使用KI进行微调,企业可以在训练和托管较小模型的同时产生更高质量的生成响应,从而节省成本。此外,使用较小的模型还可以提高推理速度。
4 结论和未来工作
在幻觉和生成响应质量方面的实验表明,KI可以帮助企业从LLM中生成更可靠、基于事实且质量更高的文本。为了充分利用这一点,企业需要具有与其业务相关的实体的事实和健壮的知识图谱,如位置、评论、产品、文件等。
为了减轻这一限制,在未来的实验中,我们打算继续研究通过利用LLM进行实体和边缘提取来建立业务的健壮知识图谱的方法。
相关文章:

知识注入以对抗大型语言模型(LLM)的幻觉11.6
知识注入以对抗大型语言模型(LLM)的幻觉 摘要1 引言2 问题设置和实验2.1 幻觉2.2 生成响应质量 3 结果和讨论3.1 幻觉3.2 生成响应质量 4 结论和未来工作 摘要 大型语言模型(LLM)内容生成的一个缺点是产生幻觉,即在输…...
机器人物理交互场景及应用的实际意义
机器人物理交互场景是指机器人与物理世界或人类进行实际的物理互动和交互的情境。这些场景涉及机器人在不同环境和应用中使用其物理能力,以执行任务、提供服务或与人类互动。 医疗协助: 外科手术助手:机器人可以用于外科手术,提供…...

Kubernetes Dashboard 用户名密码方式登录
Author:rab 前言 为了 K8s 集群安全,默认情况下 Dashboard 以 Token 的形式登录的,那如果我们想以用户名/密码的方式登录该怎么操作呢?其实只需要我们创建用户并进行 ClusterRoleBinding 绑定即可,接下来是具体的操作…...
Redisson中的对象
Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象 (Bloom filter, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, ListMultimap, Queue, BlockingQueue, Deque, BlockingDeque, …...

GNU ld链接器 lang_process()(二)
一、ldemul_create_output_section_statements() 位于lang_process()中11行 。 该函数用于创建与目标有关的输出段的语句。这些语句将用于描述输出段的属性和分配。 void ldemul_create_output_section_statements (void) {if (ld_emulation->create_output_section_sta…...

《国产服务器操作系统发展报告(2023)》重磅发布
11月1日,《国产服务器操作系统发展报告(2023)》(以下简称“报告”)在 2023 云栖大会上正式发布,开放原子开源基金会理事长孙文龙、中国信息通信研究院副总工程师石友康、阿里云基础软件部副总裁马涛、浪潮信…...

【PTE-day03 报错注入】
报错注入 1、报错注入 group by count2、报错注入 extractvalue3、报错注入updatexml1、报错注入 group by count http://124.222.124.9:8888/Less-5/?id=-1 union select 1,count(*),concat((select database()),ceil(rand(0)*2)) as a from information_schema.tables grou…...

jenkins gitlab CI/CD
jenkins的安装教程就不说了:Jenkins docker 一键发布 (一)_jenkins 一键发布-CSDN博客 最近打算从svn切换到gitlab,所以配置了一下jenkins的git 很简单,直接上图 1 选择 Git 2 录入gitlab的http地址(由于我的git地址不是22端口&…...
Java 中的数据类型有哪些?
Java中主要有八种基本数据类型: 1、整型:byte、short、int、long 2、字符型:char 3、浮点型:float、double 4、布尔型:boolean 一、整型 Java中整型数据属于有符号数,即第一个bit位为0表示正整数&…...

基于SSM的大学学生成长系统
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...

369B1860G0028 44A730240-G01 IC697ACC722B
369B1860G0028 44A730240-G01 IC697ACC722B 在NOA,一个名为MO(监控和优化)的独立领域与现有系统分开准备,数据直接从机器人、无人机和新传感器收集,例如腐蚀、声音和振动传感器。此外,现有系统中的数据通过OPC UA导入,…...

系列十一、拦截器(二)#案例演示
一、案例演示 说明:如下案例通过springboot的方式演示拦截器是如何使用的,以获取Controller中的请求参数为切入点进行演示 1.1、前置准备工作 1.1.1、pom <dependencies><!-- spring-boot --><dependency><groupId>org.spring…...

数据分析实战 | 关联规则分析——购物车分析
目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据预处理 七、生成频繁项集 八、计算关联度 九、可视化 一、数据及分析对象 数据集链接:Online Retail.xlsx 该数据集记录了2010年12月01日至2011年12月09日…...
maven 添加 checkstyle 插件约束代码规范
本例示例,是引用 http 链接这种在线 checkstyle.xml 文件的配置方式,如下示例: <properties><maven.checkstyle.plugin.version>3.3.0</maven.checkstyle.plugin.version><!--支持本地绝对路径、本地相对路径、HTTP远程…...

什么是MySQL的执行计划(Explain关键字)?
什么是Explain Explain被称为执行计划,在语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。(注意&…...
编码格式科普ASCII unicode utf-8 usc-2 GB2312
1.ASCII(标准版) 可以表示所有英文字符(包括大写和小写)和数字,长度为7bit,最多可以表示0-127 个值,2的7次方个数字。比如比如“a” 对照ASCII码的值为97(十进制)或11000…...
Pycharm中新建一个文件夹下__init__.py文件有什么用
在PyCharm中新建一个文件夹下的__init__.py文件有以下几个作用: 声明文件夹为一个Python包:__init__.py文件的存在告诉Python解释器该文件夹是一个Python包。当你导入该文件夹下的模块时,Python会将其视为一个包而不是普通的文件夹。这允许你…...
OracleBulkCopy c#批量插入oracle数据库的方法
datatable中的数据 存入oracle表中,要求 二者字段名一致,如果不一致,通过这个实现对应: bulkCopy.ColumnMappings.Add("SERVNUMBER", "SN"); 首先要引入Oracle.DataAccess.dll文件(在oracle客户端…...

046_第三代软件开发-虚拟屏幕键盘
第三代软件开发-虚拟屏幕键盘 文章目录 第三代软件开发-虚拟屏幕键盘项目介绍虚拟屏幕键盘 关键字: Qt、 Qml、 虚拟键盘、 qtvirtualkeyboard、 自定义 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object L…...

MySQL主从搭建,实现读写分离(基于docker)
一 主从配置原理 mysql主从配置的流程大体如图: 1)master会将变动记录到二进制日志里面; 2)master有一个I/O线程将二进制日志发送到slave; 3) slave有一个I/O线程把master发送的二进制写入到relay日志里面; 4…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...