成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OCR-free感知多模態大模型技術鏈路及訓練數據細節 原創

發布于 2024-12-11 20:03
瀏覽
0收藏

目前的一些多模態大模型的工作傾向于使用MLLM進行推理任務,然而,純OCR任務偏向于模型的感知能力,對于文檔場景,由于文字密度較高,現有方法往往通過增加圖像token的數量來提升性能。這種策略在增加新的語言時,需要重新進行訓練,計算開銷較大,成本較高。因此,本文再來看看vary和got這兩個銜接工作,看看其完整的技術鏈路。

Vary

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

傳統的vlm做法和vary

技術點

  • 新視覺詞匯表的生成:設計了一個詞匯網絡和一個小型解碼器Transformer,通過自回歸生成所需的詞匯表。具體使用SAM預訓練的ViTDet(base scale)作為新詞匯網絡的主要部分,并在其最后一層后添加兩個卷積層,以將特征形狀轉換為與CLIP-L輸出匹配的形狀。OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

添加了兩個卷積層,以使輸出與CLIP相似

  • 數據:在生成階段,使用手動文檔和圖表數據作為正樣本,自然圖像作為負樣本,通過自回歸方式訓練詞匯網絡。文檔數據包括從arXiv和CC-MAIN-2021-31-PDF-UNTRUNCATED收集的英文和中文字檔,圖表數據包括使用matplotlib和pyecharts渲染的圖表。
  • 詞匯表融合:在生成新詞匯表后,將其添加到原始LVLMs中,引入新特征。在這個過程中,凍結新舊詞匯網絡的權重,解凍其他模塊的權重。新詞匯表與原始CLIP-VIT并行,各自擁有獨立的輸入嵌入層,在LLM之前集成。

訓練方法

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

整體分為兩個階段:Vary-tiny和Vary-base

  1. Vary-tiny
    首先構建了一個具有新視覺詞匯表(vision vocabulary)的視覺Transformer(ViT),命名為Vary-tiny。采用了SAM預訓練的ViTDet作為Vary-tiny的主要組成部分,并在其后添加了兩個卷積層,以便將特征形狀調整為與CLIP-VIT的輸出相匹配。接下來,將一個全連接層和一個文本解碼器OPT-125M(這里也可以使用更大的大型語言模型(LLM)來替代OPT-125M。)連接到Vary-tiny上。
    為了訓練Vary-tiny,需要構造正負樣本的圖像-文本對。正樣本包括需要進行OCR處理的圖像及其OCR結果(如密集文本和Python字典風格的圖表結果)。負樣本則來自COCO數據集,包含自然圖像以及與之對應的文本“This is an natural image”。
  2. Vary-base
    Vary-base 是基于 Vary-tiny 的改進版本,它將 Vary-tiny 與原始的 CLIP-L ViT 并行運行。這兩個視覺變換器(ViT)的輸出嵌入首先分別輸入到它們各自的線性層,然后將這兩個線性層的輸出連接起來,最后輸入到LLM中。在 Vary-base 中,Vary-tiny 的輸入圖片分辨率為 1024×1024,而其最后一層輸出的特征圖尺寸為 64×64×256。這與 CLIP-L 的輸出尺寸不匹配,因此在 Vary-tiny 中添加了兩個卷積層來進行特征轉換,以確保尺寸的一致性。在訓練 Vary-base 的過程中,會凍結兩個 ViT 的權重,只更新線性投影層和 LLM 的參數。訓練數據包括自然場景和 OCR 場景的視覺問答(VQA),以便讓模型能夠在這些場景下表現出更好的性能。

訓練數據

  1. Vary-tiny(學習新的視覺詞匯表)
  • 文檔數據:從arXiv和CC-MAIN-2021-31-PDF-UNTRUNCATED收集的高分辨率文檔圖像文本對。英文部分:從arXiv的開放獲取文章中收集PDF格式的文檔。中文部分:從互聯網上的電子書籍中收集。處理方式:

      使用PyMuPDF庫提取每頁PDF中的文本信息。

      使用pdf2image庫將每頁轉換為PNG圖像。

      構建了100萬張中文和100萬張英文的文檔圖像文本對用于訓練。

  • 圖表數據:使用matplotlib和pyecharts作為渲染工具生成圖表圖像文本對。matplotlib風格:構建了25萬張中英文圖表圖像文本對。pyecharts風格:構建了50萬張中英文圖表圖像文本對。處理方式:OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

