【多模态】37、TextSquare | 借助 Gemini-Pro 通过四个步骤来生成高质量的文本问答数据

在这里插入图片描述

文章目录

    • 一、背景
    • 二、方法
      • 2.1 Square-10M
      • 2.2 模型结构
      • 2.3 使用 Square-10M 进行有监督微调
    • 三、效果
      • 3.1 实验设置
      • 3.2 Benchmark 测评

论文:TextSquare: Scaling up Text-Centric Visual Instruction Tuning

代码:暂无

出处:字节 | 华中科技大学 | 华东科技大学

时间:2024.04

一、背景

当前多模态大模型在 text-centric VQA 任务中已经取得了很好的效果,比如 GPT-4V 和 Gemini 在某些方面都超过了人类的识别能力,但一些开源的模型还远不如闭源的模型,如图 1 所示,这种差距的来源有很多,如模型结构、模型参数量、图像分辨率、训练数据、训练策略等

在这里插入图片描述

因此,有一些模型围绕数据来探究,想要得到更好的微调数据:

  • Monkey,使用了专家模型来对图像生成不同的描述,然后使用 GPT-4 来组合出高质量的包含更多细节信息的描述
  • LLaVAR [51] 和 TG-Doc [46] 使用 GPT-4 将 OCR 结果整合到指令中来生成与文本丰富的图像相关的对话。
  • ShareGPT4V[5] 通过 GPT4V 构建了一个高质量图像描述数据集

但上述方法还是以文本为中心的,图像层面上还存在一些约束,如图像内容呈现方式,图像规模等等

为了解决这一差距,本文提出了一种策略,称为 Square,用于从复杂且多功能的闭源 MLLMs 获取大量高质量、以文本为中心的 VQA 数据,从而构建一个包含数千万实例的数据集(Square-10M),用于指令调优。

该方法包括四个步骤:

  • 自我提问:利用 MLLM 在文本-图像分析和理解方面的能力生成与图像文本内容相关的问题
  • 回答:利用不同的 prompting 技术(链式思维(Chain-of-Thought)和少样本提示等)来回答这些问题
  • 推理:探讨模型回答背后的推理过程
  • 评估:评估问题的有效性、图像文本内容的相关性、答案的正确性,从而提高数据质量并减轻幻觉现象

此外,为了丰富图像多样性,作者收集了大量的 text-rich images,包括自然场景、表格、图表、小票、书籍、幻灯片、pdf、文档、产品标签、网络数据等,构建了 Square-10M 数据集

多模态大模型现状:

最近的研究越来越多地关注将视觉知识引入大语言模型(LLMs)中 [52, 2, 7]。一般的尝试是通过中间模块(如 Projector [29]、QFormer [23]、Perceiver Resampler [1] 等)连接视觉编码器和 LLM,并进行预训练对齐和指令微调,以实现视觉-语言理解。

最近,一些研究 [48, 11, 10, 50, 47, 44, 33, 27] 提出了增强多模态大语言模型(MLLMs)理解文本元素(OCR、以文本为中心的 VQA 等)的能力。其中,mPLUG-DocOwl [48] 创建了新的指令跟随数据集,以增强调优过程。

TextMonkey [7] 采用了移位窗口注意机制,并过滤掉了重要的标记。

DocPedia [10] 和 HRVDA [27] 则通过扩大输入分辨率来弥合 MLLMs 与视觉文档理解之间的差距。

尽管现有开源 MLLMs 已取得了显著进展,但它们仍然与最先进的闭源模型(如 GPT4V [38] 和 Gemini Pro [8])存在巨大差距。本文提出通过训练大规模且高质量的指令跟随数据来缩小这一差距。

以文本为中心的 VQA 现状:

以文本为中心的视觉问答(Text-Centric Visual Question Answering)旨在理解图像中文本和视觉元素之间的交互。

Donut [20] 首次提出了一种基于 Transformer 的端到端训练方法,不需要 OCR。

Pix2Struct [22] 引入了一种可变分辨率的输入表示,以适应文档图像。

DoCo [24] 通过对齐多模态输入的文档对象,增强了图像编码器在大视觉语言模型(LVLMs)中的视觉表示。

