阿里8B模型拿下多頁(yè)文檔理解新SOTA,324個(gè)視覺token表示一頁(yè),縮減80%
高效多頁(yè)文檔理解,阿里通義實(shí)驗(yàn)室mPLUG團(tuán)隊(duì)拿下新SOTA。
最新多模態(tài)大模型mPLUG-DocOwl 2,僅以324個(gè)視覺token表示單個(gè)文檔圖片,在多個(gè)多頁(yè)文檔問答B(yǎng)enchmark上超越此前SOTA結(jié)果。

并且在A100-80G單卡條件下,做到分辨率為1653x2339的文檔圖片一次性最多支持輸入60頁(yè)!
△單個(gè)A100-80G最多能支持文檔圖片(分辨率=1653x2339)的數(shù)量以及首包時(shí)間
mPLUG-DocOwl是利用多模態(tài)大模型進(jìn)行OCR-free文檔理解的一系列前沿探索工作。
- DocOwl 1.0首次提出基于多模態(tài)大模型進(jìn)行文檔理解方面的多任務(wù)指令微調(diào);
- UReader首次提出利用切圖的策略來處理高清文檔圖片,成為目前高清圖片理解的主流方案;
- DocOwl 1.5提出統(tǒng)一結(jié)構(gòu)學(xué)習(xí),將多個(gè)bechmark的開源效果提升超過10個(gè)點(diǎn),成為多模態(tài)大模型在文檔理解方面的主要對(duì)比基準(zhǔn)。
隨著文檔圖片的分辨率以及切圖數(shù)量的不斷增加,開源多模態(tài)大模型的文檔理解性能有了顯著提升,然而這也導(dǎo)致視覺特征在大模型解碼時(shí)占用了過多的視覺token,造成了過高的顯存占用以及過長(zhǎng)的首包時(shí)間。
主流模型在編碼時(shí)一般動(dòng)輒需要上千視覺token,才能還原所有細(xì)節(jié)。這導(dǎo)致每張A100-80G只能塞7張左右的文檔圖,嚴(yán)重影響AI文檔理解的效果和成本。
作為mPLUG-DocOwl系列的最新迭代,DocOwl 2在模型結(jié)構(gòu)和訓(xùn)練策略上做出大膽創(chuàng)新:
- 在結(jié)構(gòu)上,僅用324個(gè)視覺token表示每頁(yè)高清文檔圖片,大幅節(jié)省顯存、降低首包時(shí)間。
- 在訓(xùn)練上,采用三階段訓(xùn)練框架,兼顧多頁(yè)和單頁(yè)文檔問答效果,具備多頁(yè)文字識(shí)別、多頁(yè)文檔結(jié)構(gòu)解析以及帶有相關(guān)頁(yè)碼的詳細(xì)解釋能力。
模型結(jié)構(gòu)
文檔圖片相比一般圖片之所以顯著消耗更多視覺token,主要是為了編碼圖片中所有的文字信息。
考慮到目前所有的多模態(tài)大模型都會(huì)將視覺特征對(duì)齊到文本空間,且自然語(yǔ)言處理領(lǐng)域相關(guān)研究已經(jīng)證明文本信息可以顯著壓縮并保留住絕大部分語(yǔ)義,作者認(rèn)為高清文檔圖片的視覺token在和LLM對(duì)齊后同樣可以進(jìn)行較大程度的壓縮同時(shí)保留住絕大部分布局信息和文字信息。
文檔圖片中,同一個(gè)布局區(qū)域的文字因?yàn)檎Z(yǔ)義連貫,更容易進(jìn)行歸納總結(jié)。引入布局信息進(jìn)行壓縮指導(dǎo)可以降低壓縮難度,減少信息丟失。
恰好,當(dāng)一張高清文檔圖片降采樣為低分辨率全局圖后,文字信息丟失但是布局信息仍得以保留。
因此在只使用一個(gè)低分辨率視覺編碼器的情況下,DocOwl 2提出在視覺文本對(duì)齊之后增加一個(gè)High-resolution DocCompressor,其使用低分辨率的全局圖作為壓縮指導(dǎo),使用切圖的高分辨率特征作為壓縮對(duì)象,僅通過兩層cross attention,將切圖的高分辨率特征壓縮為324個(gè)token。
△圖2: DocOwl 2模型結(jié)構(gòu)圖
DocOwl 2整體延續(xù)了DocOwl 1.5的結(jié)構(gòu),主要包括高分辨率視覺編碼,高分辨率壓縮以及語(yǔ)言模型多模態(tài)理解三個(gè)部分。
對(duì)于一篇多頁(yè)文檔,每一頁(yè)會(huì)獨(dú)立進(jìn)行高分辨率視覺編碼和高分辨率壓縮。
具體來說,每一頁(yè)文檔圖片會(huì)采用Shape-adaptive Cropping模塊在考慮形狀和大小的情況下找到一個(gè)做合適的切割方式進(jìn)行切片,同時(shí)將原圖放縮為一個(gè)低分辨率全局圖。隨后每個(gè)切片和全局圖會(huì)單獨(dú)經(jīng)過ViT提取視覺特征特征,以及H-Reducer水平合并4個(gè)特征并將緯度對(duì)齊到LLM。之后,DocOwl2會(huì)采用High-resolution DocCompressor對(duì)視覺特征進(jìn)行壓縮。
低分辨率的全局圖片特征作為壓縮指導(dǎo)(query),以高分辨率切片特征作為壓縮對(duì)象(key/value),DocCompressor由兩層cross-attention layer組成。
考慮到切片過程中布局信息被破壞,多個(gè)切片的特征圖首先會(huì)按照切片在原圖中位置進(jìn)行拼接重組。由于低分辨率全局圖片的每一個(gè)特征只編碼了部分區(qū)域的布局信息,如果讓每個(gè)低分辨率特征都關(guān)注所有高分辨率特征不僅增加壓縮難度,而且大大增加了計(jì)算復(fù)雜度。
因此,針對(duì)全局圖的每一個(gè)視覺特征,根據(jù)其在原圖中的相對(duì)位置,從重組后的切片特征中可以挑選出同一位置的一組高清特征,其數(shù)量和切片的數(shù)量一致,并可能來自多個(gè)切片。
經(jīng)過壓縮后,任意形狀的文檔圖片的token數(shù)量都等同于低分辨率全局圖的token數(shù)量。DocOwl2的單個(gè)切片以及全局圖片都采用了504x504的分辨率,因此,最終單個(gè)文檔圖片的token數(shù)量為(504x504)/(14x14)/4=324個(gè)。
DocCompressor添加在已有多模態(tài)大模型的對(duì)齊結(jié)構(gòu)之后,并不需要對(duì)其他結(jié)構(gòu)做修改,這篇工作中,作者以DocOwl 1.5作為主要結(jié)構(gòu),但理論上,其適用于目前所有的高分辨率多模態(tài)大模型,例如InternVL2或Qwen2-VL。
模型訓(xùn)練:?jiǎn)雾?yè)多頁(yè)分開預(yù)訓(xùn)練
DocOwl 2的訓(xùn)練由三個(gè)過程組成:?jiǎn)雾?yè)預(yù)訓(xùn)練,多頁(yè)預(yù)訓(xùn)練,以及多任務(wù)指令微調(diào)。
單頁(yè)預(yù)訓(xùn)練采用了DocOwl 1.5的單圖結(jié)構(gòu)化解析數(shù)據(jù)DocStruct4M,包括文檔解析、表格解析、Chart解析、以及自然圖場(chǎng)景文本解析等,主要目的在于保證壓縮之后的視覺token仍然能還原出圖片中的文字和布局信息。
多頁(yè)預(yù)訓(xùn)練添加了Multi-page Text Parsing任務(wù)和Multi-page Text Lookup兩個(gè)任務(wù)。前者對(duì)于多頁(yè)文檔圖,給定1-2頁(yè)的頁(yè)碼,要求模型解析出其中的文字內(nèi)容;后者則給定文字內(nèi)容,要求模型給出文字所在的頁(yè)碼。多頁(yè)預(yù)訓(xùn)練的目標(biāo)主要在于增加模型對(duì)于多頁(yè)輸入的解析能力以及區(qū)分能力。
經(jīng)過兩輪預(yù)訓(xùn)練之后,作者整合并構(gòu)建了單頁(yè)文檔理解和多頁(yè)文檔理解的問答數(shù)據(jù)進(jìn)行聯(lián)合指令微調(diào),既包含簡(jiǎn)潔回復(fù),也包含給出頁(yè)碼依據(jù)的詳細(xì)推理。同時(shí),任務(wù)形式既有圍繞某幾頁(yè)的自由問答,也有整體文檔結(jié)構(gòu)的解析。
DocOwl 2的訓(xùn)練數(shù)據(jù)如下圖所示:

實(shí)驗(yàn)結(jié)果
在多頁(yè)文檔理解benchmark上,相比近期提出的同時(shí)具備多圖能力和文檔理解能力的模型,DocOwl 2在以顯著更少的視覺token、更快的首包時(shí)間達(dá)到了多頁(yè)文檔理解的SOTA效果。

在單頁(yè)文檔理解任務(wù)上,相比相似訓(xùn)練數(shù)據(jù)和模型結(jié)構(gòu)的DocOwl 1.5,DocOwl 2縮減了超過80%的視覺token且維持了絕大部分性能,尤其在最常評(píng)測(cè)的文檔數(shù)據(jù)集DocVQA上只有2%的微弱下降。
即使相比當(dāng)下最優(yōu)的MLLM,DocOwl2也在常見的文檔數(shù)據(jù)集DocVQA,圖表數(shù)據(jù)集ChartQA以及場(chǎng)景文本數(shù)據(jù)集TextVQA上以更少的token和更快的首包時(shí)間的前提下達(dá)到了>80%的性能。

從樣例中可以看出,對(duì)于A4大小的文檔圖片,即使只用324個(gè)token編碼,DocOwl2依然能夠清晰的識(shí)別圖片中的文字,或根據(jù)文字準(zhǔn)確定位到具體的頁(yè)碼。
△圖3: 多頁(yè)文字解析
△圖4: 多頁(yè)文字查找
除了解析文本,DocOwl 2對(duì)于多頁(yè)文檔的層級(jí)結(jié)構(gòu)也能用json的格式表示出來
△圖5: 文檔結(jié)構(gòu)解析
對(duì)于文檔問答,DocOwl 2不僅能給出答案,還能給出詳細(xì)的解釋以及相關(guān)的頁(yè)碼。

因?yàn)榫邆涠鄨D理解能力,DocOwl 2也能理解文字豐富的新聞視頻,同時(shí)給出答案所在的幀。

總結(jié):
mPLUG-DocOwl 2聚焦多頁(yè)文檔理解,兼顧效果和效率,在大幅縮減單頁(yè)視覺token的前提下實(shí)現(xiàn)了多頁(yè)文檔理解的SOTA效果。
僅用324個(gè)token表示文檔圖片也能還原出圖片的文字信息和布局信息,驗(yàn)證了當(dāng)下多模態(tài)大模型幾千的文檔圖片視覺表征存在較大的token冗余和資源的浪費(fèi)。
mPLUG團(tuán)隊(duì)會(huì)持續(xù)優(yōu)化DocOwl并進(jìn)行開源,同時(shí)希望DocOwl 2能拋磚引玉,讓更多的研究人員關(guān)注到多模態(tài)大模型對(duì)于高清文檔圖片的冗余編碼問題,歡迎大家持續(xù)關(guān)注和友好討論!
論文:https://arxiv.org/abs/2409.03420
代碼:https://github.com/X-PLUG/mPLUG-DocOwl

































