2024년의 답은 명확해 보였다. OCR·레이아웃 분석·청킹을 전부 버리고 PDF 페이지를 이미지 그대로 VLM에 넣어 late interaction으로 검색하는 ColPali가 ViDoRe v1에서 전통 OCR 파이프라인을 0.81 vs 0.66으로 압도했기 때문이다. 그런데 2026년의 ViDoRe v3 결과를 보면 그림이 뒤집혔다.
ViDoRe v3: 차이를 만든 건 모달리티가 아니라 리랭커였다
v3는 실제 기업 문서 8개 도메인에서 모델이 아니라 파이프라인 전체(OCR→청킹→임베딩→재순위)를 등록하고 인덱싱·검색 시간까지 기록한다. HR 도메인(1,110페이지/318쿼리, A100 1장) 결과 일부:
| 파이프라인 | NDCG@5 | 인덱싱 ms/page | 검색 ms/query |
|---|---|---|---|
| 텍스트 임베딩 단독(경량) | 0.501 | 4.6 | 4.0 |
| 시각 late-interaction(8B) | 0.664 | 443.2 | 1,146 |
| 텍스트 + 강한 리랭커 | 0.666 | 145.1 | 9,786 |
| 에이전틱(VLM + Opus 4.5) | 0.731 | 61.6 | 101,715 |
금융 도메인에서는 격차가 더 분명하다 — 텍스트+리랭커 0.724 > 시각 late-interaction 0.680(텍스트 단독은 0.519). 즉 2024년의 승부는 "시각 vs OCR"이 아니라 "좋은 후처리가 있느냐"였던 셈이다. 인프라 차이도 크다: 인덱싱이 4.6ms vs 443ms/page(10만 페이지면 8분 vs 12.3시간)이고, 시각 방식은 페이지당 1,030벡터라 float32로 10만 페이지 51.5GB가 필요하다. 바이너리 양자화하면 1.6GB로 32배 줄고 nDCG 손실은 1점 미만이니 사실상 필수다.
파서를 고르는 법 — 기준은 표(TEDS)다
범용 VLM에 페이지를 그냥 던지는 게 가장 나쁜 선택이다. OmniDocBench 종합 점수는 PaddleOCR-VL 96.34 / MinerU2.5-Pro(1.2B) 95.75 / GPT-4o 86.59 / Marker 78.44인데, 표 인식(TEDS)만 보면 94.76 vs 82.95 vs 65.77로 격차가 더 벌어진다. 1.2B 전용 모델이 프런티어 모델보다 9점 높고 수백 배 싸다.
10만 페이지 기준 단가는 이렇다 — Mistral OCR 약 $100(1,000페이지당 $1), Upstage Document OCR 약 $150, Document Parse 약 $1,000(Enhanced $3,000), Docling 자체 호스팅은 CPU 16코어로 약 17.7시간에 한 자릿수 달러. 여기서 중요한 비교가 하나 나온다. Contextual Retrieval의 청크 맥락 생성이 페이지당 약 $0.0005인데 Upstage DP는 $0.01/page다 — 전처리 LLM보다 파싱이 20배 비싸다. 원가를 줄이려면 임베딩 모델이 아니라 파서 등급을 먼저 손봐야 한다는 뜻이고, 반대로 표가 중요한 문서라면 그 $1,000이 유일하게 값을 하는 지출이다.
모달리티마다 청구서가 다르다
- 표(정형 DB) — text-to-SQL. BIRD 최고 81.95% vs 인간 92.96%(⑥편). 5건 중 1건은 틀린다는 전제로 설계.
- 표(문서 안) — Markdown/HTML로 직렬화하고 헤더를 모든 청크에 복제. 통째로 한 청크에 넣으면 컨텍스트가 폭발한다.
- 차트·그래프 — 아직 자동화 금지 구역이다. CharXiv에서 사람 80.5% vs GPT-4o 47.1%, 최고 오픈소스 29.2%. 사전 캡셔닝을 믿지 말고 원본 이미지를 보존해 질의 시 VLM에 직접 넣는 편이 낫다.
- 음성 — STT 후 텍스트 RAG. Deepgram Nova-3 시간당 약 $0.26, Whisper 계열 $0.36. 타임스탬프를 메타데이터로 남겨야 근거 재생이 된다.
- 영상 — 전용 영상 인덱싱은 시간당 $2.52로 STT 경로의 약 10배다. ASR+OCR+객체탐지를 텍스트로 떨어뜨리는 Video-RAG 방식이 학습 없이도 상위 모델을 앞선 사례가 있다. 먼저 텍스트로 떨어뜨릴 수 있는지 묻고, 안 될 때만 멀티모달로.
코드 RAG — 벡터 DB를 만들기 전에 물어볼 것
이 영역은 "임베딩이냐 grep이냐"가 아니라 코드베이스 크기의 문제로 정리됐다. Cursor의 자체 측정에서 시맨틱 검색은 grep 대비 정답률 평균 +12.5%이지만 코드 유지율은 전체 +0.3%였고, 파일 1,000개 이상 코드베이스에서만 +2.6%로 의미 있어졌다. Anthropic은 Claude Code에서 파일 경로 같은 식별자만 들고 런타임에 grep/head/tail로 회수하는 just-in-time 방식을 쓰되 하이브리드를 권한다. 극단적으로는 Agentless가 임베딩 검색 없이 디렉터리→파일→함수 순 탐색만으로 SWE-bench Lite 32%를 이슈당 $0.70에 달성했다 — 저장소 구조가 이미 좋은 인덱스라는 뜻이다.
인덱스를 만들기로 했다면, 임베딩 모델보다 청킹을 고치는 게 싸다. AST 기반 청킹(cAST)만으로 RepoEval Recall@5 +4.3, SWE-bench Pass@1 +2.67이 나왔다. 그리고 진짜 운영 비용은 임베딩 단가가 아니라 재인덱싱 빈도다.
한국 문서에는 0단계가 하나 더 있다
Mistral OCR, Docling, Marker, LlamaParse — 어디도 HWP/HWPX를 네이티브로 받지 않는다. PDF로 변환해 넘기면 표 구조가 깨진다. 2026년 상반기에만 순수 Python HWP/HWPX 파서 저장소가 여러 개 새로 생겼고 공통 기능이 "표를 Markdown/CSV로 직접 추출"인 것 자체가 이 공백의 증거다. 공공·금융 RAG라면 HWP 전용 파서가 파이프라인 0단계다.
그리고 ViDoRe v3에는 한국어 스플릿이 없다(영어 7 + 프랑스어 1). Upstage의 DP-Bench(TEDS 93.48)와 표 인식 연구(TFLOP), CLOVA OCR 정도가 국내 레퍼런스이고, 한국어 문서 RAG의 성능은 결국 자체 평가셋으로 재는 수밖에 없다. 마침 다음 글의 주제가 그것이다.
— RAG 종류 총정리 시리즈 ⑧ / 다음 글: 평가 — 무엇을 어떻게 재야 개선이 증명되나
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.