【文檔理解】TextMonkey:一種OCR-Free的用于文檔理解的多模態大模型

背景

傳統的信息提取,通常是從文本中提取信息,相關技術也比較成熟。然而對于復雜領域,例如圖片,文檔等形式的數據,想要提取出高質量的、可信的數據難度就比較大了,這種任務也常稱為:視覺文檔理解(Visual Document Understanding, VDU),再次基礎上發展的視覺文檔(Visual Question Answer, VQA)。傳統的方法是基于OCR的范式,首先基于OCR引擎,將文檔中的數據提取出出來,轉成文本,有了文本之后就可以使用傳統的信息抽取方法處理,如果想結合數據位置信息,就將位置信息與文本一同在新的模型中做處理。這種方式的缺陷是:使用OCR的高計算成本,OCR模型對語言或文檔類型的不靈活性,OCR錯誤向后續過程傳播等。OCR驅動的VDU比較具有代表性的就是微軟的LayoutLM系列(v1,v2,v3)。隨著視覺模型的不斷進步,圖片與文本結合的多模態模型也在傳統的任務中取得了不斷地進步。OCR-Free范式的VDU技術也開始盛行,比較早的是2022年的一篇論文:OCR-free Document Understanding Transformer,一種端到端的文檔理解模型,簡稱為:Donut。

本文要介紹的TextMonkey是一種基于LLM的多模態大模型。我們先從,Donut看起。

Donut

這個模型算是OCR-Free模型的鼻祖,模型也比較簡單,相比以往的處理方案,具有不錯的效果。數據處理的pipline如下:
在這里插入圖片描述
模型的主要結構由一個編碼器和一個解碼器構成。編碼器主要是Swin Transformer(2021年微軟研究院發表在ICCV上的一篇文章), 解碼器是一個自回歸的語言模型,使用的BART的解碼器模塊。此外模型的輸入也是有講究的,主要是作者受GPT-3的啟發,使用了prompt這種范式,在下游的任務中都增加了prompt,在結果輸出使用特殊的token作為標志,可以將生成的序列轉換成json格式的數據。模型在效果上和性能上優于傳統的模型,例如下圖:
在這里插入圖片描述
在文檔分類的數據上的效果如下:
在這里插入圖片描述
在文檔信息提取上的效果如下:
在這里插入圖片描述
從上面的結果來看,使用這種基于視覺編碼的方式相比與傳統的方法是有一定效果的提升。在現如今大模型盛行的時代,大模型的生成、涌現、表達能力都異常突出,看看結合大模型的視覺問答效果怎么樣。下文就介紹今天的主角,由華中科技大學和金山共同推出的TextMonkey:TextMonkey: An OCR-Free Large Multimodal Model for Understanding Document

TextMoneky

TextMoneky實在Monkey(Monkey: Image Resolution and Text Label Are Important Things for Large Multi-modal Models)的基礎上進行了改進。Monkey已被計算機視覺頂會CVPR2024收錄,相關代碼也開源到github.

概述

TextMonkey在多個方面進行改進:通過采用零初始化的Shifted Window Attention,TextMonkey實現了更高輸入分辨率下的窗口間信息交互;通過使用相似性來過濾出重要的圖像特征,TextMonkey不僅能夠簡化輸入,還可以提高模型的性能。此外,通過擴展多個文本相關任務并將位置信息納入回答,TextMonkey增強了可解釋性并減少了幻覺。與此同時,TextMonkey在微調之后還可以具備APP Agent中理解用戶指令并點擊相應位置的能力,展現了其下游應用的巨大潛力。

方法論

