如何解决大模型的「幻觉」问题?

news2024/11/27 2:49:28

如何解决大模型的「幻觉」问题?

  • 如何解决大模型的「幻觉」问题?
    • 幻觉产生原因?
      • 模型原因
      • 数据层面
    • 幻觉怎么评估?
      • Reference-based(基于参考信息)
        • 基于模型的输入、预先定义的目标输出
        • 基于模型的输入
      • Reference-Free(无参考信息)
        • 基于IE(信息抽取)
        • 基于QA(问题回答)
        • 基于NLI(自然语言推理)
        • 基于Factualness Classification Metric(使用一个度量标准)
      • 人工评估
      • GPT 自动评估
    • 幻觉解决方案?
      • 幻觉修正
      • 幻觉缓解
      • 幻觉相关研究

 


如何解决大模型的「幻觉」问题?

在大型语言模型中,「幻觉」是指模型生成不符合现实或上下文的信息。

这些信息可能与输入内容直接冲突,或者在没有足够证据支持的情况下创造出无法验证的事实。

 


幻觉产生原因?

模型原因

  • 模型结构:较弱的backbone如 RNN,可能导致严重的幻觉问题。

  • 解码算法:使用不确定性较高的采样算法如 top-p,会诱导 LLMs 出现更严重的幻觉问题。

    解码算法,是指在语言模型生成文本时,如何从模型提供的可能的词汇中选择下一个词的方法。

    这就像是在写作时,每次选择下一个词语的过程。

    使用不确定性较高的采样算法,可以理解为写作时故意加入一些随机性。

    就像一个作家决定掷骰子来决定他的下一个句子会说些什么,这种方式有时可以让文本更有创意,但也更可能让内容变得没有逻辑或者不真实。

  • 暴露偏差:训练和测试阶段不匹配的问题可能导致 LLMs 出现幻觉,特别是生成很长的内容

    暴露偏差,是一个发生在训练模型时的问题。

    可以把它想象成一个学生在学校里只练习了选择题,但考试时却是问答题。

    因为学生没有被教授如何回答问答题,他可能就会在考试时遇到困难。

    同理,如果在训练语言模型时给它的任务和它在实际使用时的任务不一样,它生成的文本可能就会出现问题,特别是当要生成很长的内容时,这种不匹配的问题就会更明显。

  • 参数知识:在预训练阶段学习的错误知识,将会产生严重的幻觉问题

    参数知识指的是,语言模型在学习阶段(预训练阶段)所获取的信息和知识。

    如果在这个阶段,模型学习到了错误的信息,比如错误的事实或者不正确的写作方式,那么它生成的文本就可能会包含很多错误,就像一个学生在考试前复习了错误的资料,考试时就会写出很多错误的答案。

    比如问 GPT 3 + 2 = 4,是错的(经典美国小学生错误),这种错误一多,GPT就觉得是正确的。

数据层面

训练数据收集过程中,爬虫检索的数据可能包含虚假信息,从而让模型记忆了错误的知识。

过多的重复信息,也可能导致模型的知识记忆出现偏差,导致幻觉。

网络上的数据,主观的信息特别多,不清洗用不了。
 


幻觉怎么评估?

幻觉评估是指,评估和量化模型,在生成文本时,产生的不真实或不准确内容的频率和严重性。

具体的评估方法可以分为:

  • 基于参考信息(Reference-based)
  • 无参考信息(Reference-free)

Reference-based(基于参考信息)

这类方法依赖于与生成文本相关的参考信息,以评估模型的输出。

使用一些已知的、正确的文本作为参考,以此来评估和比较模型生成的文本。

基于模型的输入、预先定义的目标输出

使用一些统计学指标(如ROUGE、BLEU)来评估模型输出和目标参考信息(通常是正确的文本)之间的相似度。

这个目标输出通常是人类生成的文本,它被视为正确的回答。

例如,在一个摘要任务中,模型生成的摘要会与一个人类编写的摘要进行比较。

基于模型的输入

这种方法仅仅依靠模型的输入信息来评估生成的文本。

它不需要一个预定义的目标输出作为参考,而是评估模型输出的文本是否符合输入条件。

这在那些输出可以有多种正确形式的任务中特别有用。

例如,当生成一个故事或解释一个概念时,可能有多种准确和有信息量的方式来表达同一个概念。

可以使用 Knowledge F1 分数来衡量生成内容中知识点的准确性。

Reference-Free(无参考信息)

不依赖于任何预先定义的正确文本。这种评估方法直接分析生成文本的质量,无需将其与任何参考文本进行比较。

这些方法特别适用于那些难以获得或定义“正确答案”的场景,或者当希望评估模型是否能够独立生成高质量内容时。

