多模态——旷视大模型Vary更细粒度的视觉感知实现文档级OCR或图表理解

概述

现代大型视觉语言模型(LVLMs),例如CLIP,使用一个共同的视觉词汇,以适应多样的视觉任务。然而,在处理一些需要更精细和密集视觉感知的特殊任务时,例如文档级OCR或图表理解,尤其是在非英语环境中,CLIP风格的视觉词汇表可能导致在标记化视觉知识方面效率较低,甚至可能导致词汇缺失的问题。

为了解决这些问题,旷视提出了一种名为Vary的高效且有效的LVLMs视觉词汇量扩展方法。Vary的过程分为两个关键阶段:

  1. 第一阶段: 设计了一个词汇表网络和一个小型的仅解码器的转换器,通过自回归生成所需的新视觉词汇表。

  2. 第二阶段: 通过将新的视觉词汇表与原始词汇表(CLIP)合并,扩展了vanilla(原始的)视觉词汇表。这使得LVLM能够有效地获取新特征,从而快速适应新的任务和场景。

这种方法旨在提高LVLM在特殊任务和非英语环境下的效率和适应性,避免了视觉知识标记化方面的一些问题。
在这里插入图片描述

与流行的BLIP-2、MiniGPT4和LLaVA相比,Vary在保持原有功能的同时,具有更出色的细粒度感知和理解能力。具体来说,Vary能够胜任新的文档解析功能(OCR或标记转换),同时在DocVQA中实现78.2%的ANLS,在MMVet中实现36.2%。

源码与安装

git clone https://github.com/Ucas-HaoranWei/Vary.git
cd Vary

安装相关软件包:

conda create -n vary python=3.10 -y
conda activate vary
pip install e .

安装 Flash-Attention:

pip install ninja
pip install flash-attn --no-build-isolation

测试

python vary/demo/run_qwen_vary.py  --model-name  /vary/model/path/ --image-file /an/image/file.png

Vary方法

一.算法架构

Vary方法包含两个变体:Vary-tiny和Vary-base,如下图所示。Vary-tiny被设计用于生成新的视觉词汇,而Vary-base则用于利用这些新词汇。具体而言,Vary-tiny由一个词汇网络和一个微型的OPT-125M组成。为了对齐通道尺寸,两个模块之间添加了一个线性层。Vary-tiny没有文本输入分支,因为其主要关注细粒度感知。作者期望新的视觉词汇网络在处理人工图像(例如文档和图表)时能够表现出色,以弥补CLIP的不足。同时,为了防止它在自然图像的标记中成为CLIP的噪声,作者在生成过程中使用人工文档和图表数据作为正样本,自然图像作为负样本来训练Vary-tiny。

完成上述过程后,作者提取了词汇网络并将其添加到一个大型模型中,以构建Vary-base。如图2下半部分所示,新旧词汇网络具有独立的输入嵌入层,并在LLM之前进行集成。在此阶段,冻结新旧视觉词汇网络的权重,解冻其他模块的权重。这一阶段的目标是在更大的模型中利用新的视觉词汇,以提高模型的性能和适应性。
在这里插入图片描述

二、视觉词汇

1.新词汇网络

在Vary中,作者使用了由SAM预训练的ViTDet图像编码器(基尺度)作为Vary新词汇网络的主要组成部分。由于SAM-base的输入分辨率为(1024×1024),而输出步幅为16,因此最后一层的特征形状为(H×W×C为64×64×256),与CLIP-L的输出(N×C为256×1024)无法对齐。为了解决这个问题,作者在SAM初始化网络的最后一层后面添加了两个卷积层,这被称为一个有效的 token 合并单元,如图3所示。

第一个卷积层的核大小为3,其目的是将7b - llm特征形状转换为32×32×512。接下来,第二个卷积层的设置与第一个相同,可以进一步将输出形状转换为16×16×1024。然后,输出特征被平展为256×1024,以对齐CLIP-VIT的图像 token 形状。这一系列操作旨在调整SAM-base输出的特征形状,以使其与CLIP-L的输出相匹配,确保新视觉词汇网络的有效集成。

2.生成短语中的数据引擎

在作者的研究中,他们选择高分辨率文档图像-文本对作为新视觉词汇预训练的主要正数据集,以验证模型在细粒度图像感知方面的能力,特别是在密集OCR任务上。由于目前尚未公开具有中英文文档的数据集,作者创建了自己的数据集。他们首先从arXiv和CC-MAIN-2021-31-PDFUNTRUNCATED等开放获取文章中收集了PDF格式的文档作为英文部分,并从互联网上的电子书中收集了中文部分。然后,使用PyMuPDF的fitz工具从每个PDF页面提取文本信息,并通过pdf2image将每个页面转换为PNG图像。在这个过程中,作者构建了1百万个中文文档和1百万个英文文档图像-文本对进行训练。

