引言
论文:Small Language Model Meets with Reinforced Vision Vocabulary
说来也巧,之前在写论文阅读:Vary论文阅读笔记文章时,正好看到了Vary-toy刚刚发布。
这次,咱也是站在了时代的前沿,这不赶紧先睹为快。让我看看相比于Vary,Vary-toy做了哪些改进?
整体结构图
从整体结构来看,仍然沿用了Vary系列结构。先利用Vary-tiny + pipeline训练一个Vision vocabulary,之后在pre-train和SFT阶段将new vocabulary与CLIP的Vocabulary相结合,来训练Qwen-1.8B模型。
不同于Vary,用了Qwen-7B,这次用了Qwen-1.8B,模型更小,对于部署使用更加友好。
这次除了原有的PDF数据外,又增加了目标检测的数据集,让Vary-toy更加具有通用性。
方法介绍
作者在设计Vary-toy时,主要侧重解决以下两个问题:
- 如何基于Vary-tiny + pipeline产生一个更加practical vision vocabulary ?
- 如何在不损坏Qwen-1.8B模型特征前提下,利用new vision vocabulary来使Vary-toy-1.8B产生新的特征?
训练vision vocabulary阶段
出发点是:
- vision vocabulary network是由SAM-base作为初始化模型训练而来的。这样做,可以获得SAM对文本的感知能力。但是也存在遗忘SAM中对自然物体目标的感知能力。
- 作者认为,只将密集文本的视觉知识写入80M的网络是浪费。
PDF数据
该部分与Vary中工作一致,看着量级更大了。最终准备了2M英文文档数据和2M的中文文档数据。PDF来源主要是arXiv、CC-MAIN-2021-31-PDF-UNTRUNCATED和e-books。示例数据如上图。
私以为该部分仍然有很大进步空间。如在提取PDF内容时,可以考虑到版面的因素,使得内容更加有语义。当然,这只是猜测,也许作者就是这么做的呢!
目标检测数据
为了充分利用来自SAM模型对自然图像的感知能力,作者引入了目标检测数据到训练vision vocabulary过程中。所用数据主要来自Object365和OpenImage。
因为部分图像中存在太多的物体,这会超出OPT-125M的token数量限制。因此作者做了两步处理:
- 如果图像中物体框数目<30个,则允许Vary-tiny + pipeline过程中的prompt为Detect all objects in this image
- 如果图像中物体框数目>30个,则更换prompt模板为:Detect class1, class2, … in this image.
最终,整理出来的目标价检测数据大约有3M条。
训练Vary-toy阶段
Vary-toy结构
Vary-toy主体结构与Vary相同,但是有些微小区别:
- 当输入图像( H × W H\times W H×W)进入new vision vocabulary分支时,图像会被直resize到1024 x 1024,而送入CLIP分支时,则中心裁剪为224x224
- 直接将vision vocabulary分支和CLIP分支输出拼起来,正好是Qwen-1.8B的输入channel
- 相比于Vary,为了让变化小一些,作者仍然在vision vocabulary网络后添加了embedding layer
数据集情况
值得说明的是:1.8B的模型对于数据质量和比例要求要高于7B或更大的模型。(这点我也表示赞同)
预训练阶段
对于Vary-toy,预训练阶段是一个多任务训练阶段。作者在该阶段主要关注了5种类型的数据,包括弱标注的图文描述、PDF密集文本OCR、目标检测、单纯文本转换和视觉问答。
- 对于自然场景图片,作者从Laion-COCO中采样4M image-text pair和在LLaVA中提到的BLIP-558K数据。
- 对于PDF image-text pair,值得一提的是,相比于Vary, 作者在Vary-toy中减少了PDF相关数据的比例,来使得Vary-toy更具有通用性。作者主要准备了两种类型:
- 一个是pure dense text ocr,该部分使用的数据主要从Vary-tiny+中采样得来的。
- 另一个是转换PDF图像为markdown格式,该部分数据主要通过LaTeX渲染得来的。
- 对于目标检测数据,作者主要从COCO中收集数据。对于单纯的物体检测任务,作者采用了50k条带有较少物体数据,同时使用了REC(Referring Expression Comprehension)任务下所有的RefCOCO数据。(让我有些疑惑的是,作者在论文中提到,将每一个标注的坐标信息normalize之后,再放大1000倍,不知这么做的原因是啥? )
- 对于VQA任务,作者选取了DocVQA和ChatQA两个数据集来保证模型对人工数据中文本的感知和推理能力
为了避免LLM语言能力缺失,作者也引入了一些pure NLP conversation数据,包括ShareGPT、BaiZe和Alpaca。
SFT阶段
在该阶段,只使用了LLaVA-80K来微调模型。LLaVA-80K是一个由GPT4生成的数据集,包含各种类型图像的详细描述和提示。
写在最后
我个人比较看好Vary-toy系列,因为这种小巧且能力强悍的模型,部署落地较为容易,且迭代也会比较迅速和容易。唯一缺点可能是能力天花板较低。