自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié) 原創(chuàng)

發(fā)布于 2024-12-11 20:03
瀏覽
0收藏

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

Vary

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

傳統(tǒng)的vlm做法和vary

技術(shù)點(diǎn)

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

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

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

訓(xùn)練方法

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

整體分為兩個(gè)階段:Vary-tiny和Vary-base

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

訓(xùn)練數(shù)據(jù)

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

      使用PyMuPDF庫提取每頁P(yáng)DF中的文本信息。

      使用pdf2image庫將每頁轉(zhuǎn)換為PNG圖像。

      構(gòu)建了100萬張中文和100萬張英文的文檔圖像文本對用于訓(xùn)練。

  • 圖表數(shù)據(jù):使用matplotlib和pyecharts作為渲染工具生成圖表圖像文本對。matplotlib風(fēng)格:構(gòu)建了25萬張中英文圖表圖像文本對。pyecharts風(fēng)格:構(gòu)建了50萬張中英文圖表圖像文本對。處理方式:OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

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

  • 負(fù)樣本自然圖像:從COCO數(shù)據(jù)集中提取自然圖像及其對應(yīng)的文本。文本:隨機(jī)選擇以下句子:“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”。目的確保新引入的詞匯不會(huì)對CLIP-VIT擅長的自然圖像數(shù)據(jù)造成干擾。

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)


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

      從arxiv收集一些.tex源文件,使用正則表達(dá)式提取表格、數(shù)學(xué)公式和純文本。

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

      將每個(gè)文檔頁的文本基準(zhǔn)轉(zhuǎn)換為mathpix markdown格式,以統(tǒng)一格式。

  • 圖表數(shù)據(jù):使用GPT-4生成相關(guān)語料庫,并利用高質(zhì)量的語料庫渲染20萬張圖表數(shù)據(jù)用于Vary-base訓(xùn)練。處理方式:

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

  • 通用數(shù)據(jù):使用LAION-COCO數(shù)據(jù)集隨機(jī)提取自然圖像文本對(400萬對圖像文本對)。在預(yù)訓(xùn)練和微調(diào)階段使用這些數(shù)據(jù)進(jìn)行訓(xùn)練。

格式遵循LLaVA-MPT sft格式:

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

實(shí)驗(yàn)

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

GOT-OCR

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

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

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

GOT的訓(xùn)練分為三個(gè)階段:

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

下面展開看一下:

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

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

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

數(shù)據(jù)

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

處理過程:對于自然場景數(shù)據(jù),進(jìn)行兩種類型的處理:

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

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

階段二:多任務(wù)聯(lián)合訓(xùn)練(Joint-training of the Encoder with a New Decoder)

在第二個(gè)階段,目標(biāo)是通過連接預(yù)訓(xùn)練的視覺編碼器到一個(gè)新的、更大的解碼器來擴(kuò)展GOT的知識,以處理更通用的OCR任務(wù)。

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

數(shù)據(jù):

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

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

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

二階段訓(xùn)練后GOT已經(jīng)能進(jìn)行多場景OCR了?,F(xiàn)在只對解碼器部分進(jìn)行后訓(xùn)練來定制GOT以啟用三個(gè)新特性,即細(xì)粒度、多頁面和動(dòng)態(tài)分辨率OCR。在第三個(gè)階段,目標(biāo)是進(jìn)一步提高GOT的泛化能力和適用性,通過后訓(xùn)練解碼器來定制新的OCR特征。

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

數(shù)據(jù):生成細(xì)粒度的交互式OCR數(shù)據(jù)、多頁OCR數(shù)據(jù)和動(dòng)態(tài)分辨率數(shù)據(jù),以支持區(qū)域提示OCR、超大圖像OCR和批量PDF OCR功能。

  • 細(xì)粒度數(shù)據(jù)

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

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

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

實(shí)驗(yàn)

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

OCR-free感知多模態(tài)大模型技術(shù)鏈路及訓(xùn)練數(shù)據(jù)細(xì)節(jié)-AI.x社區(qū)

總結(jié)

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

參考文獻(xiàn)

  • 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


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

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

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
已于2024-12-12 09:58:18修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