BLIVA [16] 通过连接学习的查询嵌入和编码的补丁嵌入,扩大了输入标记空间。一些研究 [11, 46, 51] 在这方面进行了以数据为中心的尝试。

UniDoc [11] 从 PowerPoint 演示文稿中构建了60万对面向文档的图像-文本对。

LLaVAR [51] 和 TG-Doc [46] 通过将 OCR 结果整合到指令中,提示仅包含文本的 GPT-4 为文本丰富的图像生成对话。这些研究都局限于小规模注释或基于单一模态输入的生成。

在这里插入图片描述

二、方法

2.1 Square-10M

下图为数据处理的整个流程:

  • 数据收集:收集包含多种属性的文本元素的大规模图像。
  • 数据生成:包括自我提问、回答和推理。在这个阶段,提示多模态大语言模型(MLLM)基于给定图像生成 VQA 对,以及其答案背后的推理过程。
  • 数据过滤:对生成的内容进行自我评估,旨在通过利用 MLLMs 的评估能力来丢弃无意义的问题和错误的答案。

在这里插入图片描述

  • 总计 380 万张包含丰富文本元素的图像
  • 通过数据生成阶段获得了 2000 万个问答对
  • 最终,通过 Square 策略提炼出了 910 万个问答对及其推理背景。图 2 中展示了对 Square-10M 的更精确分析。

下图为数据示例和数量分布:

在这里插入图片描述

如何使用 Gemini 进行数据生成呢:

  • 自我提问。在这一阶段,我们提示 Gemini Pro 针对给定图像生成深刻、有意义且非平凡的问题。我们要求 Gemini Pro 首先全面分析图像,然后根据其理解提出问题,如图 3 所示。考虑到高级多模态大语言模型(MLLMs)通常在理解文本元素方面比视觉元素较弱,我们还通过使用专业的 OCR 模型将提取的文本预先添加到提示中。
  • 回答。然后,指示 Gemini Pro 对生成的问题给出适当的答案。我们利用各种提示技术来丰富上下文信息并提高生成答案的可靠性,例如链式思维(Chain-of-Thought)和少样本提示(few-shot prompting)。图 3 展示了一个为给定问题生成答案的示例提示。
  • 推理。我们要求 Gemini Pro 阐述其答案背后的详细理由。这样的努力促使 Gemini Pro 更深入地思考问题与视觉元素之间的联系,从而减少幻觉并提供准确的答案。此外,生成的理由可以作为针对特定问题的额外上下文信息,有助于研究上下文学习机制。图 3 展示了一个用于自我推理的示例提示。

如何进行数据过滤:

  • MLLMs 的自我评估:我们提示 Gemini Pro 以及其他高级 MLLMs 判断生成的问题是否有意义,答案是否足够好以正确回答问题。图 3 展示了一个用于自我评估的示例提示。

  • 多个 prompt 的一致性:除了对生成内容进行直接评估外,我们在数据生成阶段手动扩展了提示和上下文空间。一个正确且有意义的 VQA 对在提供不同提示时应该在语义上保持一致。具体来说,在回答阶段,我们为 Gemini Pro 提供不同但语义相似的提示来回答给定问题。如果生成的答案在语义上不稳定,我们就会丢弃这些 VQA 对。图 3 中给出了一个示例。

  • 多个上下文一致性:类似于多提示一致性,我们通过预先添加不同的上下文信息来进一步验证 VQA 对。对于生成的问题,Gemini Pro 在不同上下文下生成三种类型的答案:(1)带推理的回答。Gemini Pro 在详细解释之前回答问题(即在推理阶段生成的内容)。(2)上下文内回答。Gemini Pro 使用链式思维或少样本提示回答问题。(3)简单回答。Gemini Pro 在没有额外上下文的情况下回答问题。如果生成的答案在语义上不一致,我们就会丢弃这些 VQA 对。

2.2 模型结构

  • A Vision Encoder modified from OpenAI CLIP ViT-L14-336 [41], where the resolution is increased to 700 for improved performance.
  • A LLM based on InternLM-2 [3], utilizing InternLM2-7B-ChatSFT as the practical variant.
  • A Projector, which semantically aligns the vision token and the text token.

