当前位置: 首页 > news >正文

减轻幻觉新SOTA,7B模型自迭代训练效果超越GPT-4,上海AI lab发布

LLMs在回答各种复杂问题时,有时会“胡言乱语”,产生所谓的幻觉。解决这一问题的初始步骤就是创建高质量幻觉数据集训练模型以帮助检测、缓解幻觉。

但现有的幻觉标注数据集,因为领域窄、数量少,加上制作成本高、标注人员水平不一,所以很难变得强大。

为了解决这个问题,上海AI lab设计了一个迭代自训练框架——ANAH-v2,它像滚雪球一样,一边扩大幻觉检测的数据集,一边提高标注者的准确性。

这个框架利用期望最大化算法,每次循环都会先用现有的幻觉标注工具给新数据打上“幻觉”标签,然后用这些新数据训练一个更厉害的标注工具。

通过迭代,检测工具越来越强,数据集也越来越大。一个仅有7B参数的幻觉标注模型(89.55%)超越了GPT-4的表现(86.97%),并且在幻觉检测基准HaluEval和HalluQA上获得了新的SOTA!

图片

论文标题:
ANAH-v2: Scaling Analytical Hallucination Annotation of Large Language Models

论文链接
https://arxiv.org/pdf/2407.04693

图片

方法

1. 善于分析的幻觉标注器

幻觉标注器的目标是识别模型响应中的幻觉,在本文中该过程分为三个阶段,更贴近人类认知判断过程:

  • 事实存在判断:标注器评估提供的句子是否包含可验证的事实。如果没有事实内容,该句子被归类为“无事实”,无需进一步标注。

    图片

  • 参考信息提取:标注器从与问题和答案相关的文档中提取相关参考点。

    图片

  • 幻觉类型判断:标注器根据提取的参考点确定幻觉类型。如果句子与参考点一致,则分类为“无幻觉”。如果与参考点矛盾,则视为“矛盾幻觉”。如果缺乏支持证据且无法验证,则标记为“不可验证幻觉”。

    图片

以上三个阶段将在训练数据中形成多轮对话,用于后续模型训练。

2. 最大期望(EM)算法

本文通过最大期望算法同时扩展数据集和提高标注准确性。对于输入集合,需要同时估计两个隐藏变量,即输出集合和模型参数。具体而言,定义幻觉标注器的输入来自输入集合,包括一个问题、一个待标注的句子和一个参考文档。预期输出包括事实信息、参考文档中的关键参考点和幻觉类型。通过交替执行步和步来最大化的对数似然估计以更新模型参数:

图片

E步:为了提高的估计准确性和稳定性,作者引入了自一致性方法,这提供了分布的更稳健表示。对于每个输入,进行多次采样以产生个独立的输出,其中第个输出样本由事实信息()、参考点()和幻觉类型()组成。使用自一致性度量从所有输出中选择最具代表性的样本:

图片

在选择过程中,依次考虑幻觉类型、参考点和事实信息。通过对所有样本进行多数投票来确定最常见的幻觉类型,记为。然后,从包含的输出中获取相应的,形成候选参考集合。通过比较余弦相似性选择最“一致”的参考点。对于中的每个,首先计算它与中其他元素的平均余弦相似性。之后,选择平均余弦相似性最高的参考点:。最后,利用(, ),可以唯一地选择相应的。

M步:在E步的稳健估计之后,M步更新模型参数以最大化所选输出的似然。在第次迭代中将参数更新策略公式化为:

图片

3. 多维数据缩放

基于EM算法,本文框架以迭代方式运行,逐步扩展数据集,包括三个阶段:

阶段1:种子数据和基础标注器本文利用ANAH数据集作为种子数据,其中包含超过700个主题和大约4300个由LLM生成的问题和回答。对于每个回答,ANAH通过人工参与的方法为每个句子提供幻觉类型。本文使用第一节中描述的标注方法,用这些种子数据训练初始幻觉标注器,称为ANAH-v2阶段1。

阶段2:在回答维度上扩展在阶段1中,对于每个问题,ANAH提供GPT-3.5基于参考文档生成的回答,以及InternLM-7B在没有参考文档的情况下生成回答。

本文首先通过收集13个不同规模和系列的开源模型对相同问题的回答来扩展数据集的模型回答。对于每个模型,收集有无参考文档的回答。在过滤掉相似的模型回答后,这些回答使用ANAH-v2阶段1的自一致性pipeline逐句进行标注。新标注的数据与种子数据结合,用于训练ANAH-v2阶段2。

阶段3:在主题维度上扩展本文沿四个类别扩展主题覆盖:地点、人物、事件和事物,与ANAH的配置平行。对于每个主题,根据提供的参考文档生成几个问题。然后,使用阶段2中的相同方法,收集多个模型的回答,并按照阶段2中使用ANAH-v2阶段2标注器的相同程序进行标注。最终数据集结合前几个阶段的数据,用于训练最终版本的标注器。

总体统计

最终数据集涵盖超过3000个主题,约196k个模型回答和约822k个标注句子,包含英文和中文。

图片

主题覆盖名人、事件、地点和事物,涉及广泛领域,如政治、健康和体育。该数据集规模庞大,覆盖全面。

图片

实验与分析

本文采用了预训练的InternLM2-7B模型来对幻觉标注器进行微调,使用ANAH数据集的子集作为测试集。利用F1和准确率评估标注器在预测幻觉类型方面的性能,还使用RougeL和BertScore 来将生成的文本与人类参考文本进行比较,以考虑语法、连续性、顺序和语义方面。实验结果如下表:

图片

上表的最后三行展示了ANAH-v2在数据扩展各阶段的性能。随着数据集数量的增加,其性能逐步提高。这一趋势突显了幻觉标注框架的可扩展性和有效性。

值得注意的是,ANAH-v2在第二阶段的F1值达到87.78%,准确率达到88.03%,超越了GPT-4。最终,在第三阶段,我们达到了89.30%的F1值和89.55%的准确率。

除此之外,ANAH-v2在第一阶段的准确率(84.85%)已超过参数为20B的ANAH-20B(81.01%),而其参数仅为7B。这种优越性能归功于前文提到的善于分析的幻觉标注器的设计,得到了非常丰富的多轮对话。

消融实验

自一致性的影响

当标注器模型在各个数据扩展阶段使用相同的训练数据时,如下表所示,采用自一致性推理策略(w/ SC)的性能始终优于不采用自一致性策略(w/o SC),即对每个输入只生成一次。因此,自一致性方法提高了幻觉标注估计的准确性和稳定性。

图片

渐进数据缩放的影响

在渐进方法中,第二阶段更新的标注器用于标注额外主题的响应,不断丰富训练数据。相比之下,在非渐进方法中,第一阶段的基本标注器用于生成第三阶段额外训练数据的标注。

图片

在相同规模的训练数据下,使用非渐进数据扩展训练的标注器性能不如使用渐进数据扩展训练的标注器。

训练策略的影响

在默认训练过程中,将新标注的数据与旧数据混合以重新训练标注器。或者仅使用新标注的数据来进一步训练上一阶段的标注器模型。

图片

结果表明,混合训练数据的训练策略比仅用新数据进一步训练效果更好。在各个训练阶段整合不同质量的数据提高了标注器模型的鲁棒性。

评估ANAH-v2模型在幻觉检测能力的泛化性

本文进一步验证了微调模型ANAH-v2在其他幻觉检测数据集HaluEval(英文)和HalluQA(中文)上的有效性。让ANAH-v2分别判断回答中是否包含幻觉。

图片

结果显示,标注模型ANAH-v2在HaluEval和HalluQA上均取得了显著的准确率。ANAH-v2第三阶段在zero-shot设置下分别在HaluEval(81.54%)和HalluQA(94.44%)上取得了新的SOTA,这突显了ANAH-v2的泛化能力。此外,ANAH-v2第三阶段的表现优于第一阶段和第二阶段的标注器,这进一步证明了数据扩展策略在处理不熟悉回答时有效地稳定了性能。

