(详细版)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.mzph.cn/news/612775.shtml

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

相关文章

Docker部署Homepage个人引导页

个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 个人主页👨🏻‍💻:念舒_C.ying 个人博客🌏 :念舒_C.ying Homepage | 主页 1. 安装环境2. Docker部署 原作者:無…

flutter release包使用adb查看日志排查错误实践

release包给出去后发现出现无法启动的情况,需要flutter开发排查 ,直接将release包安装到模拟器 使用adb 去连接模拟器 我这边是MuMu模拟器 adb connect 127.0.0.1:7555 然后查看设备列表 adb devices 直接输入0 即选择第一个设备 然后使用 adb logcat …

Python爬虫---Scrapy项目的创建及运行

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖 掘,信息处理或存储历史数据等一系列的程序中。 1. 安装scrapy: pip install scrapy 注意:需要安装在python解释器相同的位置,例如&#xf…

Spring原理-7.切点与切面

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术🔥如果感觉博主的文章还不错的…

静态网页设计实践(HTML+CSS)

一、前端程序员必会三大编程语言 (一)HTML(.html/.htm) 超文本标记语言(HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、Ja…

高通rb5的fastboot设备识别不了及驱动安装问题

Android fastboot驱动无法安装和识别问题-CSDN博客 以上为转载出处。

使用global mapper将分块DSM/DOM合并导出

使用global mapper将分块DSM/DOM合并导出 使用context capture生产dom/dsm时通常因为内存问题而选择分块生产,那么得到的dsm/dom则是一块一块的,如下: 那么为了合并成一张影像,可以使用强大的地图软件 Global Mapper&#xff0c…

番外篇-区块链基础知识入门

今天聊聊番外篇之Web3、区块链的基础知识~ 1. 区块链是如何工作的? Hash算法 将输入的数据映射为一个固定长度的字符串字符串是64长度,16进制(2^4),4 * 64 256【SHA256】hash演示:https://andersbrownwo…

android 9 reboot流程

机器出现开机 自动进入fastboot模式。可能是init 那个进程挂了 然后调用了 RebootSystem(ANDROID_RB_RESTART2, “bootloader”); 函数进入重启流程,然后重启后进入fastboot 浅读一下reboot流程和怎么进入的fastboot 比如说是那个进程挂了调用了这个函数&#xff0c…

实现目标检测中的数据格式自由(labelme json、voc、coco、yolo格式的相互转换)

在进行目标检测任务中,存在labelme json、voc、coco、yolo等格式。labelme json是由anylabeling、labelme等软件生成的标注格式、voc是通用目标检测框(mmdetection、paddledetection)所支持的格式,coco是通用目标检测框&#xff0…

cosmos及特定应用程序的区块链

特定应用程序的区块链,简单来说,一个区块链就是一个专门的应用程序。为了实现某一特定的去中心化应用而专门实现一个区块链。 传统的用智能合约构建去中心化应用不行吗? 灵活性不足:智能合约本质上受到虚拟机本身的限制。例如,以…

【Spring Boot】SpringBoot maven 项目创建图文教程

创建一个Spring Boot项目并使用Maven进行构建是一项相对简单的任务。以下是使用IntelliJ IDEA创建Spring Boot Maven项目的详细教程: 步骤 1:安装 IntelliJ IDEA 确保你已经安装了最新版本的 IntelliJ IDEA。你可以从官方网站下载并安装。 步骤 2&am…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十一)

加入redis缓存 1. 缓存菜品1.1 问题说明1.2 实现思路1.3 代码开发1.4 功能测试 2. 缓存套餐2.1 Spring Cache2.1.1 介绍2.1.2 常用注解2.1.3 入门案例 2.2 具体实现思路2.3 代码开发 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,…

MySQL一主一从读写分离

​ MySQL主从复制 一、主从复制概念 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从服务器中,然后在从服务器上对这些日志重新执行也叫重做,从而使得从数据库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行赋值,从…

20240110-Python实现读取当前文件夹下所有视频名称和时长并生成一张表

代码 import os import cv2 import csv# 获取当前文件夹路径 folder_path os.getcwd() # 如果当前文件夹就是目标文件夹可以直接使用 ./,否则修改为目标文件夹的路径# 获取当前文件夹中所有视频文件的名称 video_files [f for f in os.listdir(folder_path) if …

腾讯云对象存储COS计算文件的大小

properties配置类 TencentCos.APPIDxxxxx TencentCos.SecretIdxxxxxxx TencentCos.SecretKeyxxxxxx TencentCos.testBucketxxxxxx TencentCos.CosPathhttps://xxxxxxxx.cos.ap-chengdu.myqcloud.com TencentCos.regionap-chengdu读取properties中的配置 import lombok.AllArg…

kubeSphere DevOps自定义容器环境JDK11

kubeSphere DevOps自定义容器环境JDK11 🍂前言🍂增加JDK11容器环境🍁检查是否成功 🍂不生效的原因排查🍁按步骤执行如下命令 🍂前言 kubeSphere 版本v3.1.1 遇到问题:kubeSphere默认支持容器只有JDK8,目前…

Ubuntu22.04,Nvidia4070配置llama2

大部分内容参考了这篇非常详细的博客,是我最近看到的为数不多的保姆级别的教学博客,建议大家去给博主点个赞【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】_ubuntu20.04安装40系显卡驱动-CSDN博客 本篇主要是基于这篇博客结合自己配置的过程中一些注…

DC电源模块技术的未来发展趋势

BOSHIDA DC电源模块技术的未来发展趋势 随着科技的不断发展,DC电源模块技术也在不断演进。以下是DC电源模块技术未来发展的一些趋势: 1. 高效能:未来DC电源模块的效能将得到进一步提高。通过改进转换拓扑结构、优化控制算法和使用高效能元器…

Kafka 除了用作消息队列还能干吗?

Kafka 除了用作消息队列还能干吗? 本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除 Kafka 最初是为大规模处理日志而构建的。它可以保留消息直到过期,并让各个消费者按照自己的节奏提取消息。 与其之前的竞品不…