2.3 使用 Square-10M 进行有监督微调

TextSquare 是通过使用 Square-10M 数据集进行监督微调(SFT)实现的。SFT 过程包括三个阶段:

  • 第一阶段:解冻所有三个组件(即视觉编码器、LLM 和投影器),并在分辨率为 490 的情况下训练模型。
  • 第二阶段:将输入分辨率提高到 700,并仅训练视觉编码器以适应分辨率变化。
  • 第三阶段:在分辨率为 700 的情况下进一步进行全参数微调。

三、效果

3.1 实验设置

训练数据包括 Square-10M 和 Monkey 的 SFT 数据。

训练过程分为三个阶段,使用相同的数据和 AdamW [32] 优化器,并使用 64 个 A100-80G GPU。

  • 第一阶段:对 InternLM-Xcomposer2 进行全参数微调,学习率从 1e-5 降到 1e-6,耗时约 9520 GPU 小时。
  • 第二阶段:将图像分辨率扩展到 700,并仅训练视觉变换器(VIT),学习率从 1e-4 降到 1e-5,耗时约 7280 GPU 小时。
  • 第三阶段:在分辨率为 700 的情况下进行全参数微调,学习率从 1e-5 降到 1e-6,耗时约 12350 GPU 小时。

3.2 Benchmark 测评

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

自动驾驶仿真(高速道路)LaneKeeping

前言 A high-level decision agent trained by deep reinforcement learning (DRL) performs quantitative interpretation of behavioral planning performed in an autonomous driving (AD) highway simulation. The framework relies on the calculation of SHAP values an…

WPF国际化的最佳实践

WPF国际化的最佳实践 1.创建项目资源文件 如果你的项目没有Properties文件夹和Resources.resx文件,可以通过右键项目-资源-常规-添加创建或打开程序集资源 2.添加国际化字符串 打开Resources.resx文件,添加需要翻译的文本字符,并将访问修…

java版B/S架构UWB人员定位系统源码spring boot+vue技术架构uwb定位装置-工业级UWB室内定位系统源码

java版B/S架构UWB人员定位系统源码spring bootvue技术架构uwb定位装置-工业级UWB室内定位系统源码 本套系统运用UWB定位技术,开发的高精度人员定位系统,通过独特的射频处理,配合先进的位置算法,可以有效计算复杂环境下的人员与物…

怎么避免电脑磁盘数据泄露?磁盘数据保护方法介绍

电脑磁盘是电脑存储数据的基础,而为了避免磁盘数据泄露,我们需要保护电脑磁盘。下面我们就来了解一下磁盘数据保护的方法。 磁盘加密 磁盘加密可以通过专业的加密算法来加密保护磁盘数据,避免电脑磁盘数据泄露。在这里小编推荐使用文件夹只读…

Springboot注意点

1.Usermapper里加param注解 2.RequestParam 和 RequestBody的区别: RequestParam 和 RequestBody的区别: RequestParam 和 RequestBody 是Spring框架中用于处理HTTP请求的两个不同的注 get请求一般用url传参数,所以参数名和参数的值就在ur…

Windows系统下DOS命令

Windows系统下DOS命令 1. 与文件操作相关1.1 mkdir,md命令1.2 rmdir、rd命令1.3 dir命令1.4 start命令1.5 echo命令1.6 type命令1.7 copy命令1.8 move命令1.9 copy和move的区别1.10 del命令1.11 rename命令1.12 attrib命令1.13 fsutil命令1.14 assoc命令 2. 与网络相…

如何在MySQL中实现upsert:如果不存在则插入?

目录 1 使用 REPLACE 2 使用 INSERT ... ON DUPLICATE KEY UPDATE 使用 INSERT IGNORE 有效会导致 MySQL 在尝试执行语句时忽略执行错误 INSERT 。这意味着 包含 索引或 字段 INSERT IGNORE 中重复值的语句 不会 产生错误,而只是完全忽略该特定 命令。其明显目的是…

centos官方yum源不可用 解决方案(随手记)

