HaluEval: A Large-Scale Hallucination Evaluation Benchmark for Large Language Models

2023-10-31

image.png

HaluEval: A Large-Scale Hallucination Evaluation Benchmark for Large Language Models

原文:https://arxiv.org/pdf/2305.11747

尽管现在大模型拥有前所未有的能力,其依然会生成出一些幻觉文本,即生成出存在冲突或无法通过已有知识来验证的内容。
本文探索:what types of content and to which extent LLMs tend to hallucinate?
本文提出HalEval Benchmark,包括35000个幻觉/正常的样本,用于分析和评估大模型。其包含5000个通用的用户对话查询问题以及30000个任务相关的问题(包括QA、知识对话和文本摘要)。

  • 对于用户查询,使用52k个Alpaca指令数据集。设计一个instruction,让大模型采样生成3个回复,并保留低相似的回复(尽可能多样化一点),最后让标注人员标注是否是幻觉,并标注存在幻觉的区间文本。样例如下图所示:

image.png

  • 对于task-specific数据,设计了自动构建幻觉数据的方法。基于已有的数据集,设计一个可以让大模型产生幻觉结果的instruction,并让模型生成幻觉回答

we design task-specific instructions for ChatGPT to generate hallucinated samples in two methods, i.e., one-pass and conversational.

HalEval Benchmark

构建幻觉数据的方法图:
image.png

Diverse Hallucination Sampling

One-pass Instruction:首先构建一个用于生成幻觉数据的指令,如下图所示:
image.png
包含一个PUA意图描述(蓝色),一个任务指令(红色,让模型生成幻觉的文本)和存在幻觉的样例(绿色)。
通过这个指令,分别对HotpotQA、OpenDialKG和CNN/Daily Mail采用10000个训练样本,并通过指令的方式生成对应的幻觉输出。

High-quality Hallucination Filtering

同样也是构造一个指令,这个指令用于从若干个幻觉的回复中选择一个最为plausible并且与真实结果closest的幻觉。相当于挑选一个难例。
image.png

Human Annotation

邀请标注人员来判断ChatGPT生成的幻觉数据中是否存在幻觉。通过选择Alpaca对应的52k个query,让ChatGPT生成3个回复,并使用BERTScore来计算两两之间相似度,最后筛选得到5000个彼此相似度很低的query。
然后让标注人员对着5000个样本进行标注,判断其是否存在幻觉,如果存在则标注出对应的区间。幻觉类型包括:unverifiable, non-factual, and irrelevant。
样例如下所示:
image.png

Benchmark Analysis and Usage

最终整理了30000个任务相关的幻觉数据,5000个对话幻觉数据。
基于这个Benchmark,研究者可以做如下一些事情:

  • 分析大模型会产生什么类型的幻觉;
  • 验证大模型识别幻觉的能力。例如给定一个query和answer,让大模型判断这个answer是否存在幻觉;

To use our benchmark, users can run the code in our project repository to conduct the corresponding evaluation and analysis. Users can use our provided instructions on their own datasets to evaluate LLMs on hallucinations.

实验

实验模型:Text-davinci-002、Text-davinci-003、gpt3.5-turbo
实验设置:最大长度:256、frequency penalty:0、top-p:1.0、温度系数:1.0

幻觉识别性能

让大模型来判断给定的样本的output有没有幻觉。
对三种任务设计幻觉识别的指令:
image.png
image.png
image.png
幻觉识别结果如下所示:
image.png
可知大模型在一些事实任务上幻觉识别任务上依然很差。同时也发现大模型很难利用相关的知识来识别事实幻觉问题。

提升策略

image.png
(1)Knowledge Retrieval
添加知识是可以提升大模型对事实幻觉的识别能力的
Therefore, equipping LLMs with ex- ternal knowledge can largely enhance their abilities to recognize hallucinated and texts.
(2)CoT Reasoning
除了让大模型给出是否幻觉的结论外,还需要给出理由。可发现体系爱你不太明显。
(3)Sample Contrast
实验结果看几乎没用,不用去了解这个方法了。

Case Study

image.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HaluEval: A Large-Scale Hallucination Evaluation Benchmark for Large Language Models 的相关文章

  • Internet Explorer 9 是否会因数组和对象文字末尾的额外逗号而卡住?

    现代浏览器和 Node js 等环境允许您说 a 1 b 2 或 1 2 3 这在历史上一直是 Internet Explorer 的问题 Internet Explorer 9 中修复了此问题吗 对此有两种不同的答案 一种是对象初始值设定
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 使用Multiprocessing和Pool时如何访问全局变量?

    我试图避免将变量冗余地传递到dataList e g 1 globalDict 2 globalDict 3 globalDict 并在全球范围内使用它们 global globalDict然而 在下面的代码中并不是这样做的解决方案 是否有
  • iOS 电池监控 Swift

    我已将监控设置为启用 但模拟器和设备中的电池电量仍然为 1 UIDevice currentDevice batteryMonitoringEnabled true var level UIDevice currentDevice batt
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d
  • python 中的 after() 与 update()

    我是 python 新手 开始使用 tkinter 作为画布 到目前为止 我使用 update 来更新我的画布 但还有一个 after 方法 谁能给我解释一下这个函数 请举个例子 两者之间有什么区别 root after integer c
  • 如何在 Erlang 中将数字转换为单词?

    我发现了一个关于将数字转换为 单词 的有趣问题 代码高尔夫 数字到单词 https stackoverflow com questions 309884 code golf number to words 我真的很想看看你如何在 Erlan
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are
  • Prolog:子句在源文件中不在一起

    我有这段代码 Family tree female pen male tom male bob female liz female pat female ann male jim parent pam bob parent tom bob
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO
  • 通过使用 navbarPanel() 并隐藏导航栏构建多页闪亮应用程序用户端(在 ui.R 中)?

    我想构建一个多页闪亮应用程序 我可以在其中控制用户可以看到哪个页面 迪安 阿塔利确实这个演示应用程序中有类似的东西 https github com daattali advanced shiny tree master multiple
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • react-scripts的工作原理

    我们来看看执行npm start yarn start时 代码如何执行的 首先我们使用react脚手架工具create react app初始化完一个react项目 打开package json 在命令行中执行npm start yarn
  • 4399笔试&&面试——感受

    笔试面试过了几天 现在才有时间写着文章 确实很多都忘记了 那就大概说说 然后说说自己的感受吧 首先我面试的是4399公司的系统运维工程师 我实习的时候是在弄开发的 Java开发的 我为什么选这个 因为我最近学习Python语言 写了个小爬虫
  • Linux系统主要目录

    Linux系统中主要的目录 其中某些目录在不同的Linux发行版中可能有所不同 目录名称 作用 bin 存放常用命令 boot 存放引导系统相关的文件 dev 存放设备文件 etc 存放系统配置文件 home 存放用户的主目录 lib 存放
  • oracle怎么查awr,Oracle AWR速查

    Oracle AWR速查 SQL gt SQLPLUS AS SYSDBA SQL gt exec dbms workload repository create snapshot SQL gt exec snap id dbms work
  • 测试晶面间距软件_TEM衍射斑点标定之DM软件

    虽然透射电子显微镜 TEM 能在纳米尺度上实现对待测样品形貌 尺寸的分析 结合选区电子衍射 SAED 可以更进一步实现对待测样品的晶体结构 晶相组成的鉴定 从而提高样品分析的准确度和可靠性 可是 每个刚接触TEM的小白 看到数据总会问师兄师
  • 写一段VBA代码,可以删除Excel表格中的所有图片

    Sub 删除所有图片 Dim iShp As Shape For Each iShp In ActiveSheet Shapes If iShp Type msoPicture Then iShp Delete End If Next iS
  • HttpClient 发送 HTTP、HTTPS 请求的简单封装

    序 最近这几周 一直在忙同一个项目 刚开始是了解需求 需求有一定了解之后 就开始调第三方的接口 由于第三方给提供的文档很模糊 在调接口的时候 出了很多问题 一直在沟通协调 具体的无奈就不说了 由于接口的访问协议是通过 HTTP 和 HTTP
  • php模拟文件上传使用curl向远程服务器上传文件,php将图片转成二进制文件进行请求接口上传

    原生phpCURLFile类向服务器上传文件 代码 要上传的文件路径 file path path to file txt 远程服务器接收文件的 API 地址 upload url http example com upload php 创
  • Python爬虫基础知识及前期准备

    学习爬虫有一小段时间了 于是决定把自己学爬虫时所学的 写过的代码以及看过的文档记录下来 权当小结 第一次写这些 如果有错误 请多指教 首先我们需要了解一下什么是爬虫 根据百度百科上给出的定义 网络爬虫 又被称为网页蜘蛛 网络机器人 在FOA
  • Ubuntu16.04安装Anaconda(Python3.7版本)

    该博客为 Ubuntu 相关 系列博客的第十二篇 该系列博客主要对Ubuntu安装各种软件或者库进行一个记录 方便重装系统后快速恢复工作 开始学习深度学习 陆续的就要安装一些深度学习的框架和一些常用的库 还有opencv 曾经装了一个星期没
  • pybind11教程翻译

    pybind11对应教程 First Step This sections demonstrates the basic features of pybind11 Before getting started make sure that
  • 将BufferedImage转为指定的类型

    将BufferedImage转为指定的类型 File file new File filePath BufferedImage in ImageIO read file BufferedImage newImage new Buffered
  • matlab 画的点连成线,matlab怎么把点连成线

    1 matlab中如何将点连成线 例 plot x y1 o x y2 x y3 x x y3 这个指令表示以标记点 o x 分别画 x y1 x y2 x y3 x y3 即标记方式作图 你可以把那一zhidao句改为plot x y1
  • Python中嵌套的列表推导式,以及实际应用中的更佳做法

    Python中嵌套的列表推导式 以及实际应用中的更佳做法 语法说明和示例来源自Python3 8官方文档 以转置矩阵的例子来说明嵌套列表推导式的使用 我们以Python中嵌套的列表来作为矩阵的存储结构 下面是一个3x4的矩阵 它由 3 个长
  • Qt继承类实例

    slavesexplorer h ifndef SLAVESEXPLORER H define SLAVESEXPLORER H include
  • Linux Django不允许外部访问ip:8000始终访问不了..

    原因 你的防火墙是否开启这个端口号8000 Firewall开启常见端口命令 firewall cmd zone public add port 8000 tcp permanent 重启防火墙 firewall cmd reload 查看
  • 实践Angular中Router路由跳转之navigateByUrl与navigate

    开始进入实战前 我们先来看下官方文档中对navigateByUrl navigate的介绍 navigateByUrl 定义 基于所提供的 URL 进行导航 必须使用绝对路径 参数 url string UrlReee extras 一个包
  • 在Angular6下ng add ng-zorro-antd 时报错

    ng add ng zorro antd 自动安装配置的ng zorro antd由于版本太高 会报错T1005 解决方案 1 在package json中修改ng zorro antd为 ng zorro antd 1 2 0 2 在an
  • Android中Intent的介绍

    一 Intent的介绍 Intent的中文意思是 意图 意向 Intent对Android的核心和灵魂 是各组件之间的桥梁 四大组件分别为Activity Service BroadcastReceiver ContentProvider
  • HaluEval: A Large-Scale Hallucination Evaluation Benchmark for Large Language Models

    HaluEval A Large Scale Hallucination Evaluation Benchmark for Large Language Models 原文 https arxiv org pdf 2305 11747 尽管