Nature:使用语义熵检测大语言模型中的幻觉

使用语义熵检测大语言模型中的幻觉

  • Detecting hallucinations in large language models using semantic entropy 论文阅读
      • 摘要
      • 研究目标
      • 论文图表概述
      • 总结
      • 关键解决方案
        • 语义熵计算:
        • 虚构内容检测:
      • 双向蕴涵
        • 在大语言模型中的应用
        • 上下文的重要性
        • 蕴涵估计器
      • 实验设计
      • 语义熵计算步骤
      • 结果分析
      • AUROC 和 AURAC
      • 总结
      • 评估指标

Detecting hallucinations in large language models using semantic entropy 论文阅读

作者: Sebastian Farquhar, Jannik Kossen, Lorenz Kuhn, Yarin Gal
发表日期: 2024年6月20日
原文

摘要

大语言模型(LLM)如ChatGPT和Gemini在推理和问答方面表现出色,但经常产生错误输出或未经证实的答案,被称为“幻觉”。这些幻觉在法律、新闻和医学等领域带来了可靠性问题,导致错误信息传播和潜在的严重后果。本文提出了一种基于熵的统计方法,用于检测大型语言模型(LLM)中的“虚构内容”(confabulations),即生成的任意且错误的信息。通过计算生成内容的语义熵,该方法能够在不同任务和数据集中检测虚构内容,不需要任务特定的数据,具有良好的泛化能力。

研究目标

开发一种通用的、有效的方法,用于检测大型语言模型(LLM)生成的虚构内容,从而确保其输出在多样化领域中的可靠性。该方法不依赖任务的先验知识,能够跨数据集和任务通用,显示出较强的鲁棒性和通用性。不同于传统的基于词序列的熵计算方法,本文方法计算生成内容的语义熵,即在语义层面对生成内容进行聚类,从而更准确地检测虚构内容。

论文图表概述

图 1 语义熵和虚构检测概述

在这里插入图片描述

  • a. 语义熵的概念示意图

    • 图中左侧展示了传统的熵计算方法,这种方法基于具体答案的变化来衡量不确定性,容易导致高熵值,因为不同的答案形式尽管意思相同,但会被视为不同的答案。
    • 图中右侧展示了语义熵的方法,通过将语义相同的答案聚类来计算不确定性。这种方法将相同语义的答案归为一类,避免了因词语变化带来的不确定性。
    • 基于朴素熵的不确定性衡量中,将“巴黎”、“法国巴黎”和“法国首都巴黎”视为不同答案。但在某些语言任务中,不同的答案可能意味着相同的事物。
  • b. 语义熵在长段落中的应用

    • 图中展示了如何将长段落分解为具体的事实性命题,每个命题再生成相关的问题,并通过模型生成多个答案。
    • 最后,通过计算这些答案的语义熵来判断每个命题是否为幻觉。
    • 在这里,语义熵将 Fact 1 分类为非虚构,因为尽管生成的答案措辞不同,但它们的意义相同,而朴素熵可能会忽略这一点。

图 2 检测句子长度中的虚构
在这里插入图片描述

  • 图表解释
    • 图表展示了在不同模型(如LLaMA 2 Chat 7B、13B、70B和Falcon 7B、40B等)上,语义熵和其他基准方法(如朴素熵、P(True)和嵌入回归)的AUROC(接收者操作特征曲线下面积)和AURAC(拒绝准确性曲线下面积)指标。
    • AUROC衡量了方法预测错误答案的可靠性,分数范围从0到1,1代表完美分类器,0.5代表无信息分类器。
    • AURAC衡量了在模型拒绝回答可能产生幻觉的问题后剩余问题的回答准确性,分数越高,表示过滤掉幻觉问题后模型的回答更准确。
    • 结果显示,语义熵在所有模型和数据集上的AUROC和AURAC均显著优于其他基准方法,表明语义熵方法在检测幻觉和提高问答准确性方面表现出色。

