知识注入以对抗大型语言模型(LLM)的幻觉11.6

2023-11-06 15:04

本文主要是介绍知识注入以对抗大型语言模型(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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/357349

相关文章

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

SQL 注入攻击(SQL Injection)原理、利用方式与防御策略深度解析

《SQL注入攻击(SQLInjection)原理、利用方式与防御策略深度解析》本文将从SQL注入的基本原理、攻击方式、常见利用手法,到企业级防御方案进行全面讲解,以帮助开发者和安全人员更系统地理解... 目录一、前言二、SQL 注入攻击的基本概念三、SQL 注入常见类型分析1. 基于错误回显的注入(Erro

Java领域模型示例详解

《Java领域模型示例详解》本文介绍了Java领域模型(POJO/Entity/VO/DTO/BO)的定义、用途和区别,强调了它们在不同场景下的角色和使用场景,文章还通过一个流程示例展示了各模型如何协... 目录Java领域模型(POJO / Entity / VO/ DTO / BO)一、为什么需要领域模

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础