將圖表中的文本(如標題、x軸和y軸標簽)隨機從互聯網下載的自然語言處理(NLP)語料庫中選擇,并轉換為Python字典格式。

  • 負樣本自然圖像:從COCO數據集中提取自然圖像及其對應的文本。文本:隨機選擇以下句子:“It's an image of nature”、“Here's a nature picture”、“It's a nature photo”、“This is a natural image”、“That's a shot from nature”。目的確保新引入的詞匯不會對CLIP-VIT擅長的自然圖像數據造成干擾

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區


  1. Vary-base(合并后再訓練)
  • 文檔數據:除了文檔數據外,還需要支持公式和表格等格式的數據。 處理方式:

      從arxiv收集一些.tex源文件,使用正則表達式提取表格、數學公式和純文本。

      使用pdflatex重新渲染這些內容,并收集100萬張英文頁面和40萬張中文頁面。

      將每個文檔頁的文本基準轉換為mathpix markdown格式,以統一格式。

  • 圖表數據:使用GPT-4生成相關語料庫,并利用高質量的語料庫渲染20萬張圖表數據用于Vary-base訓練。處理方式:

     使用GPT-4生成圖表,確保圖表中的文本(如標題、x軸和y軸值)具有強相關性。

  • 通用數據:使用LAION-COCO數據集隨機提取自然圖像文本對(400萬對圖像文本對)。在預訓練和微調階段使用這些數據進行訓練。

格式遵循LLaVA-MPT sft格式:

<|im_start|>user: <img>"<image>"</img> "texts
input"<|im_end|> <|im_start|>assistant: "texts output" <|im_end|>

實驗

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

GOT-OCR

GOT-OCR是Vary的后續,提出了通用OCR理論(OCR-2.0)及其模型GOT,用于解決OCR-1.0系統的局限性和LVLMs的不適用性問題。GOT模型采用統一的端到端架構,包括一個高壓縮率的編碼器和一個長上下文長度的解碼器。編碼器使用VitDet結構,具有約80M參數,能夠處理1024x1024的輸入圖像。解碼器使用Qwen模型,具有約0.5B參數,支持8K的最大長度tokens,以確保能夠處理長上下文場景。

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

模型架構上分三部分:??vision encoder??? +??線性層??? +??LLM??。注意這里的encoder是一個80M的小模型(VitDet結構),并非CLIP,需要從頭訓練

GOT的訓練分為三個階段:

  • 預訓練階段:使用Tiny OPT-125M(為了節省GPU資源)對視覺編碼器進行純文本識別任務的預訓練。輸入圖像被調整為1024x1024的方形,并使用自然場景和裁剪切片進行訓練。
  • 聯合訓練階段:將預訓練的視覺編碼器連接到更大的Qwen-0.5B解碼器,并使用更多的通用OCR數據進行訓練,如樂譜、數學公式和幾何形狀。
  • 后訓練階段:通過細粒度、多裁剪/頁面的合成數據進一步改進GOT的泛化能力和適用性,支持區域提示OCR、超大圖像OCR和批量PDF OCR特征。

下面展開看一下:

階段一:純文本識別任務的預訓練(Pre-training of the Vision Encoder)

在第一個階段,主要目標是預訓練視覺編碼器(vision encoder),以便它能夠有效地處理常見的場景文本和文檔級字符。

方法:為了提高訓練效率和節省GPU資源,選擇了一個小型的解碼器(例如OPT-125M)來傳遞梯度給編碼器。將包含場景文本的圖像和包含文檔級字符的手動圖像輸入到模型中。這樣可以讓編碼器學習到兩種最常見的字符編碼能力。由于高分辨率圖像的計算成本較高,選擇了具有局部注意力機制的VitDet(base版本,約80M參數)作為編碼器結構。該編碼器可以將1024x1024x3的輸入圖像轉換為256x1024的圖像標記。最后通過一個1024x768的線性層,將這些圖像標記投影到語言模型(如OPT-125M)的維度。

