通过噪声扰动缓解多模态大型语言模型的幻觉问题

摘要

该论文提出了一种名为NoiseBoost的方法,通过噪声扰动来缓解多模态大语言模型(MLLM)中的幻觉问题。论文分析指出,幻觉主要源于大语言模型固有的总结机制,导致对语言符号的过度依赖,而忽视了视觉信息。NoiseBoost通过在视觉特征中加入噪声扰动,作为一种正则化手段,促进视觉和语言符号之间的注意力权重平衡。实验结果显示,NoiseBoost不仅在监督微调和强化学习中提升了模型性能,还首次实现了MLLM的半监督学习,充分利用了未标记数据。

image.png
图1:多模态大模型(MLLMs)由于过度依赖语言先验而遭受幻觉问题。在(a)中,幻觉词元过度依赖(0.27)之前的语言词元,后续的词元都是幻觉。同时,在(b)中,NoiseBoost通过噪声扰动帮助MLLMs将注意力权重均匀分配在视觉和语言词元之间,从而产生真实的结果。

主要方法

  1. 问题分析
  • 幻觉现象:MLLM在生成长描述时容易出现幻觉,因为模型过于依赖语言符号而忽略视觉信息。
  • 原因分析:语言模型在生成过程中会自动选择某些语言符号作为锚点,导致后续生成更加依赖这些锚点信息,而非上下文中的全部视觉和语言符号。
  1. NoiseBoost方法
  • 噪声扰动:在视觉符号中注入高斯噪声,增加学习过程的难度,迫使模型在理解视觉信息时分配更多的注意力权重。
  • 监督微调(SFT):在视觉特征中直接注入噪声扰动,通过交叉熵损失进行训练。
  • 强化学习(RL):结合噪声扰动和SFT,使用偏好模型(Preferred output)和非偏好模型(Less preferred output)来优化模型的生成。
  • 半监督学习(SSL):利用NoiseBoost生成伪标签,采用教师-学生网络架构,教师模型生成伪标签,学生模型在有噪声的视觉特征上进行一致性正则化学习。

image.png
图2:NoiseBoost框架。我们通过向视觉词元添加噪声扰动来减轻对语言词元的过度依赖,从而减少幻觉。在微调(SFT)过程中,我们直接将噪声注入到视觉特征中。我们仅对优选响应注入扰动,因为这样可以使多模态大模型(MLLMs)更难以学习,从而达到更好的效果。对于半监督学习,我们使用冻结的MLLM作为教师生成伪标签,并使用NoiseBoost作为学生进行一致性正则化。

实验结果

  1. 实验设置
  • 基线模型:选择了LLaVA-1.5和QwenVL作为基线模型。
  • 数据集:使用COCO captions和ShareGPT4v扩充数据集。
  • 训练细节:采用V100 GPU进行训练,使用float16和deepspeed优化训练。
  1. 性能提升
  • 监督微调:在多项数据集上表现出色,尤其是在MME数据集上提升显著(如LLaVA-1.5在MME上的分数提高了40点)。
  • 强化学习:NoiseBoost在各种问答数据集和幻觉数据集上均有约1%的性能提升。
  • 半监督学习:在使用50%标记数据的情况下,NoiseBoost可以达到与使用全部标记数据相似的性能。
  1. 定性评估
  • 人类评估:在1000张图片上进行密集描述评估,NoiseBoost的准确率提高了8.1%,主要改善了对象错误和幻觉错误。

image.png
图4:对幻觉原因的分析是过度依赖红色圈出的语言词元,而NoiseBoost没有这种依赖。

创新贡献

  1. 提出了NoiseBoost,通过简单且通用的噪声扰动方法,有效缓解MLLM中的幻觉现象。
  2. 首次将半监督学习引入MLLM,通过噪声扰动充分利用未标记数据。
  3. 实验验证了NoiseBoost在不同训练方法中的一致性能提升。

方法的优缺点

  • 优点
    • 方法简单,易于集成到现有的MLLM训练过程中。
    • 不需要额外的数据集或显著增加训练成本。
    • 在多种训练方法中均表现出色,具有良好的通用性。
  • 缺点
    • 噪声扰动的规模和概率需要仔细调优,否则可能影响模型学习过程。
    • 虽然方法有效,但依赖现有的大语言模型架构,没有从根本上解决多模态信息融合的问题。

结论

NoiseBoost是一种简单但有效的方法,通过引入噪声扰动,显著缓解了MLLM的幻觉问题,并提升了模型的视觉理解能力和生成准确性。这项工作为未来多模态大语言模型的研究和应用提供了重要的借鉴和思路。

论文下载地址

链接:https://pan.quark.cn/s/c73f2cb7010a

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊一聊 Monitor.Wait 和 Pluse 的底层玩法

一:背景 1. 讲故事 在dump分析的过程中经常会看到很多线程卡在Monitor.Wait方法上,曾经也有不少人问我为什么用 !syncblk 看不到 Monitor.Wait 上的锁信息,刚好昨天有时间我就来研究一下。 二:Monitor.Wait 底层怎么玩的 1. 案…

【JavaEE精炼宝库】多线程(7)定时器

目录 一、定时器的概念 二、标准库中的定时器 三、自己实现一个定时器 3.1 MyTimerTask 实现: 3.2 MyTimer 实现: 一、定时器的概念 定时器也是软件开发中的⼀个重要组件。类似于一个 "闹钟"。达到一个设定的时间之后,就执行…

时间复杂度的相关概念

1. 统计时间增长趋势 时间复杂度分析统计的不是算法运行时间,而是算法运行时间随着数据量变大时的增长趋势,也就是算法运行时间与输入数据的关系。 // 算法 A 的时间复杂度:常数阶 function algorithm_A(n) {console.log(0); } // 算法 B 的…

