AI多模态论文解读:LLaVA-CoT:让视觉语言模型逐步推理

本文作者:AIGCmagic社区 猫先生


 一、简 介

LLaVA-CoT引入了四个不同的阶段(摘要、标题、推理和结论),使模型能够独立进行系统化的多阶段推理,显著提高了在推理密集型任务上的准确性。

编译了LLaVA-CoT-100k数据集,整合了来自各种视觉问答来源的样本,并提供了结构化的推理注释,为训练提供了丰富的数据支持。

提出一种新的推理时阶段级束搜索方法,能够在每个阶段生成多个候选结果并选择最佳结果继续生成过程,实现了有效的推理时扩展。

通过监督微调,LLaVA-CoT不仅在广泛的推理基准上超越了其基础模型,还超过了更大且闭源的模型,如Gemini-1.5-pro、GPT-4o-mini和Llama-3.2-90B-Vision-Instruct。

图片

图1. LLaVA-CoT和其他模型在六个多模态推理基准测试中的性能。尽管LLaVA-CoT是从Llama-3.2-11B-Vision-Instruct模型中微调而来的(该模型的平均分数最低),但它胜过了许多更大的开源模型,甚至一些闭源模型


二、引 言

大语言模型在推理能力上取得了显著进步,特别是在推理时间扩展方面,如OpenAI的o1所示。然而,当前的视觉语言模型(VLMs)往往难以进行系统和结构化的推理,尤其是在处理复杂的视觉问答任务时。

本文要解决的问题是如何提升视觉语言模型(VLMs)在处理复杂视觉问答任务时的系统性结构化推理能力。

现有的VLMs在推理过程中缺乏系统性和结构性,导致在复杂推理任务中频繁出现错误和幻觉输出;如何有效地进行推理时间扩展,以应对更复杂的任务和场景。

图片

图2. 基线模型与LLaVA-CoT的比较。如图所示,基线模型Llama-3.2-11B-Vision-Instruct在推理过程中出现了明显的缺陷,多次出现错误。相比之下,LLaVA-CoT首先概述问题,从图像中解释相关信息,然后逐步进行推理过程,并最终得出一个得到充分支持的结论


三、方法概述

LLaVA-CoT(Let Vision Language Models Reason Step-by-Step),一种旨在通过多阶段推理来增强视觉语言模型(VLM)系统性和结构性推理能力的新模型。

(1)结构化推理阶段:LLaVA-CoT将答案生成过程分解为四个结构化推理阶段:总结、标题、推理和结论。每个阶段都有其独特的作用:

  • 总结阶段:模型提供问题的高层次总结,概述将要解决的问题的主要方面。

  • 标题阶段:如果存在图像,模型提供与问题相关的视觉元素的简洁概述,帮助理解多模态输入。

  • 推理阶段:基于初始总结,模型进行结构化和逻辑推理,得出初步答案。

  • 结论阶段:模型综合前面的推理,生成最终答案。

(2)数据准备和模型训练:为了训练LLaVA-CoT模型,作者构建了一个包含99k图像问答对的新数据集LLaVA-CoT-100k。该数据集通过使用GPT-4o生成详细的推理过程,并使用监督微调进行训练。具体步骤如下:

  • 使用GPT-4o生成问题和图像的总结、标题、推理和结论。

  • 过滤生成的数据以确保质量。

  • 选择Llama-3.2-11B-Vision-Instruct作为基础模型,并在LLaVA-CoT-100k数据集上进行全参数微调

图片

图3. 生成LLaVA-CoT-100k数据集过程的流程。引导GPT-4o在各个阶段生成响应,并过滤其输出以确保质量

(3)推理时间扩展:为了进一步在推理过程中增强模型的推理能力,作者提出了一种新的阶段级束搜索方法。该方法在每个推理阶段生成多个候选结果,并选择最佳结果以继续生成过程。具体步骤如下:

  • 在每个推理阶段随机采样N个响应。

  • 随机选择2个响应,让模型决定哪个更好,并保留较好的响应。

  • 重复上述步骤N-1次,保留最佳响应。

  • 重复上述过程,直到所有阶段都处理完毕。

图片

图4. 推理方法的示意图。最佳N次搜索生成N个完整响应,并从中选择最佳一个;句子级波束搜索为每个句子生成多个候选选项,并从中选择最佳一个。相比之下,我们的阶段级波束搜索为每个推理阶段(例如,摘要、标题、推理和结论)生成候选项,并在每个阶段选择最佳选项。最佳N次搜索在粗略层面上操作,而句子级波束搜索过于细致,我们的方法实现了最优平衡并取得了最佳性能


四、实验细节