例如,评估模型是否能够创建事实上准确的新闻报道,即使没有可用的参考新闻报道来比较。

基于IE(信息抽取)

将知识限定为可以用三元组(人物 - 出生地 - 城市)形式表达的关系和事件。

利用额外的信息抽取模型来提取这些知识点,然后使用另一个模型对这些信息进行验证。

问题

  • 可能存在IE模型的错误传播问题,信息抽取模型并不完美,有时会提取错误的信息
  • 知识被限定在三元组形式(太过简化),不足以完全捕捉复杂的信息或关系
基于QA(问题回答)

这个过程大致可以分为三步:

  • 生成问题和答案对:首先使用一个 大语言模型 来回答一个问题。然后,用另一个 问题生成模型 根据这个答案来创造一个新的问题。这样,就得到了一对问题和答案。

  • 使用源信息回答问题:接着,模型会尝试用一些已知的信息来回答第一步中生成的问题。

  • 比较答案:最后,通过比较第一步中生成的答案和第二步中模型给出的答案,来评估模型是否准确。

问题:这个方法可能会有两个主要问题。

  • 首先,如果QA或QG模型本身有误,这些错误就会影响整个过程
  • 其次,由于源信息不可能包含所有知识,所以对于某些问题,模型可能无法给出准确的答案
基于NLI(自然语言推理)

这个方法通过判断一个给定的信息(称为源信息)是否能够,支撑或包含生成的文本(即模型产生的内容)来工作。

问题:使用现成的NLI模型来检查事实可能不太准确。

这个方法只能检查源信息能否支持生成的文本,但不能评估那些需要更广泛世界知识的内容。

此外,这种方法是基于整个句子的,可能无法进行更细致的检查。

而且,幻觉问题(即模型产生的不真实内容),能否从源信息推断出来的问题并不完全相同。

基于Factualness Classification Metric(使用一个度量标准)
  1. 创建数据集:首先,需要准备一批数据,这些数据包括了真实(factual)和虚假(illusory,也就是“幻觉”)的信息。这些数据被用来表示什么是正确的信息,什么又是错误或虚构的信息。

  2. 训练模型:接着,使用这批数据来训练一个机器学习模型。这个模型的目的是学会区分真实和虚假的信息。它通过分析数据中的特征,学习判断信息的真实性。

  3. 评估新文本:一旦模型被训练好,就可以用它来评估新生成的文本。这个过程涉及到将新文本输入到模型中,模型会根据它所学到的,判断这些文本是更倾向于真实信息还是虚假信息。

这个方法是通过训练一个专门的模型来自动判断文本信息的真实性。

它可以帮助识别那些可能误导或不准确的内容,从而提高信息的质量和可信度。

人工评估

直接由专业的评估人员,评估生成文本的质量,这通常被认为是最可靠的方法,但也是成本最高的。

GPT 自动评估

在某些情况下使用经过训练的语言模型(如GPT-4)来辅助评估。

问题:但是GPT4也存在着严重的幻觉问题,即使经过retrival-augment,检索回来的 人工评估 信息也有可能是错误的。


上图介绍的是一个自动评估GPT模型性能的框架。

这个评估过程大致如下:

  1. 准备数据集:首先需要有一个预先定义好的数据集,它包含了各种类型的问题和对应的标准答案。这些数据通常是以JSON格式存储的,就像图中给出的示例那样。

  2. 设置评估环境:使用图中提供的用户界面,需要ChatGPT API Key。这是因为评估过程需要通过API与ChatGPT模型进行交互,以获得其对问题的回答。

  3. 选择问题进行评估:从数据集中选择特定的问题类型或者所有问题进行评估

  4. 运行评估:系统会自动使用ChatGPT模型来回答选定的问题,并将模型的回答与标准答案进行比较。

  5. 计算评分:评估系统会根据模型的回答和标准答案的一致性来给出分数。在图中提到,如果一个回答部分正确,可能会得到0.5分的评分。

  6. 分析结果:评分结果可以帮助你了解GPT模型在不同类型的问题上的表现,哪些做得好,哪些需要改进。

  7. 改进模型:根据评估结果,你可以调整和优化你的模型,比如重新训练,调整参数,或者引入新的数据以提高准确性。

  8. 使用工具和脚本:图中提供的GitHub链接自动评估的工具和脚本

 


幻觉解决方案?

幻觉修正