图 3 离散语义熵在段落长度传记生成中的效果
在这里插入图片描述

  • 图表解释
    • 图3展示了在GPT-4生成的传记文本中,离散语义熵方法相对于基准方法(如P(True)变体和自检基线)的AUROC和AURAC表现。图表的横轴表示不同模型及不同评估指标,纵轴表示性能得分。
    • 左侧(AUROC):展示了离散语义熵方法和其他基准方法在传记生成任务中的AUROC表现。
      • 语义熵方法(包括离散语义熵)表现明显优于其他基准方法(如P(True)和自检基线)。
      • 这一结果表明,离散语义熵方法在检测传记文本中的幻觉方面更为有效。
    • 右侧(AURAC):展示了在不同拒绝比例下,离散语义熵方法和其他基准方法的AURAC表现。
      • 离散语义熵方法在绝大多数拒绝比例下(80%-100%)的回答准确性最高。
      • 仅在拒绝比例达到20%的情况下,P(True)基线略有优势。
      • 这表明离散语义熵方法能够有效拒绝潜在的幻觉内容,显著提高剩余回答的准确性。

表1 语义熵和朴素熵预测
在这里插入图片描述

  • 表格结构和内容
    • 问题:问题的陈述。
    • 模型答案:由模型生成的答案。
    • 参考答案:被认为是正确答案的参考。
    • 熵的生成:由模型生成的多种答案,用于计算语义熵和朴素熵。
    • 预测:根据语义熵和朴素熵预测的结果是否是虚假信息。

第一个例子(关于工业部门):

  • 问题: Refineries process chemical power generation mills and manufacturing plants are under what sector of construction?
  • 模型答案: 与参考答案一致,属于工业部门。
  • 生成的答案: 多种答案都与工业部门有关。
  • 预测: 语义熵预测为非虚假信息,朴素熵预测为虚假信息。

第二个例子(关于stard10蛋白的功能):

  • 问题: What is the function of the stard10 protein?
  • 模型答案: 负调控mTOR通路。
  • 参考答案: 是脂质转移蛋白。
  • 生成的答案: 各种不同的功能描述。
  • 预测: 语义熵和朴素熵均预测为虚假信息。

第三个例子(关于“fado”音乐):

  • 问题: Which European country is ‘fado’ the national music of?
  • 模型答案: 葡萄牙。
  • 参考答案: 葡萄牙。
  • 生成的答案: 一致地回答“葡萄牙”。
  • 预测: 语义熵和朴素熵均预测为非虚假信息。

第四个例子(关于BSkyB的数字服务上线时间):

  • 问题: When was BSkyB’s digital service launched?
  • 模型答案: 1998年10月1日。
  • 参考答案: 1998年。
  • 生成的答案: 一致地回答具体的日期和年份。
  • 预测: 语义熵预测为虚假信息,朴素熵预测为非虚假信息。

总结

语义熵: 通过多样性和上下文理解来判断答案是否是虚假信息。
朴素熵: 通过简单的答案相似度来判断答案是否是虚假信息。
表格显示了语义熵在某些情况下能够更好地预测答案的真实性,因为它能够更好地理解语义和上下文,而朴素熵可能会因为缺乏上下文理解而做出错误的预测。

关键解决方案

语义熵计算:
  • 多次生成回答并对这些回答进行语义聚类。
  • 使用双向蕴涵关系(bidirectional entailment)进行语义聚类,即判断两个回答在语义上是否互相蕴涵。
  • 计算生成内容的语义熵,熵值越高,表示不确定性越高,虚构内容的可能性也越高。
虚构内容检测:
  • 根据计算出的语义熵,判断生成内容是否可能是虚构的。
  • 提高问答模型的准确性,避免使用高熵值的不可靠回答。

双向蕴涵