对于图表数据,作者发现当前的大型视觉语言模型(LVLMs)在图表理解方面表现不佳,特别是在处理中文图表时。因此,他们选择图表作为另一个需要"写"入新词汇表的主要知识。他们根据图表的渲染方式选择了matplotlib和pyecharts作为渲染工具。对于matplotlib风格的图表,他们构建了25万个中英文版本。对于pyecharts,分别为中文和英文创建了50万个图表。此外,作者将每个图表的文本基础真值转换为Python字典形式。图表中使用的文本,如标题、x轴和y轴,是从互联网上下载的自然语言处理(NLP)语料库中随机选择的。

为了构建负样本自然图片-文本对,以确保新引入的词汇不会产生噪声,作者从COCO数据集中提取了12万张图像,每张图像对应一个文本。这些文本从以下句子中随机抽取:“It’s a image of nature”; “这是一张自然的照片”; “这是一张自然照片”; “这是一个自然的形象”; “这是大自然的杰作。”

3.输入格式

在对Vary-tiny进行自回归训练时,作者使用了图像-文本对,其中输入格式符合流行的大型视觉语言模型(LVLMs)的规范,即图像token以前缀形式与文本token打包在一起。

具体而言,作者使用了两个特殊标记 “” 和 “”,用于指示图像标记在输入中的位置。这些标记是为了插入OPT-125M(4096个标记)的输入。在训练过程中,Vary-tiny的输出仅为文本,并将 “” 视为表示序列结束的特殊令牌(eos令牌)。

因此,每个训练实例都包含一个图像-文本对,其中图像部分由特殊标记表示,而文本部分包含文本标记和 “” 作为序列的结束标志。这种方式的训练允许Vary-tiny学习生成新的视觉词汇,以适应特定任务和场景。

三、扩大视觉词汇

1.Vary-base结构

在完成词汇网络的训练后,作者将其引入到LVLM - Var -base中。具体而言,作者将新的视觉词汇表与原始的CLIP-VIT并行化。这两个视觉词汇表都有一个单独的输入嵌入层,即一个简单的线性层。

线性层的输入通道为1024,输出通道为2048,这样确保了拼接后的图像token通道数为4096。这与LLM(Qwen-7B或Vicuna-7B)的输入通道数完全一致。这种并行化的设计允许LVLM同时处理原始CLIP-VIT的图像编码和新引入的视觉词汇网络的图像编码,从而为LVLM提供了新的特征以适应特定任务和场景。

2.扩展短语中的数据引擎

作者认为数据需要具有一定的格式,例如支持公式和表格。为了满足这个需求,他们通过LATEX(一种排版系统)渲染创建文档数据。具体步骤如下:

  1. 首先,作者在arXiv上收集了一些.tex源文件,这是包含LATEX代码的文档源文件。

  2. 然后,他们使用正则表达式提取表格、数学公式和纯文本等内容。

  3. 最后,重新渲染这些内容,使用pdflatex准备新的模板。为了执行批处理渲染,作者收集了10多个模板。

通过这个流程,作者创建了具有统一格式的文档数据。为了统一文本的格式,他们将每个文档页面的文本ground truth转换为mathpix markdown样式。

整个建设过程使作者得到了50万英文页面和40万中文页面。图4显示了一些示例。这样的数据集不仅包含了纯文本信息,还包括了公式和表格等复杂结构,为模型提供了更具挑战性的任务。

在这里插入图片描述

使用pdflatex来渲染文档,使用pyecharts/matplotlib来渲染图表。文档数据获取中/英文文本、公式和表格。图表数据包括中/英文条形、线形、饼形和复合样式。

在第1.2.2节中,作者通过批量渲染图表数据来训练新的词汇网络。然而,由于这些图表中的文本(标题、x轴值和y轴值)是随机生成的,它们之间的语义关联性较低。在词汇表生成阶段,这并不是问题,因为作者只关心新的词汇表是否能够有效地压缩视觉信息。但是在Vary-base的训练阶段,由于LLM的解冻,作者希望使用更高质量(强相关内容)的数据进行训练。

因此,在这一阶段,作者采取了不同的策略。他们使用GPT-4生成了一些图表,并利用高质量的语料库添加渲染了200,000个图表数据,以用于Vary-base的训练。这样的做法有助于提高图表中文本之间的语义关联性,使得模型在训练中能够更好地理解和捕捉图表的内容。

