知识注入以对抗大型语言模型(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…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...