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