TextMonkey的構造如下圖所示。
在這里插入圖片描述
核心的模塊主要有三個:

  1. Shifted Window Attention。現有的多模態大模型,如Monkey和LLaVA1.6,通過將圖像切分為小塊來提高輸入分辨率。然而這種裁剪策略可能會無意中分割相關單詞,導致語義不連貫。此外,這種分裂造成的空間分離也使得處理與文本位置相關的任務(如文本檢測)變得具有挑戰性。TextMonkey在繼承Monkey高效的圖像分辨率縮放功能的同時,采用滑動窗口注意力機制建立了塊與塊之間的上下文聯系。

  2. Token Resampler。目前的多模態大模型面臨著圖像token數目隨著輸入分辨率的增加而增加的挑戰。由于語言模型的輸入長度和訓練時間的限制,減少token的數量是很有必要的。在自然語言中,語言元素會存在一些冗余信息。那么可以自然的猜測在擴大圖像分辨率之后,視覺部分的token也會存在冗余。本文根據以往確定語言元素相似性的方法,對已經映射到語言空間的圖像token的相似性進行了度量:在圖像Resampler之后隨機選取20個有序特征,利用余弦相似性成對比較這些特征的相似性,得到的結果如圖2所示。顏色越深代表相似性越高,實驗發現每個圖片的token都有一個到幾個類似的token,圖片特征中存在冗余。同時,本文還觀察到某些令牌是高度獨特的,并且缺乏其他相似的token,如圖中的第四個token,這表明這個token是更為重要的。因此本文選用相似度來度量并識別獨特的視覺token。并提出Token Resampler來壓縮冗余視覺token。通過計算每個token與其他token的相似度,過濾得到最重要(相似度最低)的K個token。同時,為了避免直接丟棄其他token造成的信息丟失,這里還會利用過濾得到的K 個token作為查詢,并采用交叉注意力機制進一步融合所有特征。如下圖:
    在這里插入圖片描述

  3. 多任務訓練。TextMonkey支持讀出所有文本,文本檢測識別,輸出給定文本坐標,文本問答,具有位置感知的文本問答,圖像結構化等多個任務。TextMonkey在進行問答時不僅看可以給出答案,還能給出答案所在位置,進一步增強了模型的可解釋性。與此同時,在經過微調之后,TextMonkey還可以具備APP Agent中理解用戶指令并點擊相應位置的能力。

實驗分析

TextMonkey與現有的多模態大模型相比,表現出了優越的性能。如下圖:
在這里插入圖片描述
為了進一步驗證TextMonkey的有效性,作者在多個數據集上進行了測試,如下:
在這里插入圖片描述
TextMonkey在Text Spotting數據集上相比于傳統OCR模型也取得了極具競爭力的效果,如下:
在這里插入圖片描述
在消融實驗中也驗證了Shifted Window Attention和Token Resampler兩個模塊是有效的。如下圖:
在這里插入圖片描述
此外作者還做了一個實驗,當提高圖片的分辨率時,圖片對應的token會顯著增加,得到的關鍵信息也變得尤為困難,如下表,第1,4行,不壓縮token,分辨率從896提高的1344,模型的效果在4個數據集上效果下降。此外,在壓縮token上,選擇不同數量的Token也會對模型有一定的影響,這些都是需要考慮的。對比實驗如下:
在這里插入圖片描述

案例使用

一些測試案例可以參考:TextMonkey:用于文檔理解的多模態大模型,取其中一個案例,TextMonkey在文字相當密集的情況下讀取輸入圖片中的所有文字并且給出圖片中文本的坐標。案例如下:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
此外還有一個比較有意思的就是,TextMonkey還能幫助我們結構化圖表,表格以及文檔數據,通過將圖像內容轉化為Json格式的信息,方便記錄和提取。如下:
在這里插入圖片描述
在這里插入圖片描述

補充

需要說明的是,TextMonkey基于的語言模型和視覺模型分別是:Qwen-7B ViT-BigHuge,模型參數在9.8B左右。截止發文,在模態大模型排行榜上,其在1月排名為第4,到如今5月掉到第16,說明了多模態大模型的卷的速度也是非常快的,排行榜地址:https://rank.opencompass.org.cn/leaderboard-multimodal/?m=24-05
在這里插入圖片描述
在這里插入圖片描述

總結

TextMonkey在Monkey的基礎上增強了其圖像間的跨窗口交互,在擴大分辨率的基礎上增強了視覺信息的語義連續性,有效緩解了視覺信息碎片化的問題;并通過提出過濾融合策略減少圖像特征長度,從而減少輸入到大語言模型中冗余的視覺token數量。論文的實驗說明,分辨率不是越大越好,不合理的提高模型分辨率策略有時會給模型帶來負面影響,如何合理地擴大分辨率才是一個更值得去思考的問題。此外,通過在問答中引入位置信息,TextMonkey增強了可解釋性并減少了幻覺。TextMonkey在多個文本相關的測試基準中處于國際領先,在OCRBench中超越其他開源多模態大模型。

對于這種OCR-Free的多模態大模型,總體看好。至于未來這些多模態大模型能否在工業領域落地,也還需要做進一步的考究。文中只介紹了該模型的大概內容,在實際的處理中還需要參考原文以及開源的代碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13175.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13175.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13175.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CTF網絡安全大賽web題目:just_sqli

