1. Monkey论文阅读
Monkey: Image Resolution and Text Label Are Important Things for Large Multi-modal Models. HUST, Kingsoft
1.1 论文动机
本篇论文主要解决在large multimodal models(LMMs)中低分辨率的问题,以前的模型采用CLIP-224模型,此模型的分辨率过低,本篇论文采用更高分辨率的CILP模型(),模型被叫做Monkey。
经过高分辨率处理之后,Monkey最多可以处理分辨率的图像。此外使用了一个multi-level的生成模型,丰富了场景描述的生成。其中高分辨率能够捕捉图像中更精细的视觉元素,从而对图像进行全面的描述。文章对18个数据集进行了实验验证了其有效性,同时对于密集文本的问答,产生了与GPT-4V相当的结果。
下图是Monkey与多个方法比较后的结果
1.2 论文介绍
LMMs会从高分辨率的图像中受益,因为高分辨率允许模型检测出更多细微的视觉细节,从而更加精确地识别图像中的对象,相关性,以及图片中更多的内容。此外,识别更多的图像有助于更好的进行详细的captioning。
由此,作者引入了Monkey,resource-efficient的方法来增加大语言模型的分辨率,模型使用sliding window的方法来讲高分辨率的图片分为一个个小的patch,每个patch通过静态的视觉编码器来分别处理,视觉编码器通过LoRA进行微调,随后特征通过一个shared resampler进行处理。
为了进一步利用高分辨率的优势,作者提出了一个自动的multi-level的描述生成方法,该方法被设计用来产生高质量的丰富的caption数据,通过与多种生成器相结合来无缝的生成数据,包含:BLIP2,PPOCR,GRIT,SAM,ChatGPT。
本文的主要贡献:
- 支持的高分辨率输入且不需要预训练。
- 使用multi-level description generation的方法来提升模型获取多个物体之间相关性的能力。
- 在多个benchmark上均有提升,包含image caption,general visual question answering,scene text-centricvisual question answering,document-oriented visual question answering。
1.3 方法细节
模型的整体结构如下所示,输入图片首先被划分为不同的patch,然后通过一个shared vit配备distinct的adapters,随后local和global特征以及问题通过一个shared resampler和llm进行处理,最终生成答案。
1. enhancing input resolution
之前Qwen-VL等方法通过curriculum learning支持的分辨率,但是这种方法需要大量的资源来训练(resource-demanding),本问题提出了一个简单且有效的方法来解决这个问题。
如模型结构所表示的,首先作者将原图分为六个部分,每一个部分尺寸都为预训练的ViT的输入大小,然后分别用ViT进行处理,注意这里的ViT都用LoRA进行微调(每一部分都独立初始化一个LoRA,这是因为图片的不同部分视觉特征可能不同),最后整幅图输入到ViT中得到Global feature(这里的ViT不需要进行微调)
2. Multi-level Description Generation
数据生成的过程如下图所示,之前的LLaVA、Qwen-VL使用LAION,COYO和CC3M等数据,但是这些数据的image-text pairs通常太简单了(描述的不够详细),因此,即使在高分辨率图像上进行训练,也很难将视觉特征和caption进行连接。
如下图所示,作者通过使用多个现成的generators来生成multi-level的描述。其中,BLIP2用文本来提供对图像的描述,PPOCR进行OCR识别,GRIT进行细节的image-text匹配,SAM进行语义对齐,ChatGPT进行语言的生成。流程如下:首先利用BLIP2来生成图片描述,同时维持CC3M原有的描述;GRIT生成具体区域的细节描述;PPOCR提取图中的文本;SAM分割识别目标物体和他们所在区域,这些物体随后通过BLILP2来分别进行描述。然而,这些generators会有一些不准确的描述,因此作者使用BLIP2来检查图片区域,目标物体和他们的描述,并过滤掉分数很低的匹配。最终,全局caption,定位描述,提取的文本和目标的细节以及坐标都输入到ChatGPT的API当众进行微调,确保ChatGPT能够生成准确地高质量的图片描述。
3. Multi-task Training
作者进行了多任务的学习,对于caption任务,作者使用“Generate the caption in English:”;对于basic captions,作者使用“Generate the detailed caption in English:”,其他任务是“{question} Answer: {answer}”的形式
不同任务使用不同的公共数据集,并总结为如下表格,一共1.44M个数据
1.4 训练细节
模型配置:使用ViT-BigHuge当做视觉编码器,使用Qwen-VL当做LLM,其中视觉编码器的输入为,Shared Resampler的learnable queries为256,由于训练时间的限制,主要的实验都是在的分辨率上进行的,对于LoRA,rank=16,MLP为32
参数:LLM包含7.7B的模型参数,Resampler包含90M,Encoder包含1.9B,LoRA包含118M,一共9.8B
训练:使用AdamW优化器,学习率设置为1e-5,使用余弦学习率衰减,warmup=100,bs=1024,weight decay=0.1,一个epoch训练使用40个A100 days