通用端到端OCR模型开源,拒绝多模态大模型降维打击

在AI-2.0时代,OCR模型的研究难道到头了吗!?
(OCR:一种将图像中的文字转换为可编辑和可搜索文本的技术)

Vary作者团队开源了第一个迈向OCR-2.0的通用端到端模型GOT

用实验结果向人们证明:No~No~No~

17deeeb694817aea7575f946e8ba09fa

GOT模型效果如何?

话不多说,直接上效果图:

eec04f97b6a0c715f7ab8e2950b86bbe△ 最常用的PDF image转markdown能力
b0e63447283c2907f30835636622c68b△ 双栏文本感知能力
9415f69dbe17b1c52d7edcfd21bf8f19△ 自然场景以及细粒度OCR能力
d6ab1568eede04b1f874cd03dee1fcc0△ 动态分辨率OCR能力
0d7e5c0add1c66f88f00f6ba9f4a5818△ 多页OCR能力
58ee734b9e18fb1934de51c5e082c99c△ 更多符号的OCR能力

研究团队称,尽管GOT模型表现不错,但也存在一些局限,如更多的语言支持,更复杂的几何图,chart上的OCR性能。

他们说OCR-2.0的研究还远的很,GOT也还有不小提升空间(该项目在数据和算力资源上都是非常受限的)。

正是因为深知GOT以及OCR-2.0的潜力,我们希望通过开源GOT吸引更多的人,放弃VQA,再次投向强感知。都说纯OCR容易背锅,但也正好说明做的不够work,不是吗?

GOT: Towards OCR-2.0

通用OCR模型须要够通用,体现在输入输出都要通用上。

GOT的通用具体表现为:在输入方面,模型支持Scene Text OCR、Document OCR、Fine-grained OCR、More General OCR等任务。

bdd20834bcc2c2c356254d09e551789a△ 通用OCR模型须“通用”

输出方面,模型同时支持plain texts输出以及可读性强、可编辑的formatted文本输出,如markdown等。

模型的结构和训练方法,采用vision encoder+input embedding layer+decoder的pipeline。

Encoder主体采用带local attention的VITDet架构,不会让CLIP方案的全程global attention在高分辨率下激活太大,炸显存。

Encoder后两层采用Vary的双卷积设计方案。整个Encoder将1024×1024×3的图像压缩为256×1024的image tokens,足以做好A4纸级别的dense OCR。

269c5ccc4d42353d5230a31dee310597△ GOT结构与训练流程图

研究团队将整个训练过程分为三个步骤,没有一个阶段锁LLM,过程中没有存在图像到文本的对齐阶段,进而导致损害image token的文字压缩率。

三个训练阶段分别为:

第一阶段:高效预训练encoder,GOT在整个训练过程中,没有A100级别的卡,为了节省资源,该阶段使用小型OPT-125M作为decoder为encoder提供优化方向,快速灌入大量数据。

第二阶段:联合训练encoder-decoder,该阶段GOT的基本结构搭建完成,为上一阶段预训练好的encoder,以及Qwen团队预训练好的Qwen0.5B。

研究团队稍稍加大了decoder的大小,因为该阶段需要喂入大量OCR-2.0的知识,而不少数据(如化学式的OCR)其实也是带点reasoning的,不过更小的decoder他们未敢尝试。

第三阶段:锁住encoder,加强decoder以适配更多的OCR应用场景,如支持坐标或者颜色引导的细粒度OCR(点读笔可能会用到),支持动态分辨率OCR技术(超大分辨率图可能会用到),多页OCR技术。

该feature主要是为了后续follower能更好地训练Arxiv这种数据,我们的设想是多页PDF直接训练,无须再对.tex断页而苦恼!

面对整个GOT模型设计中最困难的数据工程环节。研究团队为了构造各种各样的数据,还学习了众多数据渲染工具,包括Latex,Mathpix-markdown-it,Matplotlib,Tikz,Verovio, Pyecharts等等。

6ffaba194779ffd03248fd13db1c410f△ GOT使用到的数据渲染工具

OCR的研究才刚刚开始

关于为什么在大模型相互梭哈的时代继续研究OCR?

研究团队有他们自己的理由:

OCR一直是离落地最近的研究方向之一,是AI-1.0时代的技术结晶。

到了以LLM(LVLM)为核心的AI-2.0时代,OCR成了多模大模型的一项基本能力,各家模型甚至有梭哈之势。

多模态大模型作为通用模型,总有种降维打击OCR模型的感觉。

那么纯OCR的研究真的到头了吗?我们想说:当然没有!没准才刚刚开始。

首先盘一下AI-1.0 OCR系统和LVLM OCR的缺点:

首先是AI-1.0流水线式的OCR系统,缺点不用多说,各个模块比较独立,局部最优,维护成本也大。

最重要的是不通用,不同OCR任务需路由不同模型,不太方便。

那么多模态大模型在pure OCR任务上有什么缺陷呢?我们认为有以下两点:

1、为Reasoning让路必然导致image token数量过多,进而导致在纯OCR任务上存在bottle-neck。

Reasoning(VQA-like)能力来自LLM(decoder),要想获得更好的VQA能力(至少在刷点上),就要充分利用起LLM来,那么image token就得越像text token(至少高维上,这样就会让LLM更舒服)。

试想一下,100个text token在LLM词表上能编码多少文字?那么一页PDF的文字,又需要多少token呢?不难发现,保VQA就会导致在做OCR任务上,尤其是dense OCR任务上,模型搞得比较丑陋。

例如,一页PDF图片只有A4纸大小,很多LVLM要都需要切图做OCR,切出几千个image token。单张都要切图,拿出多页PDF拼接图,阁下又当如何应对?

我们认为对于OCR模型这么多token大可不必。

2、非常直观的一点就是模型太大,迭代困难

要想引入新OCR feature如支持一项新语言,不是SFT一下就能训进模型的,得打开vision encoder做pre-training或者post-training,这都是相当耗资源的。

对于OCR需求来说太浪费了。

有人会说,小模型能同时做好这么多OCR任务吗?

我们的答案是肯定的,而且甚至还能更好

微海报