ANAH-v2数据集可作为幻觉评估基准

ANAH-v2数据集和标注器可以作为现有模型生成文本中幻觉水平的基准。作者评估了各种不同规模的LLMs在ANAH-v2数据集的上性能。

图片

  • 所有模型在英文中的表现优于中文,这突显了需要进一步研究以理解和减少语言依赖的差异。

  • 所有模型在使用参考文档时的性能都优于不使用参考文档时的性能。Qwen1.5-14B在使用参考文档时实现了最低的幻觉率(5.33%),而Deepseek-67B在没有提供参考文档时实现了最低的幻觉率(47.17%)。

ANAH-v2标注器可用于缓解幻觉

除了用于测量幻觉水平外,ANAH-v2还可以用于缓解幻觉。本文使用了两个模型InternLM2-7B和LLaMA2-7B,通过top-k采样(k=40)生成36个候选响应,然后使用ANAH-v2标注器对这些响应进行重新排序,选择具有最低幻觉率的最佳响应。

为了量化幻觉程度,使用了RougeL、BertScore、NLI和QuestionEval指标测量生成的响应与标准答案和/或参考文档之间的一致性。

图片

结果显示,通过ANAH-v2标注器进行重新排序后,幻觉水平明显下降。LLaMA2-7B的NLI指标显著提高,从25.00%上升到37.01%。

结语

本文通过迭代自我训练,逐步扩大数据集的多样性和规模,并提高幻觉标注器的准确性。最终得到的ANAH-v2仅用7B参数在各种幻觉检测基准测试中首次超过了GPT-4,并在第三方幻觉检测基准测试中表现出色。

ANAH-v2不仅提供了一个基于的扩展数据集的自动幻觉评估基准,为未来幻觉缓解研究铺平了道路,还通过简单的重新排序策略展示了其在幻觉缓解中的潜力。相信ANAH-v2还可以为更细粒度的RLHF等更多幻觉缓解策略提供帮助。

相关文章:

减轻幻觉新SOTA,7B模型自迭代训练效果超越GPT-4,上海AI lab发布

LLMs在回答各种复杂问题时,有时会“胡言乱语”,产生所谓的幻觉。解决这一问题的初始步骤就是创建高质量幻觉数据集训练模型以帮助检测、缓解幻觉。 但现有的幻觉标注数据集,因为领域窄、数量少,加上制作成本高、标注人员水平不一…...

53.最大子数组和,动态规划+贪心解法!!!

力扣53最大子数组和 题目动态规划贪心 题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums…...

python+vue3+onlyoffice在线文档系统实战20240723笔记,项目界面设计和初步开发

经过之前的学习,已经能够正常打开文档了。 目前为止,我们的代码能够实现: 打开文档编辑文档手动保存自动保存虽然功能依然比较少,但是我们已经基本实现了文档管理最核心的功能,而且我们有个非常大的优势,就是支持多人同时在线协同编辑。 现在我们要开发项目,我们得做基…...

谷粒商城实战笔记-72-商品服务-API-属性分组-获取分类属性分组

文章目录 一,后端接口开发Controller层修改接口接口测试 二,前端开发 这一节的内容是开发获取分类属性分组的接口。 一,后端接口开发 Controller层修改接口 修改AttrGroupController接口。 RequestMapping("/list/{catelogId}")p…...

Vue 自定义指令

