OCR终结了?旷视提出可以文档级OCR的多模态大模型框架Vary,支持中英文,已开源!
发布时间:2024年06月06日
想将一份文档图片转换成 Markdown 格式?以往这一任务需要文本识别、布局检测和排序、公式表格处理、文本清洗等多个步骤——
这一次,只需一句话命令,多模态大模型 Vary 直接端到端输出结果:
无论是中英文的大段文字:
还是包含了公式的文档图片:
又或是手机页面截图:
甚至可以将图片中的表格转换成 Latex 格式:
当然,作为多模大模型,通用能力的保持也是必须的:
Vary 表现出了很大的潜力和极高的上限,OCR 可以不再需要冗长的 pipline,直接端到端输出,且可以按用户的 prompt 输出不同的格式如 Latex、Word、Markdown。通过 LLM 极强的语言先验,这种架构还可以避免 OCR 中的易错字,比如“杠杆”和“杜杆”等, 对于模糊文档,也有望在语言先验的帮助下实现更强的 OCR 效果。
项目一出,引发了不少网友的关注,有网友看后直呼 “kill the game!”
那么这样的效果,是如何做到的呢?
背后原理
目前的多模态大模型几乎都是用 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 的代码和模型均已开源,还给出了供大家试玩的网页 demo。感兴趣的小伙伴可以去试试了~
项目主页:https://varybase.github.io/
出自:https://mp.weixin.qq.com/s/Sg_yHAVVN-yAYT61SNKvCA
在线一键提取图片中的文字