Vary—提升LVLM的dense和细粒度视觉感知能力
论文:Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
项目主页:https://varybase.github.io/
Vary表现出了很大的潜力和极高的上限,OCR可以不再需要冗长的pipline,直接端到端输出,且可以按用户的prompt输出不同的格式如Latex 、Word 、Markdown。通过LLM极强的语言先验,这种架构还可以避免OCR中的易错字,比如“杠杆”和“杜杆”等, 对于模糊文档,也有望在语言先验的帮助下实现更强的OCR效果。Vary展现出的强大的OCR能力被戏称为“OCR 终结者”。
想将一份文档图片转换成Markdown格式?以往这一任务需要文本识别、布局检测和排序、公式表格处理、文本清洗等多个步骤。这一次,只需一句话命令,多模态大模型Vary直接端到端输出结果,无论是中英文的大段文字
![vary1](https://www.kppkkp.top/usr/uploads/2024/06/316819073.png)
![vary2](https://www.kppkkp.top/usr/uploads/2024/06/973060139.png)
还是包含了公式的文档图片:
![vary3](https://www.kppkkp.top/usr/uploads/2024/06/193467497.png)
又或是手机页面截图:
![vary4](https://www.kppkkp.top/usr/uploads/2024/06/1936719000.png)
甚至可以将图片中的表格转换成Latex格式:
![vary5](https://www.kppkkp.top/usr/uploads/2024/06/1601252734.png)
当然,作为多模大模型,通用能力的保持也是必须的:
![vary6](https://www.kppkkp.top/usr/uploads/2024/06/813123947.png)
那么这样的效果,是如何做到的呢?
背后原理
![vary7](https://www.kppkkp.top/usr/uploads/2024/06/140164576.jpg)
目前的多模态大模型几乎都是用CLIP作为Vision Encoder或者说视觉词表。确实,在400M图像文本对训练的CLIP有很强的视觉文本对齐能力,可以覆盖多数日常任务下的图像编码。但是对于密集和细粒度感知任务,比如文档级别的OCR、Chart理解,特别是在非英文场景,CLIP表现出了明显的编码低效和out-of-vocabulary问题。
受语言的LLMs启发,纯NLP大模型(如LLaMA)从英文到中文(外语)时因为原始词表编码中文效率低,必须要扩大text词表。那么对于现在基于CLIP视觉词表的多模大模型也是一样的,遇到“foreign language image”,如一页论文密密麻麻的文字,很难高效地将图片token化,Vary提出就是解决这一问题,在不overwrite原有词表前提下,高效扩充视觉词表。
不同于现有方法直接用现成的CLIP词表,Vary分两个阶段:第一阶段先用一个很小的Decoder-only网络用自回归方式帮助产生一个强大的新视觉词表;然后在第二阶段融合新词表和CLIP词表,从而高效的训练多模大模型拥有新feature。Vary的训练方法和模型结构如下图:
通过在公开数据集以及渲染生成的文档图表等数据上训练,Vary极大增强了细粒度的视觉感知能力。在保持Vanilla多模态能力的同时,激发出了端到端的中英文图片、公式截图和图表理解能力。
另外,原本可能需要几千tokens的页面内容,通过文档图片输入,信息被Vary压缩在了256个图像tokens中。这也为进一步的页面分析和总结提供了更多的想象空间。
目前,Vary的代码和模型均已开源,感兴趣的小伙伴可以去试试了~