通用端到端OCR模型開源,拒絕多模態(tài)大模型降維打擊
在AI-2.0時(shí)代,OCR模型的研究難道到頭了嗎???
(OCR:一種將圖像中的文字轉(zhuǎn)換為可編輯和可搜索文本的技術(shù))
Vary作者團(tuán)隊(duì)開源了第一個(gè)邁向OCR-2.0的通用端到端模型GOT。
用實(shí)驗(yàn)結(jié)果向人們證明:No~No~No~
圖片
GOT模型效果如何?
話不多說,直接上效果圖:
最常用的PDF image轉(zhuǎn)markdown能力
△ 雙欄文本感知能力
圖片
△ 自然場(chǎng)景以及細(xì)粒度OCR能力
動(dòng)態(tài)分辨率OCR能力
多頁OCR能力
更多符號(hào)的OCR能力
研究團(tuán)隊(duì)稱,盡管GOT模型表現(xiàn)不錯(cuò),但也存在一些局限,如更多的語言支持,更復(fù)雜的幾何圖,chart上的OCR性能。
他們說OCR-2.0的研究還遠(yuǎn)的很,GOT也還有不小提升空間(該項(xiàng)目在數(shù)據(jù)和算力資源上都是非常受限的)。
正是因?yàn)樯钪狦OT以及OCR-2.0的潛力,我們希望通過開源GOT吸引更多的人,放棄VQA,再次投向強(qiáng)感知。都說純OCR容易背鍋,但也正好說明做的不夠work,不是嗎?
GOT: Towards OCR-2.0
通用OCR模型須要夠通用,體現(xiàn)在輸入輸出都要通用上。
GOT的通用具體表現(xiàn)為:在輸入方面,模型支持Scene Text OCR、Document OCR、Fine-grained OCR、More General OCR等任務(wù)。
圖片
△ 通用OCR模型須“通用”
輸出方面,模型同時(shí)支持plain texts輸出以及可讀性強(qiáng)、可編輯的formatted文本輸出,如markdown等。
模型的結(jié)構(gòu)和訓(xùn)練方法,采用vision encoder+input embedding layer+decoder的pipeline。
Encoder主體采用帶local attention的VITDet架構(gòu),不會(huì)讓CLIP方案的全程global attention在高分辨率下激活太大,炸顯存。
Encoder后兩層采用Vary的雙卷積設(shè)計(jì)方案。整個(gè)Encoder將1024×1024×3的圖像壓縮為256×1024的image tokens,足以做好A4紙級(jí)別的dense OCR。
圖片
△ GOT結(jié)構(gòu)與訓(xùn)練流程圖
研究團(tuán)隊(duì)將整個(gè)訓(xùn)練過程分為三個(gè)步驟,沒有一個(gè)階段鎖LLM,過程中沒有存在圖像到文本的對(duì)齊階段,進(jìn)而導(dǎo)致?lián)p害image token的文字壓縮率。
三個(gè)訓(xùn)練階段分別為:
第一階段:高效預(yù)訓(xùn)練encoder,GOT在整個(gè)訓(xùn)練過程中,沒有A100級(jí)別的卡,為了節(jié)省資源,該階段使用小型OPT-125M作為decoder為encoder提供優(yōu)化方向,快速灌入大量數(shù)據(jù)。
第二階段:聯(lián)合訓(xùn)練encoder-decoder,該階段GOT的基本結(jié)構(gòu)搭建完成,為上一階段預(yù)訓(xùn)練好的encoder,以及Qwen團(tuán)隊(duì)預(yù)訓(xùn)練好的Qwen0.5B。
研究團(tuán)隊(duì)稍稍加大了decoder的大小,因?yàn)樵撾A段需要喂入大量OCR-2.0的知識(shí),而不少數(shù)據(jù)(如化學(xué)式的OCR)其實(shí)也是帶點(diǎn)reasoning的,不過更小的decoder他們未敢嘗試。
第三階段:鎖住encoder,加強(qiáng)decoder以適配更多的OCR應(yīng)用場(chǎng)景,如支持坐標(biāo)或者顏色引導(dǎo)的細(xì)粒度OCR(點(diǎn)讀筆可能會(huì)用到),支持動(dòng)態(tài)分辨率OCR技術(shù)(超大分辨率圖可能會(huì)用到),多頁OCR技術(shù)。
該feature主要是為了后續(xù)follower能更好地訓(xùn)練Arxiv這種數(shù)據(jù),我們的設(shè)想是多頁P(yáng)DF直接訓(xùn)練,無須再對(duì).tex斷頁而苦惱!
面對(duì)整個(gè)GOT模型設(shè)計(jì)中最困難的數(shù)據(jù)工程環(huán)節(jié)。研究團(tuán)隊(duì)為了構(gòu)造各種各樣的數(shù)據(jù),還學(xué)習(xí)了眾多數(shù)據(jù)渲染工具,包括Latex,Mathpix-markdown-it,Matplotlib,Tikz,Verovio, Pyecharts等等。
圖片
△ GOT使用到的數(shù)據(jù)渲染工具
OCR的研究才剛剛開始
關(guān)于為什么在大模型相互梭哈的時(shí)代繼續(xù)研究OCR?
研究團(tuán)隊(duì)有他們自己的理由:
OCR一直是離落地最近的研究方向之一,是AI-1.0時(shí)代的技術(shù)結(jié)晶。
到了以LLM(LVLM)為核心的AI-2.0時(shí)代,OCR成了多模大模型的一項(xiàng)基本能力,各家模型甚至有梭哈之勢(shì)。
多模態(tài)大模型作為通用模型,總有種降維打擊OCR模型的感覺。
那么純OCR的研究真的到頭了嗎?我們想說:當(dāng)然沒有!沒準(zhǔn)才剛剛開始。
首先盤一下AI-1.0 OCR系統(tǒng)和LVLM OCR的缺點(diǎn):
首先是AI-1.0流水線式的OCR系統(tǒng),缺點(diǎn)不用多說,各個(gè)模塊比較獨(dú)立,局部最優(yōu),維護(hù)成本也大。
最重要的是不通用,不同OCR任務(wù)需路由不同模型,不太方便。
那么多模態(tài)大模型在pure OCR任務(wù)上有什么缺陷呢?我們認(rèn)為有以下兩點(diǎn):
1、為Reasoning讓路必然導(dǎo)致image token數(shù)量過多,進(jìn)而導(dǎo)致在純OCR任務(wù)上存在bottle-neck。
Reasoning(VQA-like)能力來自LLM(decoder),要想獲得更好的VQA能力(至少在刷點(diǎn)上),就要充分利用起LLM來,那么image token就得越像text token(至少高維上,這樣就會(huì)讓LLM更舒服)。
試想一下,100個(gè)text token在LLM詞表上能編碼多少文字?那么一頁P(yáng)DF的文字,又需要多少token呢?不難發(fā)現(xiàn),保VQA就會(huì)導(dǎo)致在做OCR任務(wù)上,尤其是dense OCR任務(wù)上,模型搞得比較丑陋。
例如,一頁P(yáng)DF圖片只有A4紙大小,很多LVLM要都需要切圖做OCR,切出幾千個(gè)image token。單張都要切圖,拿出多頁P(yáng)DF拼接圖,閣下又當(dāng)如何應(yīng)對(duì)?
我們認(rèn)為對(duì)于OCR模型這么多token大可不必。
2、非常直觀的一點(diǎn)就是模型太大,迭代困難。
要想引入新OCR feature如支持一項(xiàng)新語言,不是SFT一下就能訓(xùn)進(jìn)模型的,得打開vision encoder做pre-training或者post-training,這都是相當(dāng)耗資源的。
對(duì)于OCR需求來說太浪費(fèi)了。
有人會(huì)說,小模型能同時(shí)做好這么多OCR任務(wù)嗎?
我們的答案是肯定的,而且甚至還能更好
論文地址:https://arxiv.org/pdf/2409.01704
項(xiàng)目地址:https://github.com/Ucas-HaoranWei/GOT-OCR2.0