Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

donut inference시 sub task가 변경? #296

Open
kittyLunar opened this issue Apr 16, 2024 · 0 comments
Open

donut inference시 sub task가 변경? #296

kittyLunar opened this issue Apr 16, 2024 · 0 comments

Comments

@kittyLunar
Copy link

kittyLunar commented Apr 16, 2024

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 을 찍어보면
예전에는 <s_name> title </s_name> 이 나왔지만
text reading 하는 순간부터 text_sequence : title </s_name> 으로 나옵니다.

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

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

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

Prediction : <s_name> title </s_name>
Answer : <s_name> title </s_name>
Normed ED : 0.0

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

소스를 보면 task 가
docvqa 나 rvlcdip 인 경우 별도의 작업을 하게 되어 있지만.

donut/test.py

Line 43 in 4cfcf97

if args.task_name == "docvqa":

donut/test.py

Line 51 in 4cfcf97

if args.task_name == "rvlcdip":

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

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

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

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

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

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

아래에 있는
#294
#287
#185
이 이슈도, 저와 유사한 상황인 것 같습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant