DeepSeek又開(kāi)源,這次是OCR模型!附論文解讀!
DeepSeek又開(kāi)源了,這次是OCR模型,整個(gè)模型大小在3B。
DeepSeek-OCR的提出,是為了探索,是否可以通過(guò)視覺(jué)模態(tài)進(jìn)行文本信息的高效壓縮,
也就是把文檔內(nèi)容,用圖像Token表示,其Token數(shù)量會(huì)遠(yuǎn)小于原始文本Tokens數(shù),說(shuō)白了,你1w字,可能需要5000個(gè)Token,但用圖像來(lái)表示,可能只需要512 個(gè) Token。
實(shí)話實(shí)說(shuō),直接升華了,我之前研究VLM做OCR,就是解決PDF轉(zhuǎn)成文本的問(wèn)題,沒(méi)想到DeepSeek,是在想用圖像視覺(jué)壓縮文本。
先說(shuō)結(jié)論:
- 這次DeepSeek提出了一個(gè)新的視覺(jué)編碼結(jié)構(gòu)DeepEncoder。
- 同時(shí)做了一個(gè)關(guān)于視覺(jué)-文本token壓縮比的全面定量分析。
- DeepSeek-OCR的整體也很不錯(cuò),在OmniDocBench上,使用更少的視覺(jué)token達(dá)到最好的效果。

模型地址,HF:https://huggingface.co/deepseek-ai/DeepSeek-OCR

DeepSeek-OCR模型也是三件套,圖像編碼器、映射層和文本解碼器組成,其中圖像編碼器時(shí)特色,為DeepEncoder,參數(shù)為380M,文本解碼器是一個(gè)deepseekv2-3b的模型-,參數(shù)為3B,2個(gè)共享專家,64個(gè)激活專家,每次激活6個(gè)專家,激活參數(shù)為570M。
現(xiàn)有VLM的視覺(jué)部分,主要是三種,雙塔架構(gòu),tile-based方法,自適應(yīng)分辨率編碼方法,如下,存在多次預(yù)處理、高分辨率時(shí)Token數(shù)量過(guò)多等問(wèn)題。

提出DeepEncoder,為了可以能夠處理高分辨率圖像、在高分辨率下激活值低、輸出視覺(jué)Token少、支持多分辨率輸入。結(jié)構(gòu)如下,參數(shù)量為380M,主要由一個(gè)80M的SAM-base模型和一個(gè)300M的CLIP-large模型串聯(lián)構(gòu)成。
其中,SAM-base模型以窗口注意力感知局部特征,CLIP-large模型以密集全局注意力提取全局語(yǔ)義信息。
模型之間,采用一個(gè)兩層卷積模塊對(duì)視覺(jué)token進(jìn)行16倍下采樣,每個(gè)卷積層的kernel size為3,stride為2,padding為1,通道數(shù)從256增加到1024。
舉例,輸入圖像大小為1024×1024,DeepEncoder首先劃分為1024/16 × 1024/16 = 4096個(gè)patch token,在對(duì)4096個(gè)token進(jìn)行壓縮,數(shù)量變?yōu)?096/16 = 256。

DeepEncoder支持多分辨率,有兩種,原生分辨率和動(dòng)態(tài)分辨率。

原始分辨率,包括Tiny-512×512(64 token)、Small-640×640(100 token)、Base-1024×1024(256 token)、Large-1280×1280(400 token)四種。
Tiny和Small模式是直接對(duì)圖像進(jìn)行resize處理,Base和Large模式是保持原始圖像的寬高比利用padding方式處理。

動(dòng)態(tài)分辨率包括Gundam-640×640+1024×1024(n x 100 + 256)、Gundam-M-1024×1024+1280×1280(n x 256 + 400)兩種,是由n個(gè)局部視圖+一個(gè)全局視圖,其中局部的tile數(shù)在2到9之間。對(duì)于寬高都小于640的圖像,n設(shè)為0,Gundam退化成Base,Gundam-M退化成Large。
整體訓(xùn)練數(shù)據(jù)由4部分組成,
OCR1.0數(shù)據(jù)(43M張圖片-文本對(duì)),由傳統(tǒng)OCR任務(wù)組成,如圖像OCR和文檔OCR;
OCR2.0數(shù)據(jù)(16M張圖片-文本對(duì)),包含復(fù)雜的圖像解析任務(wù),如圖表、化學(xué)公式、平面幾何等;
通用視覺(jué)數(shù)據(jù)(占比20%),用于注入通用圖像理解能力;純文本數(shù)據(jù)(占比10%),用于確保模型的語(yǔ)言能力。
模型訓(xùn)練采用兩階段訓(xùn)練,先訓(xùn)練DeepEncoder部分,再全部參數(shù)聯(lián)合訓(xùn)練。
訓(xùn)練DeepEncoder階段,采用OCR1.0和OCR2.0數(shù)據(jù),以及從LAION數(shù)據(jù)集中采樣的100M通用數(shù)據(jù),訓(xùn)練 2 個(gè) epoch,BS為1280,優(yōu)化器為AdamW,學(xué)習(xí)率調(diào)度器為cosine annealing ,初始學(xué)習(xí)率為 5e-5,最大長(zhǎng)度為 4096。
全部參數(shù)訓(xùn)練階段,采用20個(gè)A100-40G*8的節(jié)點(diǎn)進(jìn)行PP訓(xùn)練,BS為 640,優(yōu)化器為 AdamW,初始學(xué)習(xí)率為3e-5。
最后,還沒(méi)測(cè),后面看看跟新出的PaddleOCR-VL 0.9B哪個(gè)更強(qiáng)。
本文轉(zhuǎn)載自???NLP工作站???,作者:NLP工作站

















