(详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models

Haoran Wei1∗, Lingyu Kong2∗, Jinyue Chen2, Liang Zhao1, Zheng Ge1†, Jinrong Yang3, Jianjian Sun1, Chunrui Han1, Xiangyu Zhang1
1MEGVII Technology 2University of Chinese Academy of Sciences 3Huazhong University of Science and Technology
arXiv 2023.12.11
背景:
随着大规模视觉-语言模型(LVLMs)的兴起,它们在多个领域展现出了卓越的性能。LVLMs通常使用一个通用的视觉词汇(如CLIP)来覆盖大部分常见的视觉任务。
研究动机:
目前的多模态大模型几乎都是用CLIP作为vision encoder,虽然CLIP有很强的视觉文本对齐能力并且能覆盖大多数日常任务,但是对于密集和细粒度感知的任务,例如高分辨率感知、非英语OCR以及文档/图表理解等,CLIP表现出了编码低效和out of vocabulary的问题。
主要贡献:
Vary方法为LVLMs的视觉感知能力提供了一个更高效和准确的视觉词汇扩展方案。通过生成新的视觉词汇并与原始词汇融合,该方法在特定视觉任务上表现出色,并在性能评估中取得了良好的结果。

在这里插入图片描述
这篇论文的灵感是来源于大型语言模型中的文本词汇扩展方式,不同于其他使用现成视觉词汇的模型,Vary的过程可以分为视觉词汇的生成和融合两个阶段。在第一阶段,我们使用一个“词汇网络”和一个微小的解码器网络,通过自动回归产生一个强大的新视觉词汇。在第二阶段,我们将视觉词汇表与原始词汇表融合,为lvlm有效地提供新的特征。

在这里插入图片描述
这个是Vary的训练方法和模型结构图,跟现有方法直接用现成的CLIP词表不同的是,Vary 分两个阶段:第一阶段先用一个很小的 Decoder-only 网络用自回归方式帮助产生一个强大的新视觉词表,此阶段为 Vary-tiny;具体来说,Vary-tiny主要由一个词汇网络和一个微小的 OPT-125M 组成。在两个模块之间,使用一个线性层来对齐通道尺寸。在Vary-tiny 中没有文本输入分支,因为它主要关注细粒度感知。希望新的视觉词汇网络能够在处理人工图像,即文档和图表方面表现出色,以弥补CLIP的不足。同时,也期望在输入自然图像时,它不会成为CLIP的噪声。因此,在生成过程中,本文将人工文档和图表数据作为正样本,将自然图像作为负样本来训练 Vary-tiny。然后,第二阶段,冻结新旧视觉词汇网络的权值,解冻其他模块的权值。融合新词表和 CLIP 词表,从而高效的训练多模大模型拥有新 feature,此阶段为 Vary-base。

数据集:
自制中英文文档数据集。
文档数据:开源论文
图表数据:matplotlib、pyecharts渲染工具
负的自然图像:COCO数据集中提取
在这里插入图片描述
论文的数据集是作者自己创建的,提取了部分开放获取的论文收集pdf格式文档作为英文部分,然后经过多种处理成为文本数据集。图表数据主要借助matplotlib和pyecharts作为渲染工具进行构建的。负的自然图像数据是从COCO数据集中提取的。
本文使用 SAM 预训练的 ViTDet 图像编码器作为 Vary 新词汇网络的主要部分。由于 SAM-base 的输入分辨率为(1024×1024),而输出步幅为 16,所以最后一层的特征维度的为(64×64×256),无法与 CLIP-L 的输出(N×C为256×1024)对齐。因此,本文在SAM 初始化网络的最后一层后面添加了两个卷积层,如下图所示。第一个卷积层的核大小为 3,目的是将特征变为 32×32×512。第二个卷积层的设置与第一个相同,可以进一步将输出变为 16×16×1024。之后,再将输出特征展平为 256×1024,以对齐 CLIP-VIT的图像 token 的维度。

在这里插入图片描述

在完成词汇网络的训练后,将它用于 Vary -base中。具体来说,将新的视觉词汇表与原始的 CLIP-VIT 并行。这两个视觉词汇表都有一个单独的输入嵌入层,即一个简单的线性。线性的输入通道为 1024,输出通道为 2048,保证了拼接后的图像 token 通道为4096,这与LLM (Qwen-7B 或 Vicuna-7B )的输入完全一致。
在这里插入图片描述
与Nougat相比,Vary具有细粒度的文本感知能力,他的edit distance、F1score和prediction都有所提升,但是召回率出现了下降,但是降得也并不是很低。
在这里插入图片描述
在下游任务中,与DocVQA和ChartQA上流行的方法的比较。Vary-base(以Qwen-7B为LLM)可以在DocVQA上实现78.2%(测试)和76.3%(验证)的ANLS,基于LLaVA-80k的SFT数据。使用LLaVA-665k数据进行SFT,Vary-base可以在ChartQA上达到66.1%的平均性能。这两个具有挑战性的下游任务的性能与Qwen-VL相当,甚至更好,这表明我们提出的视觉词汇扩大方法对下游也有前景。

通过MMVet基准测试监控Vary的一般性能。使用相同的LLM(Vicuna-7B)和SFT数据(LLaVA-CC665k),Vary比LLaVA-1.5提高了2.4%(32.9% vs. 30.5%)的总指标,证明我们的数据和训练策略不会损害模型的一般能力。此外,Vary配合Qwen-7B和LLaVA-80k可以实现36.2%的性能,进一步证明了我们的视觉词汇扩大方式的有效性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文强调了扩展LVLM视觉分支的词汇量是非常重要的,并成功地设计了一个简单的方法来证明这一说法。实验表明,所提供的模型Vary在多任务中取得了不错的成绩,这主要得益于我们生成的新词汇。尽管Vary的表现令人满意,但我们认为如何有效地扩大视觉词汇量仍有很大的改进空间,特别是与成熟且相对简单的扩展文本词汇量的方法相比。我们希望Vary有用而高效的设计能够吸引更多的研究关注这一方向。

问题: 实际场景中的业务图片OCR效果一般,原因可能是模型训练过程中使用的数据大多数是论文或者是简单的文字图片等。

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

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

相关文章

卖家必看!跨境电商独立站选品思路——电商API接口采集更便捷高效的选品方式

要想打造一个成功的独立站,选品过程至关重要。只有先确定选品,才能完成后续的具体定价、库存备货、店铺风格、匹配支付和物流等等。那么,对于需要搭建独立站的卖家而言,该如何去进行选品,有哪些思路和方法呢&#xff1…

如何使用CentOS系统中的Apache服务器提供静态HTTP服务

在CentOS系统中,Apache服务器是一个常用的Web服务器软件,它可以高效地提供静态HTTP服务。以下是在CentOS中使用Apache提供静态HTTP服务的步骤: 1. 安装Apache服务器 首先,您需要确保已安装Apache服务器。可以使用以下命令安装Ap…

OpenHarmony南向之LCD显示屏

OpenHarmony南向之LCD显示屏 概述 LCD(Liquid Crystal Display)驱动,通过对显示器上下电、初始化显示器驱动IC(Integrated Circuit)内部寄存器等操作,使其可以正常工作。 HDF Display驱动模型 LCD器件驱…

QWebEngineView类中的load、seturl、setPage、setHtml和setContent方法的功能与用法对比

文章目录 📖 介绍 📖🏡 环境 🏡📒 对比 📒📝 load方法📝 setUrl方法📝 setPage方法📝 setHtml方法📝 setContent方法📖 介绍 📖 QWebEngineView 是 Qt 提供的一个用于呈现 Web 内容的类,基于 Google 的 Chromium 浏览器引擎。它提供了对现代 Web 标…

一小时掌握:使用ScrapySharp和C#打造新闻下载器

引言 爬虫技术是指通过编程的方式,自动从互联网上获取和处理数据的技术。爬虫技术有很多应用场景,比如搜索引擎、数据分析、舆情监测、电商比价等。爬虫技术也是一门有趣的技术,可以让你发现网络上的各种有价值的信息。 本文将介绍如何使用…

2024不容错过的好项目好商机,普通人翻身就靠它了,靠谱创业项目推荐

2024什么最容易挣钱?是火遍全网的单身经济?宠物经济?旅游业?大健康经济?都不是!他们确实挣钱,但都不是最容易的。 比如单身经济,卖东西你需要去结合需求去选品,开单身餐厅…

jsoncpp学习

1.环境配置 C 操作 (读写)json 文件及jsoncpp的配置-CSDN博客 一步步跟下来,就可以了!!! 2.遇到的问题: 读取json文件,出现中文乱码!!! 参考:C ifstream open 读取…

产品经理须知 | 电商API接口接入知识小结

应用程序接口API(Application Programming Interface),是提供特定业务输出能力、连接不同系统的一种约定。这里包括外部系统与提供服务的系统(中后台系统)或后台不同系统之间的交互点。包括外部接口、内部接口&#xf…

uni-app的学习【第二节】

四 路由配置及页面跳转 (1)路由配置 uni-app页面路由全部交给框架统一管理,需要在pages.json里配置每个路由页面的路径以及页面样式(类似小程序在app.json中配置页面路由) (2)路由跳转 uni-app有两种页面路由跳转方式:使用navigator组件跳转(标签式导航)、调用API跳…

JavaWeb- Tomcat

一、概念 老规矩,先看维基百科:Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies.[2] It provides a "pure Ja…

能赚钱的GPT Store正式上线!如何将自己的 GPT 放到商店中?

等了两个月,OpenAI 的 GPT Store 今日凌晨终于上线!上线 GPT Store 的同时,OpenAI 同步了最新的 GPTs 数据:截止到1月11日,用户已创建300万的GPTs! GPTs 开发者可以通过 GPTs 来获利。OpenAI 将在今年第一季…

使用递归将list转换成tree

在产品研发时遇到这样一个问题,对于省市区县这类三级联动的数据,前端插件需要一次把数据全部返回,单纯的使用接口查询字节的没办法满足要求。 如果一次把数据全部返回,前端使用起来很麻烦需要一条一条的进行查找。 常规的使用方…

使用visio画图基础(更新中)

1、画基本图形:正方形长方形,直线虚线 1、在形状这里选中后出现基本形状界面,拖动即可 画直线、虚线修改直线的样式改为虚线即可。 2、在矩形中画网格 先画一个矩形,然后选中,按照箭头选择排列形状。设置3*3。 双击可…

ubuntu18.04.6 搭建mqtt服务器emqx 之docker方式

ubuntu18.04.6 搭建mqtt服务器emqx 之docker方式 前提docker环境已经安装好 如未安装,请参考博文https://blog.csdn.net/a554521655/article/details/134251763 文章目录 ubuntu18.04.6 搭建mqtt服务器emqx 之docker方式安装emqx查看是否安装并启动成功登录前端查 安…

凸优化Convex Optimization期末复习重点和考试笔记(二)凸优化+对偶

接博客【凸优化Convex Optimization期末复习重点和考试笔记(一)凸集凸函数】 第三部分:凸优化 第四部分:对偶 几种典型的凸函数 以上就是凸优化和对偶函数部分,以及几种常见的凸函数。我们就考到这所以后面的没有整理…

进销存+小程序商城:实现批发零售企业的互联网转型与管理升级

在当今互联网高速发展的时代,越来越多的批发零售企业开始开始考虑转型。在这个行业中,企业要想取得更好的发展,就要积极地拥抱互联网。专属的订货商城小程序是企业转型的第一步。通过将进销存与订货商城一体化,企业可以更好地满足…

Java项目:117SpringBoot动漫论坛网站

博主主页:Java旅途 简介:分享计算机知识、学习路线、系统源码及教程 文末获取源码 117SpringBoot动漫论坛网站 一、项目介绍 动漫论坛网站是由SpringBootMybatis开发的,旅游网站分为前台和后台,前台为用户浏览,后台进…

大小论文over,坐等毕业。写点ROS上建图与导航的心得,也不知道对错,欢迎讨论~(对,谨慎阅读,不存在误人子弟哈~.~)

大小论文总算是都搞定了,院审过了送外审了,生死有命富贵在天,希望外审专家大佬们高抬贵手o.O~ 我所理解的建图算法的移植,能不能运行起来,大框架上就是把一棵完整的坐标转换关系的TF树给整理“通顺”,TF&am…

springboot3(二、StreamAPI)

文章目录 一、StreamAPI1.介绍2.代码示例 二、基本用法1.创建流2.流并发3.流并发问题 三、流方法1.中间操作2.终止操作 一、StreamAPI StreamAPI这种函数式编程是声明式编程,声明式编程是一种编程范式,它着重于描述问题的"是什么"&#xff0c…

深入理解.NET框架中的CLR(公共语言运行时)

深入理解.NET框架中的CLR(公共语言运行时) 引言 .NET框架中的CLR(公共语言运行时)是.NET应用程序运行的核心。本文将继续探索CLR的核心功能,并详细介绍.NET程序启动时是如何自动加载关键的库和服务来提供这些功能的。…