目录
- 引言
- 整体结构图
- 方法介绍
- 训练vision vocabulary阶段
- PDF数据
- 目标检测数据
- 训练Vary-toy阶段
- Vary-toy结构
- 数据集情况
引言
论文:Small Language Model Meets with Reinforced Vision Vocabulary
Paper | Github | Demo
说来也巧,之前在写论文阅读: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
数据集情况
TODO