双向蕴涵是自然语言处理和逻辑推理中的一个概念,用于判断两个句子在意义上的等价性。具体来说,双向蕴涵表示如果一个句子的意义能够推出另一个句子的意义,反之亦然,那么这两个句子在语义上是等价的。

  • 单向蕴涵(Unidirectional Entailment): 如果句子A的真值可以推出句子B的真值,我们说句子A蕴涵句子B。例如,句子“A是猫”蕴涵句子“A是动物”,因为如果A是猫,那么A必然是动物。
  • 双向蕴涵(Bidirectional Entailment): 如果句子A蕴涵句子B,同时句子B也蕴涵句子A,我们说句子A和句子B是双向蕴涵的。例如,句子“A是巴黎的首都”和“巴黎是法国的首都”之间存在双向蕴涵,因为它们在意义上是等价的。
在大语言模型中的应用

在大语言模型(LLM)中,双向蕴涵用于检测生成内容的语义一致性,特别是在检测虚构内容时。具体应用步骤如下:

  1. 生成多个答案: 对于一个给定的问题,生成多个可能的答案。
  2. 语义聚类: 使用双向蕴涵判断这些答案是否在语义上等价,并将等价的答案聚为一类。
  3. 方法: 利用自然语言推理(NLI)工具或预训练语言模型(如GPT-3或DeBERTa)来判断两个句子之间是否存在蕴涵关系。如果两个句子互相蕴涵,则认为它们在语义上等价。
  4. 计算语义熵: 通过统计不同语义类的概率分布,计算生成内容的语义熵,从而评估生成内容的可靠性。
上下文的重要性

上下文在双向蕴涵中起着至关重要的作用。例如,单独的词“巴黎”并不蕴涵“法国的首都是巴黎”,因为“巴黎”不是一个完整的陈述句。然而,在问题“法国的首都是什么?”的上下文中,“巴黎”可以蕴涵“法国的首都是巴黎”。

例如:

  • 问题: “法国的首都是什么?”
  • 简短回答: “巴黎。”
  • 详细回答: “法国的首都是巴黎。”

在这个上下文中,简短回答和详细回答在意义上是等价的,简短回答蕴涵了详细回答的全部意义。

蕴涵估计器

例如 LLaMA 2、GPT-3.5 (Turbo 1106) 或 GPT-4来预测各代之间的蕴涵。我们使用以下提示:
我们正在评估对于问题 {question}的答案。这里有两个可能的答案:
可能的答案 1:{text1}
可能的答案 2:{text2}
可能的答案 1 在语义上是否蕴含可能的答案 2?用蕴含、矛盾或中性来回答。

We are evaluating answers to the question {question} 
Here are two possible answers: 
Possible Answer 1: {text1} 
Possible Answer 2: {text2} 
Does Possible Answer 1 semantically entail Possible Answer 2? Respond with entailment, contradiction, or neutral.

实验设计

数据集

  • TriviaQA:涵盖广泛的知识问答。
  • SQuAD 1.1:基于维基百科的阅读理解数据集。
  • BioASQ:生物医学领域的问题回答数据集。
  • NQ-Open:来自谷歌搜索的自然问题数据集。
  • SVAMP:数学词问题数据集。
  • FactualBio:传记生成数据集。

模型

  • 使用了LLaMA 2 Chat(7B、13B和70B参数)、Falcon Instruct(7B和40B参数)和Mistral Instruct(7B参数)等多个模型进行实验。

语义熵计算步骤

  1. 生成:从LLM的预测分布中采样生成多个答案序列。
  2. 聚类:使用双向蕴涵关系进行语义聚类,将语义相同的答案归为一类。
  3. 熵估计:计算语义聚类后的概率分布,并根据该分布计算语义熵。

结果分析

语义熵方法在多种数据集和模型上均表现优异,能够有效检测虚构内容并提高问答准确性。

AUROC 和 AURAC

