📃 논문 링크
DEPLOT: One-shot visual language reasoning by plot-to-table translation
주제: 그래프와 차트를 이미지처럼 인식하여 표 형태의 자연어로 풀어내는 모델(Plot-to-Table Translation)인 DEPLOT
핵심 아이디어
-
그래프(차트)와 같은 시각적 언어에 대한 멀티모달 추론은 이미지에서 정보 추출, 추출한 정보 정리, 정보를 바탕으로 추론 수행으로 이뤄지는 복잡한 작업이다. 그래서 기존의 SOTA(State of the Art) 모델인 'MATCHA' 는 ChartQA에서 38.2%의 정확도밖에 거두지 못했다.
-
이를 개선하기 위한 방안으로 DEPLOT 모델을 연구하였으며,
(1) plot-to-Text Translation
(2) 텍스트에 대한 추론(Chain of Thought, Self-Consistency 사용)
2가지 과정을 거쳐 그래프(차트) 데이터에 대한 QA를 가능하게 한다.
-
Plot-to-Table의 정확도를 객관적으로 평가하기 위해, 일반화된 Plot-to-Table을 위한 평가 메트릭을 제안한다.
| DePlot: Plot to Table 수행, LLM: Table로부터 추론 수행 |
|---|
 |
Plot-to-Table Translation 평가 메트릭 표준화
- 기존 Plot-to-Table 평가 메트릭에서의 문제와 개선사항
- table에서의 행, 열의 순서와 위치에 따라 평가 결과가 바뀌지 않아야 함
- 어느 정도의 숫자, 텍스트 값의 오류는 허용하되, 패널티를 줌
- 정밀도, 재현율 기반의 손실 반영 -> 최종적으로 f1-score 계산까지 가능하게 해야 함
-
table을 숫자의 집합이 아닌 행(r), 열(c), header에서의 단일값 v의 순서없는 mapping 집합으로 보기
[N x M 테이블에 값 v 매핑하기]
PredictedTable:P={pi}1≤i≤N,pi=(pir,pic,piv)
TargetTable:T={tj}1≤i≤N,tj=(tjr,tjc,tjv)
-
값 v가 단어일 경우와 숫자일 경우를 나눈 다음 다시 병합하여 평가하기
- 단어(문자열): NLD 거리를 활용하여 평가
-> pi와 tj 간의 거리 표기: NLτ(pr∣∣pc,tr∣∣tc) (||: 행렬 간 연결)
*NLD(Normalized Levenshtein Distance): 두 문장(단어)가 얼마나 다른지 평가하는 값
- 숫자: 상대적 거리를 활용하여 평가
-> Dθ(p,t)=min(1,∣∣p−t∣∣/∣∣t∣∣)
<단어와 숫자 합치기>
Dτ,θ(p,t)=(1−NLτ(pr∣∣pc,tr∣∣tc))(1−Dθ(pv,tv))
-> 0과 1 사이의 값으로 0은 가장 다르다
이 값으로 RMS(Root Mean Square) 값 계산 가능, 평가 지표로 사용 가능
RMSprecision=1−NΣi=1NΣj=1MXijDτ,θ(pi,tj)
RMSrecall=1−MΣi=1NΣj=1MXijDτ,θ(pi,tj)
Plot-to-Table 훈련, LLM 프롬프트
Plot-to-Table
- SOTA visual language model MATCHA의 구조, weights 가져오기
- 해당 모델에 대해 그래프와 테이블 데이터를 집어넣으면서 finetuning 진행
- 테이블은 '|'로 열을 구분하고, 행은 '\n'으로 구분하도록, 방향은 왼쪽에서 오른쪽으로 생성하도록 훈련
LLM 프롬프트
- Chain of Thought: 논리성 가지기
- Self-Consistency: greedy하게 하나의 답변에 의존하는 것 피하기
학습, 평가 결과

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