数据收集:作者从多个广泛使用的视觉问答数据集中收集了样本,包括ShareGPT4V、ChartQA、A-OKVQA、AI2D、GeoQA+、ScienceQA、DocVQA、PISC和CLEVR等。

实验设计:实验在六个广泛使用的多模态推理基准上进行,包括MMStar、MMBench、MMVet、MathVista、AI2D和HallusionBench。所有评估均使用VLMEvalKit进行,以确保公平性和可重复性。

样本选择:从每个数据集中选择了一定数量的问答对,总共99k个图像问答对。

参数配置:使用Llama recipes框架进行训练,具体超参数配置包括学习率1e-5,训练轮数3,批量大小4,使用快速内核,不使用验证等。


五、实验结果分析

基准测试结果:与基础模型相比,LLaVA-CoT在一般视觉问答、数学推理、科学视觉问答和幻觉控制任务上均表现出色,平均基准得分提高了6.9%。

图片

消融研究:

  • LLaVA-CoT-100k数据集比直接使用原始数据集的问答对更有效。

  • 结构化标签对模型性能的提升至关重要,去除标签后模型性能显著下降。

  • 模型主要在需要系统性推理的任务上表现出改进,如实例推理、逻辑推理、数学和科学和技术。

推理时间扩展:阶段级束搜索方法在推理时间计算增加时表现出显著的有效性。随着候选响应数量的增加,模型性能持续提高。


推荐阅读

AI多模态核心架构五部曲:

AI多模态模型架构之模态编码器:图像编码、音频编码、视频编码

AI多模态模型架构之输入投影器:LP、MLP和Cross-Attention

AI多模态模型架构之LLM主干(1):ChatGLM系列

AI多模态模型架构之LLM主干(2):Qwen系列

AI多模态模型架构之LLM主干(3):Llama系列  

AI多模态模型架构之输出映射器:Output Projector  

AI多模态模型架构之模态生成器:Modality Generator

AI多模态实战教程:

AI多模态教程:从0到1搭建VisualGLM图文大模型案例

AI多模态教程:Mini-InternVL1.5多模态大模型实践指南

AI多模态教程:Qwen-VL升级版多模态大模型实践指南

AI多模态实战教程:面壁智能MiniCPM-V多模态大模型问答交互、llama.cpp模型量化和推理


技术交流

加入「AIGCmagic社区」群聊,一起交流讨论,涉及AI视频、AI绘画、数字人、多模态、大模型、传统深度学习、自动驾驶等多个不同方向,可私信或添加微信号:【lzz9527288】,备注不同方向邀请入群!

更多精彩内容,尽在AIGCmagic社区」,关注了解全栈式AIGC内容!

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

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

相关文章

FreeROTS学习 内存管理

内存管理是一个系统基本组成部分,FreeRTOS 中大量使用到了内存管理,比如创建任务、信号量、队列等会自动从堆中申请内存,用户应用层代码也可以 FreeRTOS 提供的内存管理函数来申请和释放内存 FreeRTOS 内存管理简介 FreeRTOS 创建任务、队列…

JavaFx 21 项目Markdown 预览、编辑、新建、文件树、删除、重命名

项目文件结构 项目的源代码和资源文件存放在以下路径: 源代码: src/main/java/com/kong/markdown/ 包含多个 Java 文件,主要实现了应用的功能: App.java:主类,可能包含应用的启动逻辑。FileService.java:可能与文件操作相关的服务类。MainController.java:控制器类,可…

【Uniapp-Vue3】computed计算属性用法及方法对比

如果我们想要将两个响应式变量进行某种运算,就可以使用computed计算属性。 比如下面这个例子中,输入名和姓合成全名,可以用直接显示的方法: 我们也可以使用computed属性: import {computed} from "vue"; le…

【Linux】模拟Shell命令行解释器

一、知识补充 1.1 snprintf snprintf() 是 C语言的一个标准库函数&#xff0c;定义在<stdio.h>头文件中。 snprintf() 函数的功能是格式化字符串&#xff0c;并将结果存储在指定的字符数组中。该函数的原型如下&#xff1a; int snprintf(char *str, size_t size, con…

逆向 易九批 最新版 爬虫逆向 x-sign ......

声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; # 欢迎交流 wjxch1004

LeetCode:108.将有序数组转换为二叉搜索树

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;108.将有序数组转换为二叉搜索树 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff…

双因素身份验证技术在NPI区域邮件安全管控上的解决思路

在制造业中&#xff0c;NPI&#xff08;New Product Introduction&#xff0c;新产品导入&#xff09;区域是指专门负责新产品从概念到市场推出全过程的部门或团队。NPI 的目标是确保新产品能够高效、高质量地投入生产&#xff0c;并顺利满足市场需求。在支撑企业持续创新和竞争…

基于 GEE 下载逐年 MODIS 地表温度 LST 数据