arXiv.org 上相关论文研究:

  • 人在回路的幻觉消除:利用人类的输入来指导模型,减少错误信息的生成。
  • 利用多智能体辩论显著提升LM的事实性和推理能力:通过让多个AI模型相互辩论来提高生成文本的事实性和推理能力。
  • 训练小模型后处理幻觉问题:使用额外的小型模型来校正主模型生成的答案。
  • 通过推理时干预诱导LLM生成符合事实的答案:在模型进行推理时进行干预,以确保生成的答案是基于事实的。
  • 工具增强的LLM自动纠正:使用工具来自动检测和纠正模型的错误。
  • 零资源黑盒事实错误纠正:在没有额外信息的情况下纠正错误。
  • 基于外部知识和自动反馈提升事实性:使用外部知识库和自动化的反馈机制来增强模型的事实性。
  • 事实性增强的语言模型:开发了特别强调事实性的语言模型。

幻觉缓解

构建高质量数据集

  1. 加权可信数据:在训练模型的时候,给那些来源可靠的数据(比如维基百科)更多的重视,而对那些不那么可靠的数据(比如假新闻)不予考虑。
  2. 筛选数据:用模型帮助我们检查数据集,找出那些可能让模型产生错误信息的数据,并将其删除。

优化模型结构

  1. 融入人类偏置的设计:想象一下,如果你要制作一个能理解和处理信息的模型,你会想让它像人类那样思考。这里的建议就是在模型的设计中加入一些类似于人脑处理信息的方式。比如用图神经网络(GNN)这样的技术,它可以帮助模型更好地理解和组织复杂的信息,就像人脑那样。

  2. 减少生成时的随机性:想象你在写故事,但是要确保故事里的事实都是正确的。如果你让故事内容太随机,可能会出现一些不真实或不相关的部分。这个建议是说,在生成信息时,减少这种随机性或多样性,可以帮助确保模型生成的内容更加真实可靠。

  3. 使用检索增强:这个方法就像是在写作时查阅资料一样。通过查找和参考现有的信息和数据,模型可以更准确地生成相关的内容。这样做可以减少那些毫无根据或者不真实的“幻觉”内容的出现。

优化训练方式

  1. 可控文本生成:将幻觉的程度作为一个可控的属性,利用可控文本生成技术进行控制。

    这就像是有一个调节器,可以控制故事里虚构成分的多少。如果你想要更多基于现实的内容,就减少虚构元素;反之亦然。这样做可以更好地控制模型生成的内容,确保它既有创意又贴近现实。

  2. 提前规划骨架,再生成内容:先画一个简单的草图,然后再根据这个草图来完善和细化。先确定大致的结构或主题,然后再生成具体的内容,这样可以帮助模型更有组织、更准确地生成信息。

  3. 强化学习:这有点像训练宠物。你给模型一个任务,如果它做得好,就给它奖励;如果做得不好,就不给奖励。通过这种方式,模型学会了如何生成更准确、更少错误的内容。

  4. 多任务学习:这就像是让模型同时学习多种技能。比如,除了学习生成文本,它还可以学习其他任务,比如理解文本的情感。这样多方面的学习可以帮助模型更全面,更少出错。

  5. 后处理:这就好比是在写完文章后再进行校对。设计一个小模型,专门用来检查和修正已经生成的内容中的错误,确保最终的输出更加准确无误。

幻觉相关研究

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

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

相关文章

基于ssm的资产管理信息系统+vue论文

摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前企业对于资产信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本人结…

《Linux C编程实战》笔记:实现自己的myshell

ok,考完试成功复活 这次是自己的shell命令程序的示例 流程图: 关键函数 1.void print_prompt() 函数说明:这个函数打印myshell提示符,即“myshell$$”. 2.void get_input(char *buf) 函数说明:获得一条指令&#…

13|代理(下):结构化工具对话、Self-Ask with Search以及Plan and execute代理

13|代理(下):结构化工具对话、Self-Ask with Search以及Plan and execute代理 什么是结构化工具 LangChain 的第一个版本是在 2022 年 11 月推出的,当时的设计是基于 ReAct 论文构建的,主要围绕着代理和工…

2024美赛数学建模常用数学建模模型之——层次分析法

一、层次分析法的基本原理与步骤 人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是 一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次 分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。 …

GPU的硬件架构

SM: streaming Multiprocessor 流多处理器 sm里面有多个(sp)cuda core 32个线程称为一个warp,一个warp是一个基本执行单元 抽象概念:grid 网格 block 块 thread 线程 块中的线程大小是有讲究的,关乎到资源的调度,一般是128&#x…

macbook电脑2024免费好用的系统清理优化软件CleanMyMac X4.14.7

CleanMyMac X2024来帮助你找到和删除不需要的文件。CleanMyMac X是一款专业的mac清理软件,它可以智能地扫描你的磁盘空间,找出并删除大型和旧文件,系统垃圾,iTunes垃圾,邮件附件,照片库垃圾等,让…

【Vue2+3入门到实战】(22)VUE3之组合式API - setup、reactive和ref函数、computed、watch、生命周期函数详细讲解

