“Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models”
项目主页:https://varybase.github.io/
论文地址:https://arxiv.org/pdf/2312.06109.pdf
Github地址:https://github.com/Ucas-HaoranWei/Vary
摘要
本文介绍了一种名为Vary的方法,可以扩展大型视觉语言模型的视觉词汇表,以提高其对于特定视觉任务的感知和理解能力。Vary方法分为两个阶段:生成新的视觉词汇表和将其与原始词汇表合并。与其他方法相比,Vary在文档解析和图表理解等任务上表现出更好的性能。该方法的代码将公开发布。
简介
近年来,视觉对话机器人的研究备受关注,这些机器人主要依靠大型语言模型和视觉词汇网络,不仅可以根据用户输入的图像进行对话,还可以在简单的下游任务中表现出色。大型视觉语言模型正在推动人工智能社区朝着人工通用智能的方向发展。目前流行的GPT-4类大型视觉语言模型在多个方面表现出色,但其视觉词汇几乎相同,可能存在瓶颈。
CLIP-VIT是一个强大的通用视觉词汇表,通过对超过4亿图像-文本对进行对比学习训练而得到。然而,在一些特殊场景下,如高分辨率感知、非英语OCR、文档/图表理解等,CLIP-VIT可能会将它们视为“外语”,导致标记化困难,即难以将所有视觉信息编码为固定数量(通常为256)的标记。虽然mPlug-Owl和Qwen-VL通过解冻其视觉词汇网络(CLIP-L或CLIP-G)缓解了上述问题,但我们认为这种方式可能不合理,原因有三个:1)它可能会覆盖原始词汇的知识;2)更新相对较大的LLM(7B)上的视觉词汇的训练效率较低;3)由于LLM的强大记忆能力,它不能让视觉词汇网络“多次看到”一张图片(对数据集进行多个时期的训练)。因此,一个自然的问题是:是否有一种策略可以简化和有效地加强视觉词汇表?
本文提出了一种名为Vary的方法,用于增强视觉词汇的LVLMs,以实现更细粒度的视觉感知。该方法受到了vanilla LLMs中文本词汇扩展方式的启发,通过生成新的视觉词汇并将其与旧词汇整合,来提高模型性能。Vary的过程可以分为两步:生成新的视觉词汇和将新旧词汇整合。该方法可以应用于文档/图表解析等任务,并提供了产生合成数据的方法。Vary是一种有用的策略,可以在CLIP不擅长的任意下游视觉任务中使用。
模型
架构
Vary有两种构造:Vary-tiny和Vary-base。Vary-tiny主要由词汇网络和小型OPT-125M组成,用于处理人工图像,如文档和图表。Vary-base则利用新的词汇网络,与旧的词汇网络独立输入嵌入层,然后在LLM之前进行整合。在生成过程中,我们将手动文档和图表数据作为正样本,自然图像作为负样本来训练Vary-tiny。最后,我们提取词汇网络并将其添加到大型模型中。
创造新的视觉词汇
新词汇网络
Vary模型中的新词汇网络,使用了预训练的ViTDet图像编码器作为主要部分。由于输入分辨率和输出步幅不匹配,需要添加两个卷积层来对特征进行转换。第一个卷积层的核大小为3,将特征形状转换为32×32×512,第二个卷积层的设置与第一个相同,可以进一步将输出形状转换为16×16×1024。最后,将输出特征展平以与CLIP-VIT的图像标记形状对齐。
生成短语中的数据引擎
选择高分辨率的文档图像-文本对作为主要正样本数据集,用于新的视觉词汇预训练。收集了来自arXiv和互联网电子书的PDF样式文档,创建了自己的英文和中文文档数据集。使用PyMuPDF的fitz工具提取每个PDF页面的文本信息,并同时将每个页面转换为PNG图像。构建了100万个中文和100万个英文的文档图像-文本对进行训练。
我们发现当前的LVLMs在图表理解方面表现不佳,特别是对于中文图表,因此选择将其作为需要“写入”新词汇的另一个主要知识。对于图表图像-文本对,使用matplotlib和pyecharts作为渲染工具,并构建了25万个中英文的matplotlib风格图表和50万个中英文的pyecharts风格图表。此外,将每个图表的文本真值转换为Python字典形式,图表中使用的文本(如标题、x轴和y轴)是从互联网上下载的自然语言处理(NLP)语料库中随机选择的。为了确保新引入的词汇不会引入噪音,作者构建了负面的自然图像-文本对,以使新词汇网络在看到自然图像时能够正确编码。
我们从COCO数据集中提取了12万张图像,每张图像对应一个文本,文本部分是从以下句子中随机选择的:”这是一张自然图像”;”这是一张自然图片”;”这是一张自然照片”;”这是一张自然图”;”这是一张自然景色的照片”。
输入格式
Vary-tiny是一个基于图像和文本对的LVLMs模型,使用自回归的方式训练所有参数。输入格式采用图像和文本的前缀形式,使用特殊标记””和””表示图像位置。在训练过程中,Vary-tiny只输出文本,使用””作为结束标记。
扩大视觉词汇
Vary-base架构
将词汇网络引入到LVLM-Vary-base中的过程。通过并行化新的视觉词汇和原始的CLIP-VIT,每个词汇都有一个独立的输入嵌入层。图2显示了线性层的输入通道为1024,输出通道为2048,确保在连接后的图像标记通道为4096,与LLM(Qwen-7B或Vicuna-7B)的输入完全对齐。
扩展短语中的数据引擎
通过LATEX渲染,我们获得了50万英文页面和40万中文页面的文档数据,其中包括表格和数学公式。
为了提高语义相关性,我们使用GPT-4生成了一些图表,并使用高质量语料库进行了渲染,以用于Vary-base的训练。
我们使用自然图像文本对数据来引入通用概念,并使用LLaVA-80k或LLaVA-CC665k和DocVQA、ChartQA的训练集进行SFT阶段的微调。
对话格式
当使用Vicuna-7B作为LLM时,对话格式遵循Vicuna v1,但由于其处理中文的效率较低,我们选择使用Qwen-7B作为中文处理的LLM,并采用LLaVA-MPT的对话风格。对话格式为:输入文本””,输出文本”texts output”。
实验
数据集和评估指标
在多个数据集上进行了评估,包括OCR测试集、DocVQA、ChartQA和MMVet。作者使用标准的评估指标来测试模型的性能,包括标准化编辑距离、F1分数、精确度和召回率。该模型在文档解析、问答和多模态任务中表现出了良好的性能。
实现细节
Vary-tiny模型的训练过程中,使用了512的批量大小,训练了3个epochs,优化器采用了AdamW,学习率为5e-5,并使用了余弦退火调度器。Vary-base模型的训练过程中,冻结了新的和原始的视觉词汇网络的权重,只优化了输入嵌入层和LLM的参数。预训练阶段的学习率为5e-5,SFT阶段的学习率为1e-5,批量大小为256,训练了1个epoch。其他设置与Vary-tiny相同。
细粒度感知性能
通过生成新的视觉词汇表,Vary-tiny实现了中英文稠密OCR能力,Vary-base在英文文本文档上表现与nougat相当,同时可以实现图像- markdown格式转换。通过扩大视觉词汇表,新的LVLM可以提高其精细感知性能。
下游任务性能
使用DocVQA和ChartQA两个任务来测试在下游VQA任务上的性能改进。使用”使用一个单词或短语回答以下问题:”的提示来允许模型输出简短而准确的答案。在DocVQA任务上,Vary-base(使用Qwen-7B作为LLM)在LLaVA-80k SFT数据上可以达到78.2%(测试集)和76.3%(验证集)的ANLS。在ChartQA任务上,使用LLaVA-665k数据,Vary-base可以达到66.1%的平均性能。在这两个具有挑战性的下游任务上的性能与Qwen-VL相当甚至更好,证明了提出的视觉词汇扩展方法在下游任务上也是有前景的。
常规性能
本文通过MMVet基准测试监测了Vary的性能表现,结果表明Vary在相同的LLM和SFT数据下比LLaVA-1.5提高了2.4%的总指标,证明了数据和训练策略不会影响模型的总体能力。此外,Vary在Qwen-7B和LLaVA-80k的情况下可以达到36.2%的性能,进一步证明了其视觉词汇扩展方式的有效性。
总结
本文介绍了如何通过扩展视觉词汇来提高LVLM的性能,并提出了一种简单的方法来证明这一点。实验表明,新生成的词汇使得提供的模型Vary在多个任务上表现出色。然而,如何有效地扩展视觉词汇仍有待改进,希望本文的设计能够吸引更多研究者关注这个方向。
评论0