分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测

分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测&…

10.无代码爬虫软件做网页数据抓取流程——工作流程设置与数据预览

首先,多数情况下免费版本的功能,已经可以满足绝大多数采集需求,想了解八爪鱼采集器版本区别的详情,请访问这篇帖子:https://blog.csdn.net/cctv1123/article/details/139581468 八爪鱼采集器免费版和个人版、团队版下…

Salia PLCC cPH2 远程命令执行漏洞(CVE-2023-46359)

漏洞描述 Salia PLCC cPH2 v1.87.0 及更早版本中存在一个操作系统命令注入漏洞,该漏洞可能允许未经身份验证的远程攻击者通过传递给连接检查功能的特制参数在系统上执行任意命令。 产品界面 fofa语法 "Salia PLCC" POC GET /connectioncheck.php?ip1…

Android Studio项目升级报错:Namespace not specified

原项目升级AGP到8.0时报错: Namespace not specified. Specify a namespace in the modules build file: C:\Users\Administrator\Desktop\MyJetpack\app\build.gradle. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about…

vue大作业-端午节主题网站

vue大作业-端午节主题网站介绍 端午节,又称为龙舟节,是中国的传统节日之一,每年农历五月初五庆祝。这个节日不仅是纪念古代爱国诗人屈原的日子,也是家人团聚、共享美食的时刻。今天,我们非常高兴地分享一个以端午节为…

Go变量作用域精讲及代码实战

1. 变量的作用域概述 在编程中,变量的作用域(Scope)定义了变量在程序中的可见性和生命周期。理解变量的作用域对于编写健壮且可维护的代码至关重要。Go语言(简称Go)提供了几种不同的作用域类型,使得开发者可…

Ubuntu/Linux系统安装JDK1.8(带jdk1.8资源和操作教程)

文章目录 前言一、JDK1.8下载二、上传三、安装四、配置环境变量五、查看总结 前言 !!!!!!!!!!!!Ubuntu/Linux jdk1.8安装包&#xff…

SpringBootWeb 篇-入门了解 Spring Cache 、Spring Task 与 WebSocket 框架

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Spring Cache 概述 1.1 Spring Cache 具体使用 1.1.1 引入依赖 1.1.2 Spring Cache 相关注解的介绍 2.0 Spring Task 概述 2.1 cron 表达式 2.2 Spring Task 使用…

云平台DNS故障导致网站访问卡顿异常排查过程,wireshark、strace等工具在实际问题排查过程中的应用方法

一、问题现象 项目上使用华为私有云,前段时间华为升级云平台后,云上用户反馈业务系统出现卡顿,之前几秒可以刷新出来的页面现在需要几十秒。提供了一个比较明显的url和curl调用方法。 10.213.x.xxx:8082/files/login curl -H "Content-…

LabVIEW开发指针式压力仪表图像识别

系统利用LabVIEW编程实现对指针式压力仪表的读取,通过相机、光源、固定支架等硬件捕捉仪表图像,并通过图像识别技术解析压力值。系统分为两个阶段:第一阶段固定相机更换仪表,第二阶段移动相机识别多个固定仪表。本文介绍硬件选择、…

Jenkins 发测试邮件报错 553 Mail from must equal authorized user

Jenkins 发测试邮件报错 553 Mail from must equal authorized user 报错信息报错原因解决办法 报错信息 org.eclipse.angus.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user at org.eclipse.angus.mail.smtp.SMTPTransport.mailFrom(SMTPTra…

我工作中用Redis的10种场景

Redis作为一种优秀的基于key/value的缓存,有非常不错的性能和稳定性,无论是在工作中,还是面试中,都经常会出现。 今天这篇文章就跟大家一起聊聊,我在实际工作中使用Redis的10种场景,希望对你会有所帮助。 …

丹尼尔·T·琼斯:精益生产到底是什么?

本文摘要自《精益思想》、《改变世界的机器》作者之一丹尼尔T琼斯的文章。丹尼尔T琼斯是一位学者、英国作家和研究员。他曾多次获得瑞士山吉奥卓越运营奖研究与专业出版类别的奖项,也包括了国际精益六西格玛研究所(ILSSI)[1]的"精益思想…

【Java】已解决java.sql.SQLException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.sql.SQLException异常 在Java中,java.sql.SQLException是一个通用的异常类,用于表示在数据库操作中发生的错误。无论是类型错误、数据类型不匹配…

Nacos 2.x 系列【15】数据源插件支持达梦、Oracel、PostgreSQL......

文章目录 1. 概述2. 持久层机制2.1 固定语句2.2 数据源插件 3. 案例演示3.1 编译已实现插件3.2 自定义插件3.3 数据库初始化3.4 插件引入3.4.1 方式一:引入到源码3.4.2 方式二:插件加载目录 3.5 修改配置3.6 测试 1. 概述 在实际项目开发中,…

[Linux] 历史根源

UNIX系统: 1969年,由贝尔实验室的K.Thompson和D.M.Ritchie为PDP-7机器编写的一个分时操作系统, 最初使用汇编语言编写, 后来1972年C语言出世以后,二人由使用C写了UNIX3, 此后UNIX大为流行开来 UNIX流派树&a…

vxe-table 列表过滤踩坑_vxe-table筛选

但是这个过滤输入值必须是跟列表的值必须一致才能查到,没做到模糊查询的功能,根据关键字来过滤并没有实现。 下面提供一下具体实现方法:(关键字来过滤) filterNameMethod({ option, row }) {if (row.name.indexOf(op…