AUROC:

  • 定义
    • AUROC 是指接收者操作特征曲线(ROC曲线)下的面积。ROC曲线绘制了模型的真阳性率(TPR,也称为召回率)对假阳性率(FPR)的关系。
  • 计算方法
    • 真阳性率(TPR):在所有实际为正的样本中,被正确预测为正的比例。计算公式为:TPR = TP / (TP + FN),其中TP为真阳性,FN为假阴性。
    • 假阳性率(FPR):在所有实际为负的样本中,被错误预测为正的比例。计算公式为:FPR = FP / (FP + TN),其中FP为假阳性,TN为真阴性。
    • 通过改变分类模型的阈值,可以得到一系列的TPR和FPR值,并绘制出ROC曲线。AUROC 是ROC曲线下的面积,数值范围在0到1之间。
  • 意义
    • AUROC 值越接近1,表示模型的分类性能越好。
    • AUROC 值为0.5,表示模型没有区分能力,相当于随机猜测。
    • AUROC 值小于0.5,表示模型的分类能力比随机猜测还差,可能存在某些问题。
  • 解释
    • 在本文中,AUROC 衡量了语义熵方法预测模型错误答案的可靠性,较高的AUROC值表明语义熵方法能够有效区分正确和错误的模型生成。

AURAC(拒绝准确性曲线下面积)

  • 定义
    • AURAC 是指拒绝准确性曲线(Rejection Accuracy Curve)下的面积。拒绝准确性曲线绘制了模型拒绝回答可能产生幻觉的问题后,剩余问题的回答准确性。
  • 计算方法
    • 拒绝准确性:在模型拒绝回答部分问题后,剩余问题的回答准确性。
    • 随着拒绝比例的增加,模型剩余回答的准确性通常会提高,因为被拒绝的问题往往是模型不确定或容易产生幻觉的问题。
    • 通过改变拒绝的阈值,可以得到一系列的拒绝准确性值,并绘制出拒绝准确性曲线。AURAC 是该曲线下的面积,数值范围同样在0到1之间。
  • 意义
    • AURAC 值越高,表示模型在拒绝不确定回答后,剩余回答的准确性越高。
    • AURAC 值能够综合反映模型在不同拒绝阈值下的整体表现。
    • 在本文中,AURAC 衡量了语义熵方法通过拒绝回答不确定问题后,提升剩余回答准确性的效果。较高的AURAC值表明语义熵方法能够有效识别并拒绝潜在幻觉内容,显著提高模型回答的总体准确性。

总结

AUROC 和 AURAC 是评估语义熵方法性能的重要指标,前者侧重于模型预测错误答案的能力,后者则评估模型在拒绝不确定回答后的准确性提升。本文通过这些指标展示了语义熵方法在检测和减少大语言模型幻觉内容方面的优越性能。

评估指标

语义熵(Semantic Entropy):

  • 语义熵是用于检测大语言模型(LLM)输出不确定性的一种方法。其核心思想是根据生成文本的意义而非具体的词序列来计算不确定性。具体步骤如下:
    • 对输入生成多个答案。
    • 使用双向蕴涵(entailment)方法将这些答案聚类,根据答案是否在语义上等价进行分组。
    • 计算这些语义等价群组的概率分布,从而估算生成文本的语义熵。高语义熵表示模型对生成的内容存在高不确定性,可能产生虚构内容。

离散语义熵(Discrete Semantic Entropy):

  • 离散语义熵是语义熵的一种变体,主要用于在无法获得模型输出概率的情况下使用。其基本思想是将生成的答案视为离散的类别,通过统计各类别出现的频率来估计概率分布。
    • 生成多个答案。
    • 使用同样的方法将答案进行语义聚类。
    • 计算每个语义等价群组的频率,作为其概率分布,从而估算语义熵。

朴素熵(Naive Entropy):

  • 朴素熵直接基于生成的词序列计算不确定性。其计算方式是基于词的联合概率分布:
    • 对生成的每个答案,计算其词序列的联合概率。
    • 将这些概率归一化后,计算整个生成序列的熵。由于未考虑语义等价性,这种方法可能高估了不确定性。