這道題目是bugku的web題目 題目的 描  述: KosenCTF{} 原文鏈接&#xff1a; CTF網絡安全大賽web題目&#xff1a;just_sqli - 紅客網-網絡安全與滲透技術 題目Web源代碼&#xff1a; <?php$user NULL; $is_admin 0;if (isset($_GET["source"])) {highlig…

齊護K210系列教程(二十七)_語音識別

語音識別 1.燒錄固件和模型2.語音識別程序2.1訓練并識別2.2使用本地文件語音識別 3.課程資源聯系我們 1.燒錄固件和模型 注&#xff1a;本應用只適用于有麥克風功能的型號&#xff1a;AIstart_pro、AIstart_掌機、AIstart_Mini, 其它型號不支持&#xff01; 機器碼生成以及模…

linux中遠程服務器上傳輸文件的10個sftp命令示例

目錄 1. 如何連接到 SFTP 2. 幫助 3.檢查當前工作目錄 4. 使用 sftp 列出文件 遠程 本地 5. 使用 sftp 上傳文件 6. 使用 sftp 上傳多個文件 7. 使用 sftp 下載文件 8. 在 sftp 中切換目錄 遠程 本地 9. 使用 sftp 創建目錄 10. 使用 sftp 刪除目錄 11. 退出 sf…

(001)apidoc 的安裝

安裝 1.確定 node 和 npm 的匹配版本 node -vv10.14.1# 切換node 版本 nvm list nvm use 20.12.22.安裝 apidoc。 npm install -g apidoc3.生成文檔&#xff1a; apidoc -i ../ -o document/ -f ".java$"-i &#xff1a;指定掃描路徑。-o&#xff1a;輸出目錄。…

golang并發(同步)多任務高性能執行聚合

taskgroup golang并發執行多任務&#xff0c;并聚合多任務結果。 使用文檔、 項目github 使用: go get github.com/mlee-msl/taskgroup 功能特點 并發安全的執行多個任務將多個任務的結果進行聚合通過扇出/扇入模式&#xff0c;結合線程安全channel實現高效協程間通信多任務復…

【Linux:環境變量】

環境變量一般是指在操作系統中用來指定操作系統環境的一些參數 常見的環境變量&#xff1a; PATH 指定可執行程序的搜索路徑 系統級的文件&#xff1a;/etc/bashrc 用戶級文件&#xff1a;~/.bashrc ~/.bash_profile HOME 指定用戶的主要工作目錄&#xff08;當前用…

kettle從入門到精通 第六十一課 ETL之kettle 任務調度器,輕松使用xxl-job調用kettle中的job和trans

想真正學習或者提升自己的ETL領域知識的朋友歡迎進群&#xff0c;一起學習&#xff0c;共同進步。若二維碼失效&#xff0c;公眾號后臺加我微信入群&#xff0c;備注kettle。 1、大家都知道kettle設計的job流程文件有個缺點&#xff1a;只能設置簡單的定時任務&#xff0c;無法…

DPDK:用rte_wmb()來保序,對ARM和IA而言,RTE_WMB()的實現有何不同

rte_wmb()函數在DPDK中用于實現寫入屏障&#xff08;Write Memory Barrier&#xff09;&#xff0c;它的作用是確保在CPU執行寫操作之前&#xff0c;所有先前的寫操作已經被完全刷新到內存中。這個函數在IA和ARM處理器上的實現有一些不同。 對于Intel Architecture (IA)處理器而…

PHP黑魔法之既是0又是1/switch/$a==0可用.繞過(非數字都可繞過)/PHP://偽協議繞過

1、既是0又是1的情況 $a==1 & $test[$a]=t 時 知識點1)php在處理數字時,如果數字的位數超過 16 位是可以弱等于1的,也就是 var_dump( 9999999999999999999 == 1 );//true 因為當數字位數超過 16 位時,是將該數字轉換成了數值為 1 的字符串進行處理 知識點2)在科學…

LabVIEW和usrp連接實現ofdm通信系統 如何實現

1. 硬件準備 USRP設備&#xff1a;選擇合適的USRP硬件&#xff08;如USRP B210或N210&#xff09;&#xff0c;并確保其與計算機連接&#xff08;通常通過USB或以太網&#xff09;。天線&#xff1a;根據頻段需求選擇合適的天線。 2. 軟件安裝 LabVIEW&#xff1a;安裝LabVI…