文章目录 注册局部注册全局注册 钩子钩子参数应用1、按钮权限验证2、自定义用户行为收集指令3、按钮点击防抖4、输入框自动获取焦点5、输入框自动去空字符串6、文字展示不下时展示提示框 注册 局部注册 export default {setup() {/*...*/},directives: {// 在模板中启用 v-fo…...

【python】python图书管理系统_普通用户+管理员菜单(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...

智能路面裂缝检测:基于YOLO和深度学习的全流程实现

引言 路面裂缝检测是维护道路质量和延长道路寿命的重要手段。传统的检测方法往往费时费力且易受人为因素影响。为了提高检测效率和准确性,本文介绍了一种基于深度学习的路面裂缝检测系统。该系统包括用户界面,利用YOLO(You Only Look Once&a…...

C++ unordered_map

1. unordered系列关联式容器 在C98 中, STL 提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到 ,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是&#xff0c…...

PHP Switch 语句

PHP 中的 switch 语句是一种多路分支语句,它允许一个变量的值对多个代码块进行选择执行。这通常比使用多个 if...elseif...else 语句更清晰、更易于维护。下面将详细介绍 PHP 中 switch 语句的使用方法。 基本语法 switch (n) {case label1:// 如果 n label1&…...

electron 网页TodoList应用打包win桌面软件数据持久化

参考: electron 网页TodoList工具打包成win桌面应用exe https://blog.csdn.net/weixin_42357472/article/details/140648621 electron直接打包exe应用,打开网页上面添加的task在重启后为空,历史没有被保存,需要持久化工具保存之前…...

软件缺陷(Bug)、禅道

目录 软件缺陷的判定标准 软件缺陷的核心内容 构成缺陷的基本要素 缺陷报告 缺陷管理 缺陷的跟踪流程 项目管理工具--禅道 软件在使用过程中存在的任何问题(如:错误、异常等),都叫软件的缺陷,简称bug。 软件缺…...

MySQL客户端命令一节将.sql文件导入MySQL

MySql客户端命令 直接输入SQL语句 使用MySQL客户端连接到服务器之后,可以发送SQL语句到服务器执行,并且以;和\g, \G作为结束不同的结束方式显示内容有所不同** TIPS: ;和\g结尾以表格的形式显示结果\G以行的形式显示结果 在连接到服务器之后…...

[论文笔记] DCA(Dual Chunk Attention)

DCA(Dual Chunk Attention)是一种在自然语言处理模型中用来处理长文本的技术。传统的注意力机制(Attention)在处理长文本时可能会遇到效率和性能瓶颈,因为计算每个单词与其他所有单词之间的关系会随着文本长度的增加而…...

构建查询洞察 UI

本文字数:2631;估计阅读时间:7 分钟 作者:Bucky Schwarz 本文在公众号【ClickHouseInc】首发 我们最近发布了 Query Insights 的初步实现,为 ClickHouse Cloud 用户提供了一种便捷的方法来查看和解释查询日志。该功能对…...

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十九章 等待队列

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...

35.【C语言】详解函数递归

目录: 定义 作用 例子1~3 拓展学习 趣味练习 1.定义:函数自己调用自己(递推回归) int main() {main()return 0; } 这样容易死循环,导致爆栈(Stack Overflow) 所以需要设立限制条件,使执行时越来越接近条…...

【机器学习】智驭未来:机器学习如何重塑制造业的转型与升级

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 🔍1. 引言📒2. 机器学习重塑制造业生产流程🌸预测性维护:减少停机时间,提高设…...

Python爬虫(5) --爬取网页视频

文章目录 爬虫爬取视频指定url发送请求UA伪装请求页面 获取想要的数据解析定位定位音视频位置 存放视频完整代码实现总结 爬虫 Python 爬虫是一种自动化工具,用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持(如 requ…...

【Unity】关于Luban的简单使用

最近看了下Luban导出Excel数据的方式,来记录下 【Unity】关于Luban的简单使用 安装Luban开始使用UnityLubanC# 扩展 安装Luban Luban文档:https://luban.doc.code-philosophy.com/docs/beginner/quickstart 1.安装dotnet sdk 8.0或更高版本sdk 2.githu…...

企业公户验证API如何使用JAVA、Python、PHP语言进行应用

在纷繁复杂的金融与商业领域,确保每笔交易的安全与合规是至关重要的。而企业公户验证API,正是这样一位默默守护的数字卫士,它通过智能化的手段,简化了企业对公账户验证流程,让繁琐的审核变得快捷且可靠。 什么是企业公…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...