目录 一、组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. <script setup>语法糖 二、组合式API - reactive和ref函数1. reactive2. ref3. reactive 对比 ref 三、组合式API - computed四、组合式API - watch1. 侦听单个数据2. 侦听多个数据…

Java学习,一文掌握Java之SpringBoot框架学习文集(3)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

electron进程通信之预加载脚本和渲染进程对主进程通信

主进程和预加载脚本通信 主进程 mian,js 和预加载脚本preload.js,在主进程中创建预加载脚本, const createWindow () > {// Create the browser window.const mainWindow new BrowserWindow({width: 300,height: 300,// 指定预加载脚本webPreferences: {preload: path.j…

数据结构【查找篇】

数据结构【查找篇】 文章目录 数据结构【查找篇】前言为什么突然想学算法了&#xff1f;为什么选择码蹄集作为刷题软件&#xff1f; 目录一、顺序查找二、折半查找三、 二叉排序树的查找四、红黑树 结语 前言 为什么突然想学算法了&#xff1f; > 用较为“官方”的语言讲&am…

22 闪烁按钮

效果演示 实现了一个按钮的样式&#xff0c;包括背景颜色、边框、圆角、点击效果等。当鼠标悬停在按钮上时&#xff0c;按钮的背景颜色和文字颜色会发生变化&#xff0c;同时按钮会出现闪烁的效果。 Code <button class"btn"><svg height"24" wi…

UDP通信(服务器-客户端)

一、 UDP服务器-客户端通信 UDP&#xff08;User Datagram Protocol&#xff09;是一种面向无连接的传输层协议&#xff0c;它提供了一种简单的、不可靠的数据传输服务。与TCP&#xff08;Transmission Control Protocol&#xff09;不同&#xff0c;UDP不建立连接&#xff0c;…

奈奎斯特定理

奈奎斯特定理是通信领域中重要的理论基础之一&#xff0c;它对于数字通信系统中的信号采样和重构具有至关重要的作用。在数字信号处理和通信技术中&#xff0c;奈奎斯特定理的应用不仅具有理论意义&#xff0c;还对通信系统的设计、优化和性能提升起着重要的指导作用。本文将以…

MySQL8.0主从复制实现及遇到的个人问题

文章目录 1、准备两个服务器或者虚拟机2、主库配置3、从库配置4、配置过程中使用到的命令5、遇到的问题 1、准备两个服务器或者虚拟机 这里使用的VM虚拟机的Centos、MySQL版本是8.0.26、使用FinalShell进行远程操作。 2、主库配置 修改MySQL配置文件(/etc/my.cnf) #启用二进…

leetcode:1464. 数组中两元素的最大乘积(python3解法)

难度&#xff1a;简单 给你一个整数数组 nums&#xff0c;请你选择数组的两个不同下标 i 和 j&#xff0c;使 (nums[i]-1)*(nums[j]-1) 取得最大值。 请你计算并返回该式的最大值。 示例 1&#xff1a; 输入&#xff1a;nums [3,4,5,2] 输出&#xff1a;12 解释&#xff1a;如…

麒麟Kylin服务器版-破解root密码

一、单用户模式修改root密码 1.重启服务器系统后&#xff0c;将光标移动到第二项&#xff0c;按【e】键进入用户登录页面。 2.在【username】下方所在行输入root名称&#xff0c;【password】下方所在行输入密码Kylin123123后&#xff0c;进入编辑模式。代码如下&#xff1a; …

芯课堂 | MCU之TIMER精准延时

引言 华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别&#xff0c;为了让您更加简单的使用这一功能&#xff0c;下面小编将以SWM190为例&#xff0c;给大家展示如何使用SWM系列产品的TIMER功能。 TIMER精准延时 一、TIMER简介 TIMER是一种定时器工具&#xff0c;…

C# 全屏label控件实现的贪吃蛇。

C# 全屏label控件实现的贪吃蛇。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using stat…

神经网络:激活函数的介绍

神经网络的激活函数是一种非线性函数&#xff0c;它被应用于每个神经元的输出&#xff0c;以引入非线性性质到网络中。 激活函数的目的是将输入转换为输出&#xff0c;并且将输出限制在特定的范围内。它们非常重要&#xff0c;因为线性变换&#xff08;例如加法和乘法&#xf…

七夕祭

title: 七夕祭 date: 2024-01-03 22:47:05 tags: 传送门 题目大意 解题思路 行的感兴趣的摊点或者列的感兴趣的摊点的数量能被行数或者列数整除&#xff0c;则能够实现要求。“均分”思想&#xff0c;设总感兴趣摊点数 T T T 和行数列数 n n n&#xff0c;当前感兴趣的摊点数…