clovaai / donut

Official Implementation of OCR-free Document Understanding Transformer (Donut) and Synthetic Document Generator (SynthDoG), ECCV 2022
https://arxiv.org/abs/2111.15664
MIT License
5.52k stars 443 forks source link

donut inference시 sub task가 변경? #296

Open kittyLunar opened 2 months ago

kittyLunar commented 2 months ago

donut을 information extraction 에 활용하기 위해 donut-base 모델에

metadata를 {"file_name": {image_path0}, "ground_truth": "{\"gt_parse\": {"td" : [{"title": "name", ...}, ...], ...} 형태로 만들어 10만건의 데이터를 학습 시켰습니다.

그 이후, 학습한 모델을 이용하여 information extraction task를 했습니다. inference 했을 때, 결과도 잘 나왔고, 원하던 information extraction task 를 잘 수행 하고 있었습니다. 이 모델을 "DonutA" 라고 칭하겠습니다.

그렇게 학습된 모델을 이용하여 몇 가지 테스트 하던 중 약 일주일 정도 이후? 동일하게 "DonutA" 에다가 information extraction task 를 하기 위해 inference를 하였는데 갑자기 information extraction이 아닌 text reading을 하기 시작 합니다. 모델을 재학습을 하거나, 특정 소스를 수정하거나 한 부분이 전혀 없습니다. 한번 학습한 모델을 그대로 계속 사용중이었습니다.

inference 해서 output 을 찍어보면 예전에는 title 이 나왔지만 text reading 하는 순간부터 text_sequence : title 으로 나옵니다.

그래서 기존의 학습데이터 중 1만건만 따로 뽑아 새로운 donut-base 모델로부터 학습을 시켰는데 또 동일하게 text_sequence : title 으로 나오고

10만건 학습데이터를 통으로 다시 재 학습을 시켜도 또 동일하게 text reading task 를 진행하지. information extraction task 를 수행하지 않습니다.

train 과정에서 출력되는 결과를 보면

Prediction : title Answer : title Normed ED : 0.0

이렇게 잘 학습이 되는 것 같은데 잘 학습된 모델을 이용하여 inference를 하면 왜 information extraction 이 아닌 text reading 으로 동작을 하는지... 원인을 알 수가 없습니다.

소스를 보면 task 가 docvqa 나 rvlcdip 인 경우 별도의 작업을 하게 되어 있지만. https://github.com/clovaai/donut/blob/4cfcf972560e1a0f26eb3e294c8fc88a0d336626/test.py#L43 https://github.com/clovaai/donut/blob/4cfcf972560e1a0f26eb3e294c8fc88a0d336626/test.py#L51

information extraction task 를 하려고 하는 경우엔 그냥 else 부분을 진행하게 됩니다. 그래서, 특별히 information extraction task를 하도록 지정 해 주는 방법이 있는지도 궁금합니다.

  1. 모델이 작동하는 task 가 갑자기 변경이 되었는데, (일체의 수정 없었음) 이런 현상이 발생 하는 원인에 대해 의심가는것이 있는지? 어떤 부분을 체크 해 보면 좋을지에 대한 조언.

  2. train과 inference 시 information extraction task 로 지정 하는 방법이 있는지

이렇게 2가지가 궁금합니다.

원인 분석 및 문제점을 확인하기 위해 필요한 사항이 있다면, 요청 해 주세요.

답변 부탁 드리겠습니다. 감사합니다.

아래에 있는 https://github.com/clovaai/donut/issues/294 https://github.com/clovaai/donut/issues/287 https://github.com/clovaai/donut/issues/185 이 이슈도, 저와 유사한 상황인 것 같습니다.