P(True):

  • P(True)方法是一种基于生成答案的可信度估计方法。其具体步骤如下:
    • 生成多个答案,并将这些答案列表以及最可能的答案提供给模型。
    • 让模型判断最可能的答案是否为真,并计算其回答“是”的概率作为可信度分数。
    • 使用少量训练数据(few-shot)来增强模型对问题的理解和回答的准确性。

嵌入回归(Embedding Regression):

  • 嵌入回归是一种监督学习方法,用于预测模型回答的正确性。其基本步骤如下:
    • 使用语言模型生成答案并获取其最后的隐藏状态(嵌入)。
    • 训练一个逻辑回归分类器,基于这些嵌入来预测答案是否正确。
    • 这种方法依赖于训练数据的分布,如果训练数据和实际应用中的数据分布不匹配,性能可能会下降。

嵌入回归 - 分布外(Embedding Regression - OOD):

  • 分布外(Out-of-Distribution OOD)嵌入回归方法与嵌入回归类似,但训练数据和测试数据来自不同分布。
    • 训练分类器时使用一种数据分布,评估时使用另一种不同的数据分布。
    • 这种情况下,模型的性能通常会显著下降,因为训练时学到的模式可能无法很好地泛化到新的数据分布。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Firewalld防火墙基础

Firewalld 支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具 支持IPv4、IPv6防火墙设置以及以太网桥 支持服务或应用程序直接添加防火墙规则接口 拥有两种配置模式 运行时配置:临时生效,一旦重启或者重载即不生效 永久配置&#xff1a…

【简易版tinySTL】 红黑树- 定义, 插入, 构建