【Golang】 Golang 的 GORM 庫中的 Rows 函數

文章目錄 前言一、Rows 函數解釋二、代碼實現三、總結 前言 在使用 Go 語言進行數據庫操作時&#xff0c;GORM&#xff08;Go Object-Relational Mapping&#xff09;庫是一個常用的工具。它提供了一種簡潔和強大的方式來處理數據庫操作。本文將介紹 GORM 庫中的 Rows 函數&am…

數據庫-索引(高級篇)

文章目錄 索引概念&#xff1f;索引演示&#xff1f;索引的優劣&#xff1f;為什么使用索引就快&#xff1f;本篇小結 更多相關內容可查看 索引概念&#xff1f; 索引&#xff08;index&#xff09;是幫助MySQL高效獲取數據的數據結構(有序)。在數據之外&#xff0c;數據庫系統…

生成完美口型同步的 AI 數字人視頻

目錄 摘要 關鍵詞 1 前言 1.1 研究背景 1.2 研究意義 2 技術框架 2.1 深度學習框架 2.2 語音識別 2.3 面部動作捕捉和口型同步 2.4 綜合項目 3 實現過程 3.1 環境搭建 3.2 代碼開發 3.3 整合代碼 3.4 部署 3.5 更多細節 4 測試過程 4.1 數據準備 4.2 面部檢測…

語法分析-文法

如果對于一部文法中&#xff0c;存在至少一個句子有兩個或者兩個以上的語法樹則該文法是二義性的。 我們可以以上面的例子進行解釋&#xff0c;對于第棵個語法樹&#xff0c;我們可以看到是先進行了加法運算再進行的乘法運算&#xff0c;因為需要先把EE作為整體運算完后再成為E…

上海亞商投顧:滬指低開低走 兩市成交額跌破8000億

上海亞商投顧前言&#xff1a;無懼大盤漲跌&#xff0c;解密龍虎榜資金&#xff0c;跟蹤一線游資和機構資金動向&#xff0c;識別短期熱點和強勢個股。 一.市場情緒 市場全天震蕩走低&#xff0c;三大股指尾盤均跌近1%。地產股逆勢走強&#xff0c;光大嘉寶、天地源、云南城投…

幻獸帕魯Palworld服務器手動+docker部署方法+備份遷移

目錄 帕魯部署官方文檔帕魯手動安裝法手動安裝steamcmd通過steamcmd安裝帕魯后端 docker容器一鍵部署幻獸帕魯綠聯云NAS機器部署幻獸帕魯客戶端連接附錄1&#xff1a;PalServer.sh的啟動項附錄2&#xff1a;配置文件游戲存檔保存和遷移 關于阿里云計算巢 帕魯部署官方文檔 htt…

學習MySQL(五):窗口函數

窗口函數介紹 窗口函數的引入是為了解決想要既顯示聚集前的數據&#xff0c;又要顯示聚集后的數據&#xff1b;窗口數對一組值進行操作&#xff0c;不需要使用GROUP BY子句對數據進行分組&#xff0c;能夠在同一行中同時返回基礎行的列和聚合列。 強調&#xff1a;使用MySQL …

?學者觀察 | 從區塊鏈應用創新看長安鏈發展——CCF區塊鏈專委會榮譽主任斯雪明

導語 2024年1月27日&#xff0c;斯雪明教授在長安鏈發布三周年慶暨生態年會上發表演講&#xff0c;認為在區塊鏈發展過程中&#xff0c;不僅需要技術創新&#xff0c;同時需要有價值、有特色、有示范意義的應用創新。斯雪明教授介紹了國內區塊鏈技術與應用發展的現狀、趨勢與挑…

【數據結構】排序(直接插入排序,希爾排序)

目錄 一、排序的概念 二、常見的排序算法 三、插入排序 1.直接插入排序 1.直接插入排序實現 2.直接插入排序特性及復雜度 2.希爾排序 1.排序思路 2.希爾排序實現 3.希爾排序的特性及復雜度 一、排序的概念 排序&#xff1a;所謂排序&#xff0c;就是使一串記錄&#x…

python手寫數字識別(PaddlePaddle框架、MNIST數據集)

python手寫數字識別&#xff08;PaddlePaddle框架、MNIST數據集&#xff09; import paddle import paddle.nn.functional as F from paddle.vision.transforms import Compose, Normalizetransform Compose([Normalize(mean[127.5],std[127.5],data_formatCHW)]) # 使用tran…