[논문 읽기] DEPLOT: 그래프를 표로 변환하기

김예지·2024년 5월 28일
0

논문 읽기

목록 보기
1/12

📃 논문 링크

DEPLOT: One-shot visual language reasoning by plot-to-table translation

주제: 그래프와 차트를 이미지처럼 인식하여 표 형태의 자연어로 풀어내는 모델(Plot-to-Table Translation)인 DEPLOT

핵심 아이디어

  1. 그래프(차트)와 같은 시각적 언어에 대한 멀티모달 추론은 이미지에서 정보 추출, 추출한 정보 정리, 정보를 바탕으로 추론 수행으로 이뤄지는 복잡한 작업이다. 그래서 기존의 SOTA(State of the Art) 모델인 'MATCHA' 는 ChartQA에서 38.2%의 정확도밖에 거두지 못했다.

  2. 이를 개선하기 위한 방안으로 DEPLOT 모델을 연구하였으며,
    (1) plot-to-Text Translation
    (2) 텍스트에 대한 추론(Chain of Thought, Self-Consistency 사용)
    2가지 과정을 거쳐 그래프(차트) 데이터에 대한 QA를 가능하게 한다.

  3. Plot-to-Table의 정확도를 객관적으로 평가하기 위해, 일반화된 Plot-to-Table을 위한 평가 메트릭을 제안한다.

DePlot: Plot to Table 수행, LLM: Table로부터 추론 수행

Plot-to-Table Translation 평가 메트릭 표준화

  1. 기존 Plot-to-Table 평가 메트릭에서의 문제와 개선사항
  • table에서의 행, 열의 순서와 위치에 따라 평가 결과가 바뀌지 않아야 함
  • 어느 정도의 숫자, 텍스트 값의 오류는 허용하되, 패널티를 줌
  • 정밀도, 재현율 기반의 손실 반영 -> 최종적으로 f1-score 계산까지 가능하게 해야 함
  1. table을 숫자의 집합이 아닌 행(r), 열(c), header에서의 단일값 v의 순서없는 mapping 집합으로 보기

    [N x M 테이블에 값 v 매핑하기]
    PredictedTable:P={pi}1iN,pi=(pir,pic,piv)Predicted Table: P = \{p_i\}1\leq i \leq N, p_i=({p_i^r},{p_i^c},{p_i^v})
    TargetTable:T={tj}1iN,tj=(tjr,tjc,tjv)Target Table: T= \{t_j\}1\leq i \leq N, t_j = ({t_j^r},{t_j^c},{t_j^v})

  2. 값 v가 단어일 경우와 숫자일 경우를 나눈 다음 다시 병합하여 평가하기

  • 단어(문자열): NLD 거리를 활용하여 평가
    -> pip_itjt_j 간의 거리 표기: NLτ(prpc,trtc)NL_\tau(p^r||p^c, t^r||t^c) (||: 행렬 간 연결)
    *NLD(Normalized Levenshtein Distance): 두 문장(단어)가 얼마나 다른지 평가하는 값
  • 숫자: 상대적 거리를 활용하여 평가
    -> Dθ(p,t)=min(1,pt/t)D_\theta(p, t) = min(1, ||p-t||/||t||)

<단어와 숫자 합치기>
Dτ,θ(p,t)=(1NLτ(prpc,trtc))(1Dθ(pv,tv)){D_\tau,\theta}(p, t) = (1-NL_\tau(p^r||p^c, t^r||t^c))(1-D_\theta(p^v, t^v))
-> 0과 1 사이의 값으로 0은 가장 다르다

이 값으로 RMS(Root Mean Square) 값 계산 가능, 평가 지표로 사용 가능

RMSprecision=1Σi=1NΣj=1MXijDτ,θ(pi,tj)NRMS_{precision}= 1 - \frac{\Sigma^N_{i=1} \Sigma^M_{j=1}X_{ij}D_{\tau, \theta}(p_i, t_j)}{N}
RMSrecall=1Σi=1NΣj=1MXijDτ,θ(pi,tj)MRMS_{recall}= 1 - \frac{\Sigma^N_{i=1} \Sigma^M_{j=1}X_{ij}D_{\tau, \theta}(p_i, t_j)}{M}

Plot-to-Table 훈련, LLM 프롬프트

Plot-to-Table

  1. SOTA visual language model MATCHA의 구조, weights 가져오기
  2. 해당 모델에 대해 그래프와 테이블 데이터를 집어넣으면서 finetuning 진행
  3. 테이블은 '|'로 열을 구분하고, 행은 '\n'으로 구분하도록, 방향은 왼쪽에서 오른쪽으로 생성하도록 훈련

LLM 프롬프트

  1. Chain of Thought: 논리성 가지기
  2. Self-Consistency: greedy하게 하나의 답변에 의존하는 것 피하기

학습, 평가 결과


one-shot 컨텍스트 예제 평가로 인한 한계점
1. PlotQA에서 LLM이 수치 추론 부분에서 한계점 확인
2. Char나 Plot 모두 개체 색상, 모양, 방향 등 시각적 속성을 묻는 질문에 대해서는 테이블 데이터로 답할 수 없음. 그래서 글자 형태로 명시되지 않은 시각적 정보 또한 추가 디코딩 필요

관련 코드

profile
넓고 얕게? 좁고 깊게?

0개의 댓글