文章目录 旋转左旋右旋 左旋右旋代码实现红黑树的基本性质红黑树的插入红黑树的插入示例红黑树修复代码实现参考资料 旋转 对于一个平衡二叉搜索树,左子树高度为4,右子树高度为2,它们的高度差为2,破坏了平衡性(高度差&…

IT之家最新科技热点

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

前端:Nuxt2 + Vuetify2

想要开发一个网站,并且支持SEO搜索,当然离不开我们的 Nuxt ,那通过本篇文章让我们一起了解一下。如果构建一个Nuxt项目 安装 Nuxt,创建项目 安装nuxt2, 需要node v16,大家记得查看自己的node版本。构建脚…

初阶数据结构之堆讲解

本篇文章带大家学习的是堆,还请各位观众老爷给个三连 正片开始 堆的概念 如果有一个关键码的集合 K { , , , … , } ,把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满…

J021_QQ号格式校验

一、需求描述 校验QQ号码是否正确。要求全部是数字,数字长度(6-20位之间),不能以0开头。 二、代码实现 package com.itheima.sort;public class Test {public static void main(String[] args) {System.out.println("----…

MySQL4(事务、函数、慢查询和索引)

目录 一、MySQL事务 1. 概念 2. 事务的ACID原则 3. MySQL实现事务的方法 4. MySQL实现事务的步骤 5. 事务的原子性、一致性、持久性 6. 事务的隔离性 7. MySql中的锁 1. 共享锁 2. 排他锁 3. 行级锁 4. 表级锁 5. 间隙锁 6. 临键锁 7. 记录锁 8. 意向共享锁…

1.spring入门案例

Spring 介绍 Spring是轻量级的开源的JavaEE框架。 Spring有两个核心部分:IOC和AOP IOC 控制反转,把创建对象过程交给Spring进行管理。 AOP 面向切面,不修改源代码进行功能增强。 Spring特点 1.方便解耦,简化开发。 2.AOP编…

docker安装sqlserver2019

1、背景 由于要学习flink cdc,并且数据源是sqlserver,所以这里采用docker安装sqlserver。 2、安装步骤 (1)建目录 // 创建指定的目录 mkdir sqlserver// 进入该目录 cd sqlserver// 创建/data/mssql目录 mkdir -p /data/mssql…

SpringBoot + mkcert ,解决本地及局域网(内网)HTTPS访问

本文主要解决访问SpringBoot开发的Web程序,本地及内网系统,需要HTTPS证书的问题。 我测试的版本是,其他版本不确定是否也正常,测试过没问题的小伙伴,可以在评论区将测试过的版本号留下,方便他人参考: <spring-boot.version>2.3.12.RELEASE</spring-boot.vers…

Ubuntu20.04安装vimplus插件

参考文章&#xff1a; Ubuntu Linux下vimplus的安装及使用安装vimplus之后乱码问题解决 1、安装步骤&#xff1a; $ git clone https://github.com/chxuan/vimplus.git ~/.vimplus$ cd ~/.vimplus$ ./install.sh2、./install.sh 过程 出现选择是否备份 /home/yin-roc/.vim…

注意力机制之ECA-Net:Efficient Channel Attention for Deep Convolutional Neural Network

论文link&#xff1a;link code&#xff1a;code 1.摘要 近年来&#xff0c;通道注意机制被证明在改善深层卷积神经网络&#xff08;CNN&#xff09;的性能方面提供了巨大的潜力。然而现有的大多数方法都致力于开发更复杂的注意模块以获得更好的性能&#xff0c;这不可避免地增…

博客都在使用的打字机效果,居然这么简单?

效果展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>body …

历年各省废水污染、治理数据

1996-2019年各省废水污染、治理数据https://download.csdn.net/download/a519573917/89485042 目录 摘要&#xff1a; 一、引言 二、文献综述 三、实证模型 &#xff08;一&#xff09;变量选择 &#xff08;二&#xff09;数据来源 &#xff08;三&#xff09;模型设定…

timm中模型更换huggingface模型链接

现在timm默认使用huggingface的链接了&#xff0c;错误链接如下&#xff1a; (MaxRetryError("HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /timm/swinv2_tiny_window8_256.ms_in1k/resolve/main/model.safetensors (Caused by C…

适用于智慧城市、智慧文旅等在线场景的轻量级3D数字人引擎MyAvatar简介

本人研发的国内首个纯面向web应用和小程序的轻量级3D虚拟人引擎MyAvatar。 功能简述 支持3D模型定制&#xff08;写实或卡通风格均可&#xff0c;人物模型需实现绑定和变形&#xff09;动画可以内置于模型中&#xff0c;也可以单独以glb或fbx格式导出并动态加载支持readyplay…

音频接口电路的PCB设计

Audio接口是音频插孔&#xff0c;即音频接口&#xff0c;可分为Audio in接口和Audio out接口。音频接口是连接麦克风和其他声源与计算机的设备&#xff0c;其在模拟和数字信号之间起到了桥梁连接的作用。对于平台的数字音频接RK3588口&#xff0c;需遵循《Rockchip RK3588 High…

时序分析之Clock rise/fall edge边沿对选取解析

目录 一、前言 二、Clock edge的选取逻辑 2.1 设计工程 2.2 同频同相 2.3 同频不同相1 2.4 同频不同相2 2.5 倍频关系(Fclk1>Fclk2) 2.6 倍频关系(Fclk1)<> 2.7 倍频关系存在相移(Fclk1)<> 2.8 非倍频关系无相移(Fclk1)<> 2.9 非倍频关系有相移…

在数字化转型中,中小企业如何打造数字化产品和服务?

引言&#xff1a;随着社会的发展和消费者行为的变化&#xff0c;市场对数字化产品和服务的需求日益增长。中小企业需要紧跟这一趋势&#xff0c;通过开发数字化产品和服务来满足消费者的新需求。云计算、大数据、人工智能等先进技术的出现&#xff0c;为中小企业提供了更多的机…

第5章_Modbus通讯协议

文章目录 5.1 学习Modbus的快速方法5.1.1 寄存器速记5.1.2 协议速记 5.2 初识Modbus5.2.1 背景5.2.2 什么是Modbus&#xff1f;1. Modbus简介2. Modbus特点3. Modbus常用术语4. Modbus事务处理 5.3 Modbus软件与使用5.3.1 Modbus软件简介5.3.2 Modbus Poll&#xff08;主站设备…