总的来说,训练Vary-base的过程遵循流行的大型视觉语言模型(LVLMs)的方法,如LLaVA。这包括预训练和SFT(Supervised Fine-Tuning)阶段。不同之处在于,作者冻结了所有的词汇网络,并解冻了输入嵌入层和LLM,使得它更类似于一个纯LLM的预训练设置。在SFT阶段,使用了LLaVA-80k或LLaVA-CC665k以及DocVQA和ChartQA的训练集作为微调数据集。此外,一般概念的引入也通过使用自然图像-文本对数据从LAION-COCO中随机抽取,数量为400万。

实验结果

在这里插入图片描述

根据表2的结果,在LLaVA-80k的SFT数据上,Vary-base(以Qwen-7B为LLM)在DocVQA上取得了78.2%(测试集)和76.3%(验证集)的ANLS(Answer Normalized Levenshtein Similarity)。在使用LLaVA-665k的SFT数据的情况下,Vary-base在ChartQA上的平均性能达到了66.1%。

在这两个具有挑战性的下游任务上,Vary-base的表现与Qwen-VL相当甚至更好。这说明了所提出的视觉词汇量扩展方法在下游任务中具有很大的潜力,能够有效地提高模型性能。
在这里插入图片描述

使用相同的LLM(Vicuna-7B)和SFT数据(LLaVA-CC665k),Vary相对于LLaVA-1.5提高了总度量2.4%(32.9%对30.5%),证明了Vary的数据和训练策略不会损害模型的一般能力。

此外,Vary在与Qwen-7B和LLaVA-80k的性能相比时,表现出了更高的性能,达到了36.2%。这进一步证明了Vary的视觉词汇扩展方法的有效性。

最重要的是,Vary展示了很大的潜力和极高的上限。使用Vary,多模态大模型可以直接端到端输出结果,无需冗长的管道。此外,Vary可以根据用户的提示(prompt)直接输出不同格式的结果,如LaTeX、Word、Markdown等。这使得OCR不再需要复杂的流程,而是可以更加灵活地满足不同输出格式的需求。
在这里插入图片描述

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

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

相关文章

前缀和算法 -- 寻找数组的中心坐标

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 本题链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 输入描述 给定一个数组&#xff0c;接口为int pivotIndex(vector<int>& nums) 输出描述 我们以示例1为例画图解释&#xf…

DRF从入门到精通七(djangorestframework-simplejwt、定制返回格式、多方式登录)

文章目录 一、djangorestframework-simplejwt快速使用1.基础使用步骤2.自己配置视图校验访问局部配置认证及权限类全局配置认证及权限类 3.关于双token认证问题 二、定制返回格式三、多方式登录 一、djangorestframework-simplejwt快速使用 JWT主要用于签发登录接口需要配合认证…

频谱论文:约束飞行轨迹下基于生成对抗网络的三维无线电地图重构

#频谱# T. Hu, Y. Huang, J. Chen, Q. Wu and Z. Gong, "3D Radio Map Reconstruction Based on Generative Adversarial Networks Under Constrained Aircraft Trajectories," in IEEE Transactions on Vehicular Technology, vol. 72, no. 6, pp. 8250-8255, June …

Vue - 多行文本“展开、收起”功能

TextClamp 使用 js 实现文本展开、收起&#xff0c;并非纯 CSS 实现。 Props&#xff1a; fontSize&#xff1a;Number&#xff0c;默认&#xff1a;14lines&#xff1a;Number&#xff0c;默认&#xff1a;1lineHeight&#xff1a;Number&#xff0c;默认&#xff1a;20 F…

字符编码转换

宽窄字符和字符编码的关系 多字节(窄)字符&#xff1a;在C/C中&#xff0c;char是一种数据类型&#xff0c;规定sizeof(char)1&#xff0c;即一个char占用一个字节&#xff0c;1Byte8bit。并没有规定一个char就要与ASCII对应&#xff0c;不过&#xff0c;通常情况下char值与AS…

2023 年博客总结

当无所事事&#xff0c;没有多少收获的时候&#xff0c;时间过得格外的快… 当充实有为&#xff0c;经常有收获有进步的时候&#xff0c;才觉得时间没有浪费… 2023年收获不多… 以前说孩子小&#xff0c;需要照顾所以没时间&#xff0c;我以为孩子大点就有时间了&#xff0c;…

图片处理相关网站(图片分辨率、尺寸修改、AI扩图等)

分享一些免费的可进行图片的各种处理的网站&#xff0c;包括图片分辨率、尺寸修改、AI扩图等&#xff0c;持续增加中。。。 1.photokit.com 可进行图片分辨率、尺寸、压缩等修改。 免费在线图片编辑器 - 在线抠图、改图、修图、美图 - PhotoKit.comPhotoKit是一款免费的…

【RocketMQ每日一问】RocketMQ SQL92过滤用法以及原理?

