MakeAI 딥러닝

경량 VLM으로 대형 모델을 이기는 법 — 도메인 특화의 힘

범용 대형 모델 대비 작은 특화 모델이 문서 파싱에서 앞서는 이유를 실험으로 보여드려요. 그리고 지는 경우도 솔직하게요.

3분 읽기

1월 첫 글에서 약속한 실험 결과예요. "작은 모델이 큰 모델을 이기는 조건과 지는 조건을 솔직하게 쓰겠다"고 했는데, 반년 걸렸네요. 결론부터 말씀드리면 좁은 영역에서는 이기고, 영역 밖으로 나가면 져요. 당연한 얘기 같지만, 어디서 어떻게 갈리는지가 중요해요.

실험 설정

비교한 건 두 가지예요.

  • 범용 대형 VLM(비전-언어 모델): API로 호출하는 최신 상용 모델. 이미지와 지시를 주면 표를 Markdown으로 내 줘요.
  • 저희 경량 모델 파이프라인: 레이아웃 검출 + 표 구조 인식 + 글자 인식, 합쳐서 수억 파라미터 수준. 한국 공공·금융 문서로 추가 학습했어요. GPU 한 장에서 돌아가요.

데이터는 세 묶음이에요.

묶음 내용 학습 데이터와의 관계
A 한국 공공기관 HWP→PDF 표 (병합 셀 많음) 같은 종류로 학습함
B 한국 금융 스캔 문서 (신청서, 약관) 비슷한 종류로 학습함
C 영문 논문 표, 영수증, 손글씨 메모 학습 안 함

지표는 2월 3일 글의 숫자 셀 정합률과 행 밀림 건수예요. 정답은 HWP 원본 구조에서 뽑거나 사람이 라벨링했어요.

결과: A·B에서는 경량 모델이 앞서요

A 묶음(공공 문서 표)에서 경량 모델의 숫자 셀 정합률이 대형 모델보다 뚜렷하게 높았어요. 차이가 난 이유를 뜯어보면 이래요.

  • 병합 셀. 대형 모델은 세로 병합을 자주 풀어 쓰면서 행을 밀었어요. 저희 모델은 셀 구조를 먼저 검출하고 글자를 넣기 때문에 밀림이 거의 없어요.
  • 숫자 환각. 대형 모델은 흐린 숫자를 "그럴듯한" 숫자로 채웠어요. 1,234,567을 1,234,587로요. 저희 모델은 글자 단위 신뢰도가 낮으면 그 셀을 저신뢰로 빼요. 틀리게 읽는 대신 못 읽었다고 해요.
  • 한글 특수 서식. 괄호 안 음수 표기 "(1,234)", 단위 행 "(단위: 천원)" 처리가 학습한 쪽이 당연히 나아요.

B 묶음(스캔 문서)에서도 앞섰는데 차이는 A보다 작았어요. 스캔 품질이 나쁜 문서에서는 둘 다 떨어졌고요.

결과: C에서는 져요

영문 논문 표에서는 대형 모델이 더 나았어요. 영수증과 손글씨에서는 많이 졌어요. 저희 모델은 본 적 없는 레이아웃에서 표 검출 자체를 놓쳤고, 손글씨 인식은 거의 안 됐어요. 대형 모델은 뭐든 "대충은" 읽어요. 그게 범용의 힘이에요.

그러니까 결론은요

  • 문서 종류가 정해져 있고, 그 종류의 데이터가 있으면 작은 특화 모델이 더 정확하고, 훨씬 싸고, 폐쇄망에서 돌아가요.
  • 문서 종류가 뭐가 올지 모르면 대형 범용 모델이 안전해요.
  • 저희 고객은 대부분 전자예요. 공공기관은 공공 문서를, 금융사는 금융 문서를 처리하니까요. 그래서 저희는 작은 모델에 집중해요.

그리고 둘을 같이 쓰는 방법

실제 제품에서는 섞어 써요.

  • 레이아웃·표 구조·글자 인식은 경량 모델이 해요. 정확하고 싸고 좌표가 나와요.
  • 뽑힌 텍스트를 요약하거나 질문에 답하는 건 언어 모델이 해요. 폐쇄망이면 저희가 설치한 중형 모델, 아니면 API 모델이요.
  • 경량 모델이 저신뢰로 뺀 셀만 대형 VLM에 다시 물어봐요. 전부 보내면 비싸지만 일부만 보내면 괜찮아요. 단, 대형 모델의 답도 "추정"으로 표시해요.

이 조합이 비용과 정확도 양쪽에서 제일 나았어요.

솔직한 한계

이 실험은 저희 데이터, 저희 지표예요. 다른 문서, 다른 지표(예: TEDS)로 재면 결과가 달라질 수 있어요. 특히 대형 모델은 몇 달마다 좋아져서, 지금 결과가 연말에도 같을 거라고 장담은 못 해요. 그래서 저희는 이 비교를 분기마다 다시 돌려요. 결과가 뒤집히면 블로그에 쓸게요.

다음 주는 멀티모달 AI가 문서 이해에서 왜 필요한지, 동작 원리를 쉽게 설명해 볼게요.