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