昨天用yum安装软件的时候,就报错了 [rootop01 ~]# yum install -y net-tools CentOS Stream 8 - AppStream 73 B/s | 38 B 00:00 Error: Failed to download metadata for repo appstream: Cannot prepare internal mirrorlis…

Ubuntu 22.04.4 LTS安装cmake-3.29.5

一、下载源码 wget https://github.com/Kitware/CMake/releases/download/v3.29.5/cmake-3.29.5.tar.gz tar -xzvf cmake-3.29.5.tar.gz 二、编译 运行./bootstrap。 如果出现下列问题: -- Could NOT find OpenSSL, try to set the path to OpenSSL root folder …

【STM32】STM32F103C6T6标准外设库

1、标准外设库获取 第一步,首先获取标准外设库,可以从官网进行下载。 https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html 根据自己的型号选择不同的系列,我这里选择是STM32F1系列 下载最新版本V3.6&a…

【Neo4j】Windows11使用Neo4j导入CSV数据可视化知识图谱

Windows11使用Neo4j导入CSV数据可视化知识图谱 序1. 安装JDK21(1)下载(2)安装(3)环境配置 2. 安装Neo4j(1)下载(2)解压安装(3)环境配置…

<Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本篇构建了这样的一个实例,可以动态修改UI的主题,通过菜单栏来选择预设的自定义主题和官方主题&#…

python如何画函数图像

通过图像可以直观地学习函数变化、分布等规律,在学习函数、概率分布等方面效果显著。下面我们尝试用Python的2D绘图库matplotlib来绘制函数图像。 下面我们来实现一个简单的函数: 首先,调用matplotlib库和numpy库 import matplotlib.pyplot …

UML实现图-部署图

概述 部署图(Deployent Diagram)描述了运行软件的系统中硬件和软件的物理结构。部署图中通常包含两种元素:节点和关联关系,部署图中每个配置必须存在于某些节点上。部署图也可以包含包或子系统。 节点是在运行时代表计算机资源的物理元素。节点名称有两种:简单名和…

Llama模型家族之拒绝抽样(Rejection Sampling)(二)均匀分布简介

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…

Edge 工作区是什么?它都有哪些作用?

什么是工作区 Edge 工作区是什么?它是微软 Edge 浏览器中的一个功能,在帮助用户更好地组织和管理他们的浏览会话。通过工作区,用户可以创建多个独立的浏览环境,每个工作区内包含一组相关的标签页和浏览器设置。这使得用户能够根据…

GPT-4o:免费且更快的模型

OpenAI GPT-4o 公告 OpenAI 推出了增强版 GPT-4 模型——OpenAI GPT-4o,用于支持 ChatGPT。首席技术官 Mira Murati 表示,更新后的模型速度更快,并在文本、视觉和音频处理方面有了显著提升。GPT-4o 将免费向所有用户开放,付费用户…

【TB作品】MSP430F5529 单片机,温度控制系统,DS18B20,使用MSP430实现的智能温度控制系统

作品功能 这个智能温度控制系统基于MSP430单片机设计,能够实时监测环境温度并根据预设的温度报警值自动调节风扇和加热片的工作状态。主要功能包括: 实时显示当前温度。通过OLED屏幕显示温度报警值。通过按键设置温度报警值。实际温度超过报警值时&…

【大模型】Ollama+open-webui/Anything LLM部署本地大模型构建RAG个人知识库教程(Mac)

目录 一、Ollama是什么? 二、如何在Mac上安装Ollama 1. 准备工作 2. 下载并安装Ollama 3. 运行Ollama 4. 安装和配置大型语言模型 5. 使用Ollama 三、安装open-webui 1. 准备工作 2. Open WebUI ⭐的主要特点 3. Docker安装OpenWebUI,拉去太慢…

为Android组件化项目搭建Maven私服

概览 文章目录 概览前言搭建 maven 私服服务器环境jdk安装配置nexus安装配置管理创建存储点、仓库 项目中使用 maven 私服上传 module 到仓库自动发布 module手动上传单个aar包 引用仓库中的 modulebuild.gradle引入远程module FAQ开发阶段有些module用远程依赖,有些…