目录 1 地表温度&#xff08;LST&#xff09; 2 数据准备 3 代码实现 3.1 加载研究区与数据集 3.2 数据预处理与标准化 3.3 逐年批量导出 3.4 可视化结果 4 运行结果 5 完整代码 1 地表温度&#xff08;LST&#xff09; 在遥感领域&#xff0c;地表温度&#xff08;L…

Web渗透测试之XSS跨站脚本 防御[WAF]绕过手法

目录 XSS防御绕过汇总 参考这篇文章绕过 XSS payload XSS防御绕过汇总 服务端知道有网络攻击或者xss攻 Html 通过js代码 标签属性等手段进行一个过滤 不允许出现css的payload 前端过滤 我可以在抓包工具里面修改 抓包工具是不受前端的防御 也 就是浏览器 服务端过滤…

4G、5G移远模块SIM卡热插拔问题解决

4G、5G移远模块SIM卡热插拔问题解决 1、开发环境2、问题阐述3、开启模块热插拔功能4、问题解决5、quectelCM工具(热插拔)6、思路1、开发环境 系统: ubuntu20.04 拨号工具:quectelCM 模块型号:ec20、rm500u 开发平台:RK35XX系列 2、问题阐述 SIM卡热插拔功能已开启,拔掉…

Win11家庭版转专业版

Win11家庭版转专业版&#xff08;亲测有效&#xff09; 第一步 【断网】输入这个密钥&#xff1a; R8NJ8-9X7PV-C7RCR-F3J9X-KQBP6 第二步 点击下一步会自动重启 第三步 【联网】输入这个密钥&#xff1a; F3NWX-VFMFC-MHYYF-BCJ3K-QV66Y 注意 两次输入密钥的地方一致 …

浅析大语言模型安全和隐私保护国内外标准和政策

过去两年&#xff0c;大模型技术已经普及并逐步渗透到各行各业&#xff0c;2025年注定是大模型应用井喷式发展的一年&#xff0c;AI在快速发展的同时&#xff0c;其带来的安全风险也逐渐凸显。人工智能系统的安全性和隐私保护已经成为社会关注的重点。 附下载&#xff1a;600多…

GelSight Mini视触觉传感器凝胶触头升级:增加40%耐用性,拓展机器人与触觉AI 应用边界

马萨诸塞州沃尔瑟姆-2025年1月6日-触觉智能技术领军企业Gelsight宣布&#xff0c;旗下Gelsight Mini视触觉传感器迎来凝胶触头的更新。经内部测试&#xff0c;新Gel凝胶触头耐用性提升40%&#xff0c;外观与触感与原凝胶触头保持一致。此次升级有效满足了客户在机器人应用中对设…

使用 Docker 安装 Maven 私服 Nexus3

在现代软件开发中&#xff0c;私有仓库是企业管理和分发内部依赖的重要工具&#xff0c;能够提高开发效率、加强依赖管理并确保构建的稳定性。Nexus Repository Manager 作为市场上常见的私服解决方案&#xff0c;不仅支持 Maven&#xff0c;还支持 npm、PyPI 等多种格式&#…

opencv 学习(3)

文章目录 画直线画圆画矩形画多边形文字绘制画板 本部分图形绘制 本节内容比较简单 直接上代码 画直线 import cv2 import numpy as np## 本节画直线## line 参数介绍 ## image 在那个图像上面 画线 ## 开始点借宿点 指定先的开始和结束的位置 ## 颜色 线宽 线性 ## shift…

Java-数据结构-栈与队列(StackQueue)

一、栈(Stack) ① 栈的概念 栈是一种特殊的线性表&#xff0c;它只允许固定一端进行"插入元素"和"删除元素"的操作&#xff0c;这固定的一端被称作"栈顶"&#xff0c;对应的另一端就被称做"栈底"。 &#x1f4da; 栈中的元素遵循后…

带格式 pdf 翻译

支持 openAI 接口&#xff0c;国内 deepseek 接口兼容 openAI 接口&#xff0c; deepseek api 又非常便宜 https://pdf2zh.com/ https://github.com/Byaidu/PDFMathTranslate

【如何从0到1设计测试用例使用Fiddler完成弱网测试】

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a; c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 ⭐⭐⭐测试用…

基础项目实战——贪吃蛇(c++)

目录 前言一、 游戏总体框架二、地图绘制三、光标隐藏四、地图定义五、蛇体定义六、蛇体绘制七、蛇体移动八、频率控制九、边界检测十、游戏失败十一、蛇体转向十二、食物生成十三、食物碰撞十四、整体代码十五、结语 前言 各位小伙伴们好久不见&#xff0c;前段时间非常的忙很…

排序:插入、选择、交换、归并排序

排序 &#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性 &#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#xff0c;…