數據

  • 自然場景數據:英文圖像:來自Laion-2B數據集。中文圖像:來自Wukong數據集。使用PaddleOCR工具從這些多樣化真實場景中捕獲偽GT。總共獲得200萬(2M)數據,其中一半是中文,一半是英文。
  • 文檔級數據:從Common Crawl收集開源PDF樣式文件。 使用Fitz Python包提取相應的密集文本內容。 獲得120萬(1.2M)全頁PDF樣式圖像-文本對和80萬(0.8M)圖像切片數據。 切片數據包括行級和段落級,通過解析邊界框從PDF圖像中裁剪出來。

處理過程:對于自然場景數據,進行兩種類型的處理:

  1. 移除邊界框并按從上到下、從左到右的順序合并每個文本內容。
  2. 根據邊界框從原始圖像中裁剪文本區域并保存為圖像切片。

后一種方法獲得了另外100萬(1M)切片類型圖像-文本對。

階段二:多任務聯合訓練(Joint-training of the Encoder with a New Decoder)

在第二個階段,目標是通過連接預訓練的視覺編碼器到一個新的、更大的解碼器來擴展GOT的知識,以處理更通用的OCR任務。

方法:將第一階段預訓練的視覺編碼器連接到具有更強能力的更大語言模型(例如Qwen-0.5B,500M參數)上,構建GOT的最終架構。將連接器(即線性嵌入層)的維度調整為1024x1024,以與Qwen-0.5B的輸入通道對齊(1024*1024的圖像最終被壓縮為256個tokens再輸入到LLM)。這個過程中,準備大量更通用的OCR數據(如樂譜、數學/分子公式和幾何形狀),以擴展OCR-2.0知識。

數據:

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

  • 普通OCR數據:使用前一階段的數據,并添加手寫文本識別子任務,涉及不同語言的各種手寫字體。上一階段數據的80%(300萬(3M)場景文本OCR數據和200萬(2M)文檔OCR數據)用于這階段,并追加手寫場景的OCR,數據來自Chinese CASIA-HWDB2 [ 1], English IAM [2], and Norwegian NorHand-v3,原數據的line-level slice會被6到8個地組合在一起當作longer-text。
  • 數學公式數據:從Arxiv爬取大量LATEX源.tex文件,提取約100萬(1M)公式片段。 將公式源轉換為Mathpix格式,并使用Chrome-driver調用Mathpix-markdown-it工具將其渲染為HTML格式。 將HTML文件轉換為SVG并保存為PNG圖像。
  • 分子公式數據:下載ChEMBL_25文件,包含200萬(2M)smile源。 使用Mathpix-markdown-it工具和rdkit.Chem包收集約100萬(1M)分子公式圖像-文本對。
  • 表格數據:從爬取的.tex文件中提取約30萬(0.3M)表格源,并將其渲染為圖像。使用IATEX作為渲染工具,因為其對高級表格的渲染效果更好。
  • 全頁數據:使用Nougat方法獲得約50萬(0.5M)英文markdown PDF文本對。參照Vary方法,收集另外50萬(0.5M)中文markdown對,并將其內容轉換為Mathpix格式。還添加了20萬(0.2M)內部數據,這些數據是使用Mathpix直接標記的,包括書籍、論文和財務報告。
  • 更通用的OCR數據樂譜數據:選擇GrandStaff數據集作為源進行渲染。從音樂摘錄中提取Humdrum kern轉錄,生成約50萬(0.5M)樣本。幾何形狀數據:使用TikZ風格的點和線,構造簡單的幾何形狀和函數曲線,生成約100萬(1M)幾何Tikz數據。圖表數據:使用Matplotlib和Pyecharts工具渲染圖表圖像-文本對,生成200萬(2M)圖表數據,其中一半來自Matplotlib,另一半來自Pyecharts。

階段三:解碼器的進一步后訓練(Further Post-training of the Decoder)