1.生产端 public class SQLProducer {public static int count 10;public static String topic "xiao-zou-topic";public static void main(String[] args) {DefaultMQProducer producer MQUtils.createLocalProducer();IntStream.range(0, count).forEach(i -&g…

自动化测试面试题及答案大全(上)

selenium中如何判断元素是否存在&#xff1f; 没有提供原生的方法判断元素是否存在&#xff0c;一般我们可以通过定位元素异常捕获的方式判断selenium中hidden或者是display &#xff1d; none的元素是否可以定位到&#xff1f; 不可以&#xff0c;想点击的话&#xff0c;可以用…

[ASIS 2019]Unicorn shop

点入题目看见四个可购买的东西&#xff0c;但是都购买不了&#xff0c;最后一个价格大的脱俗&#xff0c;猜测成功买到后会得到flag&#xff0c;但是购买时提示操作失败只允许一个字符。查看源码发现在utf-8后面特意标注提示 涉及到了字符编码和字符集的概念&#xff1a; UTF-…

2024 年度 AAAI Fellows 揭晓!清华大学朱军教授入选!

今日&#xff0c;国际人工智能领域最权威的学术组织 AAAI 揭晓 2024 年度 Fellows 评选结果&#xff0c;新增 12 位 Fellow。 其中&#xff0c;清华大学计算机系教授朱军因「在机器学习理论与实践方面做出的重大贡献」而成功入选&#xff0c;成为本年度入选的唯一华人学者&…

2023最大技术潮:大模型冲击下的智能汽车

作者 |德新 编辑 |王博 过去这年最大的技术潮&#xff0c;非大模型莫属。 2023年初&#xff0c;由ChatGPT掀起的浪花&#xff0c;迅速地演变成了席卷全球的AI科技浪潮。汽车行业在其中也不可避免。各大车企纷纷投入与大模型相关的布局。 长城官宣成立了AI Lab&#xff0c;到…

尝试解决 H5无法播放mp3录音问题

1.问题描述 将H5传递的录音 media_id 通过微信获取临时素材接口获取到录音文件流之后&#xff0c;转为mp3文件上传到服务器。但是H5却没办法播放这个mp3文件。这个文件只能在播放器上播放&#xff0c;比如网易云什么的。不能直接在微信&#xff0c;浏览器上播放 2.原因分析 通…

山西电力市场日前价格预测【2024-01-04】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-01-04&#xff09;山西电力市场全天平均日前电价为197.93元/MWh。其中&#xff0c;最高日前电价为376.04元/MWh&#xff0c;预计出现在18:15。最低日前电价为0.00元/MWh&#xff0c;预计出…

Go语言基础简单了解

文章目录 前言关于Go学习流程 基础语法注释变量常量数据类型运算符fmt库 流程控制if、switch、selectfor、break、continue遍历String 函数值传递和引用传递deferinit匿名、回调、闭包函数 数组和切片Map结构体自定义数据类型接口协程和channel线程锁异常处理泛型文件读取文件写…

数据库中的几种锁

数据库锁 1.数据库锁的种类 以 mysql innoDB 为例&#xff0c;数据库的锁有 排他锁&#xff0c;共享锁&#xff0c;意向锁&#xff0c;自增锁&#xff0c;间隙锁&#xff0c;锁的范围有包括&#xff0c;行锁&#xff0c;表锁 &#xff0c;区间锁。 从应用研发的视角&#xff…

C++:第十一讲DFS深搜

Everyday English Your optimal career is simply this: Share the real you with physical world through th e process of creative self-expression. 你的最佳职业很简单&#xff0c;就是这样&#xff1a;通过创造性自我表达的途径和世界分享真实的你。 前言 今天带着大家…

一元函数微分学——刷题(14

目录 1.题目&#xff1a;2.解题思路和步骤&#xff1a;3.总结&#xff1a;小结&#xff1a; 1.题目&#xff1a; 2.解题思路和步骤&#xff1a; 只要知道反函数求导等于原函数的导数的倒数&#xff0c;那就很好求解了&#xff0c;这不过要先处理好x和y的对应关系&#xff0c;知…

本地套接字通信

本地套接字&#xff08;Unix域套接字&#xff09;是用于在同一台机器上的进程之间进行通信的一种方式。它不涉及网络协议&#xff0c;而是直接在文件系统中创建一个套接字文件&#xff0c;进程可以通过该文件进行通信。 本地套接字的作用&#xff1a;本地的进程间通信 有关系的…

语音AI小夜灯项目

一、项目简介 使用ESP32-S3N8R8模块作为主控芯片&#xff0c;S3内核增加了用于加速神经网络计算和信号处理等的指令&#xff0c;这使得我们可以使用它来快速解析训练好的语音模型进行语音识别的功能。 二、原理解析 本项目由四个部分组成&#xff0c;电源部分、LED照明部分、…