Pix2Struct: Screenshot Parsing as Pretraining for Visual Language...
https://github.com/google-research/pix2struct
transformers/src/transformers/models/pix2struct at main · huggingface/transformers
Pix2Struct: Screenshot Parsing as Pretraining for Visual Language...
예를 들면, documents, tables, infographics, UIs 들은 전체적으로 사용되게 의도되었고, 글자와 이미지 사이의 명확한 경계가 없다.
이러한 정보의 포괄적 이해는 단어를 이해하고, 언어를 이해하고, 다양한 visual context와 협력하는 다양한 skill들이 필요하다.
visually-situated language 이해에 대한 이전의 연구는 산재되어 있다.
Domain-specific engineering은 고해상도 환경 (e.g. 문서)에서는 효과적일 수 있다. → 풍부한 도구와 데이터가 있다면.
하지만, 이러한 pipelined models은 underlying data, model, architectures, objectives across domains의 공유가 부족하고, 그들의 일반적인 applicability를 제한한다.
또한, OCR 같은 외부 시스템에 의존하는 건 공학적 복잡도를 증가시키고, adaptability를 제한하고, 전반적인 계산 cost를 증가 시킨다.
최근의 연구 중 images로부터 직접 OCR-Free, end-to-end document 이해가 시도되었다 → task-specific한 engineering을 줄이고 pretraining 중 OCR outputs을 decode 하도록 학습해 inferece 중 외부 요소의 의존도를 낮추고자 했다. ⇒ 훨씬 일반적인 모델로의 진보.
하지만, 표면적 레벨의 text에만 집중하는건 unsupervised data에서 변환되는 knowledge의 depth를 제한한다. ⇒ Pixel-only model의 효과적인 사용은 Open challenge이다.
Pix2Struct를 제안. pretrained model → 순수히 pixel-level의 inputs의 단순함 + 다양하고 풍부한 web data를 사용한 self-supervised pretraining로 제공되는 generaility와 scalability와 조합
특히, screenshot parsing objective를 제안 → web page의 masked input에서 HTML 기반 parse 예측을 요구.
HTML이 text, images, layouts에 대한 clean, vital signals을 제공하고, masked inputs이 그들의 co-occurrence에 대한 joint reasoning을 유도함.
web에서 발견되는 다양하고 복잡한 textual + visaul elements 덕분에, Pix2Struct는 web page에 대한 풍부한 representation을 배우고, 다양한 downstream visual language understanding task에 효과적으로 전환될 수 있음을 보였다.
이러한 transfer를 가능하게 하는 주요 재료는 인간 독자들의 읽도록 의도된 것처럼 inputs을 시각적이고 전체적으로 처리하도록 한다.
ViT에 다양한 해상도의 inputs을 넣는데, 이는 문서, 그림, UI마다 매우 다양할 수 있는 원본의 가로세로비를 왜곡하는 것을 방지한다.
finetuing 중, 우리는 다른 inputs (VQA의 질문, UI tasks의 bounding box)를 task의 image imput으로 render 한다.
그 결과로, 모든 다른 inputs을 single modality로 통합하고, 이전 work의 modality combination 문제를 단순화 한다.
282M, 1.3B parameters에서 학습. ⇒ 각각 Pix2Struct-Base / Pix2Struct-Large.
C4 corpus에서 web pages 80M screenshots.
4 domain과 9 tasks에서 실험 ⇒ 우리 모델이 Donut (기존 pipeline이 없는 SOTA)보다 훨씬 나았다.
domain-specific한 pipeline을 가진 baseline과 비교했을 땐, 고해상도 (문서, 자연 이미지)에서는 SOTA에 밀렸지만, low-resource domain (illustration, UI)에서는 상당한 진전을 이루었다.
우리의 연구가 이러한 general-purpose methods 연구를 진흥시키면 좋겠고, language + vision의 파편화 되어 있는 결합에 새로운 적용을 가능하게 하면 좋겠다.
우리의 기여 요약
이전 연구는 주로 document와 natural image에 집중해 왔다.
우리의 목표는 여러 task, domain에 사용될 수 있는 단일한 pretrained model을 만드는 것이다.
우리 model의 input은 raw pixel only의 image이고, output은 token sequence 형태의 text이다 (Donut과 유사)
목표는 visual판 T5를 만드는 것인데, 단순한 inputs과 outputs의 일반성이 대규모 unsupervised source의 data의 힘과 결합하는 것이다.
finetuning 중, downstream task에 적용하는 복잡함은 오직 data preprocessing에 달려있다.
visual context 없이도 text를 위한 pixel-only language modeling은 오직 최근에만 시도되었다.
SOTA 문서 이해 model은 (LayoutLMv3)은 (noisy 할 수도 있는) 저해상도 image의 OCR outputs을 조합해서 만든다.
우리는 OCR에 의존하는게 더 일반적인 목적의 representation으로 나아가는 것을 막는다고 주장한다.
우리는 Pix2Struct의 다양한 구성 요소들이 이러한 문제들을 해결했음을 보인다.
image-encoder-text-decoder는 ViT.
model 구조는 매우 일반적. 하지만 작지만 매우 영향이 큰 변화를 도입함. → visually-situated language의 various forms에 더 robust하게 만듦.
fixed-size patches를 추출하기 전에, 일반 ViT는 사전 정의된 해상도로 scale을 바꾸는데, 이게 의도하지 않은 결과 두 개를 만든다.
대신, 우리는 input image를 항상 up 또는 down scale해서 주어진 sequence length에 맞는 최대의 patches를 뽑아낼 수 있게 했다.
screenshot과 HTML은 pretraining 동안 rich하고 dencse한 learning signal을 확실히 만들 수 있게 수정된다.
HTML DOM tree를 다음으로 농축 시킨다.
각각의 node에서, filename과 대체 text로 표현되는 text와 image에 대한 정보만을 남긴다.
더 많은 정보가 보존될 수도 있는지에 대한 연구는 미래에 맞긴다. (element tag, bounding boxex, title, URL 등등)
decoder sequence length는 linearized 될 때 predefined된 sequence length에 fit 하는 largest subtree를 찾음으로서 더 감소한다.
bounding box가 가리키는 chose subtree로 cover 되는 영역 또한 screenshot에 그려진다.
더 나은 context modeling을 위해, BART-like의 learning signal을 도입했다 ⇒ 전체 subtree를 decoding 할 때 50%의 text를 masking 했다.
이 Section에서, tasks에 대한 preprocessing 전략이 Table 1에 정리되어 있다.
Captioning은 가장 명확하다, 왜냐하면 input image와 output text가 직접적으로 사용될 수 있기 때문에.
Caption의 목표가 특정한 bounding box를 그리는 거라면 (Widget Captioning처럼), 우리는 target bounding box를 image 그 자체에 그려 넣는다.
VQA (OCR-VQA, ChartQA 등)에서, multimodal model들이 question을 위한 특별한 text channel을 일반적으로 유지했지만, 우리는 원본 이미지 상단에 직접적으로 질문을 render 했다.
이러한 전략은 단순히 모든 input을 finetuining 중에 concat 하는 것에서 배운 것
직관적으로, 이러한 전략은 효과적인데, Pix2Struct가 input image의 다양한 부분 사이의 넓은 범위의 상호작용에 민감하게 pretrained 되었기 때문이다.
여러 선택지가 있는 경우에 (AI2D처럼), choices들도 이미지 상단에 넣었다.
가장 복잡한 시나리오는 RefExp인데, 자안여 설명이 언급하고 있을 UI 요소 중에서 선택하는 것.
각각의 후보에 대해, input image가 bounding box와 referring expression을 가지고 있는 training instance를 만들었고, decoding target은 “true” 또는 “false”이다.
우리는 training 동안 긍정적인 candidate 당 5개의 negative candidate를 만들었다.
Inference 동안, model이 만든 “true” score가 가장 높은 candidate를 선택했다.
Parameters | transformer layers | a hidden size | steps | batch size | GPU | |
---|---|---|---|---|---|---|
base | 282M | 12 | 768 | 270K | 3072 | 64 GCP TPUs |
large | 1.3B | 18 | 1536 | 170K | 1024 | 128 GCP TPUS |
ANLS 40 → Pix2Struct-Large
DocVQA, InfographicVQA에서 text-only baslines이 SOTA거나 근접하다.