TL;DR
- I read this because.. : document ๋๋ฉ์ธ์์ ViT variable resolution ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ์ข ๋ค๋ฅด๋ค๊ณ ํด์ ์ฝ์
- task : document understanding / UI / image captioning
- problem : ํ์ดํ๋ผ์ธ ๋ง๊ณ ์ด๋ฏธ์ง ์ธํ ๋ฐ๊ณ ๋ฐ๋ก ์ฒ๋ฆฌํ๊ณ ์ถ๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฏธ์ง์ ๋น์จ์ด ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ๊ฐ ์ข ์๋ค. ๊ทธ๋ฅ ๋ฌธ์ ๋ง๊ณ ๋ UI ์ด๋ฐ ๊ฒ๋ ํ๋ฒ์ ์ฒ๋ฆฌํ๊ณ ์ถ๋ค.
- idea : ์ธ์์ ์นํ์ด์ง๋ ๋ง์ผ๋ html์ screenshot์ผ๋ก render ํ ๋ค์ ์๋ณธ html์ generationํ๊ฒ ํ์!
- input/output : ํ ์คํธ๊ฐ ํฌํจ๋ ์น ์ด๋ฏธ์ง -> text
- architecture : ViT + decoder (12 encoder w/ 768 hidden dim or 18 encoder, w/ 1536 hidden dim) -> Base(282M), Large(1.3B)
- objective : contrastive loss(html recontstuction + masked token prediction)
- baseline : Donut, UDOP, PaLI, VTP, DQAN, LATr, UIB, VUT
- data : C4 corpus์์ URL ๋ค์ด ๋ฐ์์ 80M์ screen shot ๋ฐ์ดํฐ๋ฅผ ๋ง๋ฆ -> DocVQA, InfoGraphicVQA, UIChartQA, AI2D, OCR-VQA, RefExp(์์ฐ์ด๋ก ํํํ๊ณ ์๋ ์น ์ฌ์ดํธ ์ ๋ถ๋ถ์ ์ฐพ๋ ๋ฌธ์ ), Widget Captioning(์ฑ ์คํฌ๋ฆฐ ์ท์์ ์ ํ๋ ๋ฒํผ ๋ฑ์ด ์ด๋ค ์ญํ ์ ํ๋์ง captioning ํ๋ ๊ฒ(e.g.
find location), - evaluation : ANLS for DocVQA/InfoVQA, exact match for AI2D/RefExp/OCR-VQA, relaxed accuracy(RA) for Chart QA, CIDEr for generation task
- result : image input๋ง ๋ฐ๋ ์ ๋ค ์ค์ sota. ๊ทธ ์ธ์๋ captioning์ PALI์๊ฒ DocVQA, InfoVQA๋ UDOPํํ ๋ฐ๋ฆผ. Donut์ ๋ค ์ด๊น.
- contribution : ์ฌ๋ฌ๊ฐ์ง task sota. ํนํ UI ์ชฝ์ ๊ฐ์ด ํผ๊ฒ ์๋ง ์ฒ์์ธ ๋ฏํ๋น.
- etc. : ์ด๊ฑธ ์ด์ ์ฝ๋ค๋..
Details
variable-resolution
๋ณดํต ViT๋ ์ ์ฌ๊ฐํ์ผ๋ก resize ํด์ ํ์ตํ๋๋ฐ ๊ทธ๋ ๊ฒ๋๋ฉด (1) ์ฐ๋ถ๊ฐ ๋๊ณ (2) ๋์ค์ high resolution์ผ๋ก ๊ฐ์ ๋ sequence length๊ฐ ๊ธธ์ด์ก์ ๋ ์ฑ๋ฅ์ด ์ ์๋์ด ์ฌ๊ธฐ์ ์ ์ํ๋ ๋ฐฉ์์ aspect ratio๋ ์ ์งํ๋ sequence length๊ฐ maximum์ผ๋ก ๊ฝ๊ฝ ์ฑ์์ง๋๋ก ์ด๋ฏธ์ง๋ฅผ resize ํ๋ ๊ฒ (patch size๊ฐ ๋ฐ๋๋๊ฑด ์๋)
Pretraining
C4์์ url๋ก html renderํด์ ์ฌ์ฉ
์ด ๋ (1) visible element ๋ง ์ฌ์ฉํ๊ณ (2) visible element๊ฐ ์๋๋ฐ child๊ฐ ์์ ๊ฒฝ์ฐ grandchild๋ก child๋ฅผ ๋์ฒด.
text + alt-text ์ filename ์ ๋๋ฅผ ์ฌ์ฉ
์ด๋ฏธ์ง์์ ํ๋์์ผ๋ก ๋ฐ์ค ์น ๋ถ๋ถ์ html์ recoverํ๋ผ๊ณ ์๋ ค์ค
์ถ๊ฐ๋ก ๋นจ๊ฐ์์ผ๋ก ๋ฐ์ค ์น๊ณ ๋ง์ถ๊ฒ ํจ. ์ผ์ข ์ ์ด๋ฏธ์ง์์์ masked language modeling. text์ 50% ์ ๋.
Curriculum learning
์์๊ฑธ scratch๋ก ํ์ตํ๊ธฐ์ ํ์ต์ด ๋ถ์์ ํด์ ์ผ๋จ ์ฝ๊ธฐ๋ถํฐ ์ํด. Book Corpus๋ก ๋๋ค ์ปฌ๋ฌ ๋๋ค ํฐํธ๋ก ๋ ๋๋ง ํ ๋ค 30K step ์ ๋. (200K in donut)
Finetuning
GPT์์ ๊ทธ๋ฅ Q๋ฅผ ๊ฐ์ด ๋ฃ๋ฏ์ด ์ฌ๊ธฐ๋ ์ด๋ฏธ์ง์ question ๋ฑ์ ๊ฐ์ด renderedํด์ ๋ฃ์ด์ค
Training Details
- 282M / 1.3B (Donut 143M)
- 12 layers 768 hidden dim / 18 layers 1536 hidden dim
- 128 image patches
- 128 decoder sequence length
- output์ 128 characters๊ฐ ์ ๋๋๋ก.
- batch size 2048 with 64 TPUs / batch size 1024 with 128 TPUs (196 with 64 A100s in donut)
- BLEU๋ก validation.
Result
PALIํํ captioning ๋ฐ๋ฆฌ๊ณ , text-richํ DocVQA ๊ฐ์ ๊ฒฝ์ฐ์๋ OCR ๋ฑ์ ์ฐ๋ UDOPํํ ๋ฐ๋ฆผ. ์๋ฌด๋๋ ๋ฐ์ดํฐ ์์ฒด๊ฐ caption ๋ง์ด ํด์ ํ์ตํ ์ ๋ค๋ณด๋จ ๋ฐ๋ฆด ์ ๋ฐ์? ๊ทธ ์ธ์๋ Donut / GIT์ ์ด๊ธฐ๊ณ ํนํ UI ์ชฝ์ ์ฌํจํด๋ฒ๋ฆผ. ์์ฒญ๋ sota.
Ablation
- pretraining component
Screenshot Parsing์ด ๊ฐ์ฅ ๋ง์ด ๋จ์ด์ก๊ณ warmup์ด๋ masking์ ๋น์ทํ ์ ๋๋ก ๋จ์ด์ง
- variable-resolution
padding์ด ์๋นํ ์์ข์ ๋ชจ์ต.. stretch๊ฐ ๋น์จ ์ฐ๋ถํ๋๊ฑฐ!