二階段訓練后GOT已經能進行多場景OCR了。現在只對解碼器部分進行后訓練來定制GOT以啟用三個新特性,即細粒度、多頁面和動態分辨率OCR。在第三個階段,目標是進一步提高GOT的泛化能力和適用性,通過后訓練解碼器來定制新的OCR特征。

方法:在不修改視覺編碼器的情況下,通過后訓練解碼器來定制GOT,以支持細粒度、多頁和動態分辨率OCR等新功能。

數據:生成細粒度的交互式OCR數據、多頁OCR數據和動態分辨率數據,以支持區域提示OCR、超大圖像OCR和批量PDF OCR功能。

  • 細粒度數據

     自然細粒度OCR:數據集:RCTW、ReCTS、ShopSign和COCO-Text。這些數據集提供文本邊界框,可以直接用于生成細粒度(區域/顏色提示)OCR數據。

     文檔級細粒度OCR:從下載的PDF文件中過濾出掃描格式的文件,使用Python包(Fitz/PDFminer)解析左側部分。記錄頁面級圖像、每行/段落的邊界框及相應文本,生成box-guided OCR子任務的GT。每個坐標值首先標準化,然后放大1000倍。選擇紅色、綠色和藍色作為最常用的顏色框架,并在原始圖像上繪制它們。

  • 多裁剪數據:支持1024x1024輸入分辨率,適用于常見OCR任務。使用InternVL-1.5裁剪方法,最大瓷磚數為12。使用單頁PDF數據合成超高分辨率圖像,包括水平和垂直拼接。通過這種方法,獲得50萬(50萬)圖像-文本對。
  • 多頁數據:從Mathpix格式的PDF數據中隨機采樣2-8頁,組成單個OCR任務。每個選定的頁面包含的文本少于650個標記,以確保總長度不超過8K。生成約20萬(20萬)多頁OCR數據,大部分是中文和英文頁面交替的。

實驗

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

OCR-free感知多模態大模型技術鏈路及訓練數據細節-AI.x社區

總結

筆者關注vary和GOT已久,抽空做了下技術思路記錄,GOT是Vary的后續,GOT通過三個階段的訓練,模型能夠逐步提升其在各種OCR任務上的性能,從基礎的純文本識別到處理更復雜的格式化和通用OCR任務。每個階段的訓練都注重不同的數據類型和任務,確保模型在多樣化的應用場景中都能表現出色。筆者在折騰過程中,這個鏈路的一階段的數據搞起來太傷身了,可以直接在開源權重上進行post-train,二/三階段微調后發現效果也達不到落地的效果,數據質量和數量都需要進一步的提升。目前該技術鏈路可以是多模態OCR-free模型打樣。

參考文獻

  • Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models,https://arxiv.org/abs/2312.06109
  • General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model,https://arxiv.org/abs/2409.01704


本文轉載自公眾號大模型自然語言處理  作者:余俊暉

原文鏈接:??https://mp.weixin.qq.com/s/81wzzFMRXKmRacbXXs5dRA??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2024-12-12 09:58:18修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 国产91黄色 | 久久久久国产一区二区三区四区 | 午夜免费看视频 | 欧州一区二区 | 亚洲一区在线日韩在线深爱 | 自拍中文字幕 | 欧美人妇做爰xxxⅹ性高电影 | 91伊人| 亚洲国内精品 | 逼逼视频 | 天天操天天摸天天干 | 亚洲成人日韩 | 国产精品视频网 | 亚洲三区在线观看 | 精品国产一区二区三区久久 | 久久综合亚洲 | 欧美成人精品一区二区三区 | 免费h在线 | 成人av免费 | 成人性生交a做片 | 久久91av| 欧美影院 | 欧美在线天堂 | 日本高清aⅴ毛片免费 | 99pao成人国产永久免费视频 | 免费午夜电影 | 亚洲欧洲视频 | av中文字幕网 | a级黄色网 | 97视频久久 | 在线精品亚洲欧美日韩国产 | 国产1区2区 | 精品视频一区二区 | 国产精品久久久久久久白浊 | 国产综合一区二区 | 亚洲福利在线观看 | 日本特黄a级高清免费大片 特黄色一级毛片 | 91资源在线 | 欧美精品一区二区三区在线 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 高清免费在线 |