DistilVDR: A Compact End-to-End Visual Document Retriever via Dual-Student Distillation
거대 문서검색 AI를 8B 모델 하나에서 뽑아낸 5.24억 파라미터 압축본으로 재현하다
DistilVDR는 80억 파라미터짜리 시각-언어 모델(교사)의 임베딩 공간을 그대로 베끼도록 5.24억 파라미터 학생 모델을 학습시켜, 문서 이미지를 검색하는 시스템을 만들었다. 정답 레이블이나 대조학습 없이 코사인 유사도만으로 학습했는데도 ViDoRe 벤치마크에서 교사 성능의 86.9%를 달성했고, 기존 10억 파라미터 미만 모델들보다 인덱스 저장 용량은 15.6배 작고 색인 속도는 10배 이상 빠르다. HiRes와 Fast 두 버전을 공개해 품질과 속도의 절충점을 선택할 수 있게 했다.
METAL MEDIA 해설 도표
교사 하나에서 두 개의 학생을 뽑아내는 이중 증류 구조
증거 상태측정 결과가 보고됨
고정된 8B 교사질의와 문서 이미지를 각각 4096차원 벡터로 미리 인코딩해 캐시로 저장, 학습 중에는 실행되지 않음
문서 학생(4.54억)이미지를 타일로 나눠 시각 인코더(InternViT)로 처리 후 텍스트 인코더(ModernBERT)로 맥락화, 교사의 문서 벡터를 코사인 손실로 모방
단일 벡터 검색두 학생이 만든 벡터를 내적(dot product)으로 비교해 순위를 매기는 경량 검색 방식, 다중벡터 대비 저장·속도 우위
HiRes/Fast 두 변형문서 인코더의 이미지 타일 개수만 다르게 해 품질-속도 절충점을 두 가지로 제공
METAL MEDIA이 원문을 바탕으로 재구성한 해설 도표이며, 논문 저자의 원문 figure가 아닙니다.
무엇을 했나
문제 정의: 문서를 이미지로 그대로 검색하는 시각 문서검색(VDR)은 OCR 오류를 피할 수 있지만, 최상위 모델들이 20억~80억 파라미터로 너무 크고 인덱싱에 GPU 수십 시간이 걸린다.
방법: 80억 파라미터 교사 모델(Qwen3-VL-Embedding-8B)이 미리 만들어둔 임베딩 벡터를 목표값으로 고정해두고, 문서용 학생(4.54억)과 질의(텍스트 검색어)용 학생(0.7억)을 각각 독립적으로 코사인 유사도만으로 따라 학습시켰다. 이 방식은 정답 레이블이나 부정 샘플링이 필요 없다.
구조: 문서 인코더는 이미지를 여러 타일로 잘라 시각 인코더(InternViT)로 처리한 뒤 텍스트 인코더(ModernBERT)로 다시 맥락화하고, 질의 인코더는 텍스트만 처리하는 가벼운 DistilBERT를 사용해 양쪽의 입력 특성(이미지 대 텍스트)에 맞춘 비대칭 구조를 만들었다.
결과: HiRes 버전은 ViDoRe 세 버전 평균 NDCG@5 61.74점(교사의 86.9%)을 기록해 10억 미만 모델 중 최고였고, Fast 버전은 시각 토큰을 3배 줄여도 59.98점을 유지했다. 두 버전 모두 문서 100만 건 저장 시 기존 최강 소형 모델보다 인덱스가 15.6배 작고 색인 속도가 훨씬 빠르다.
Figure 2: Per-epoch train (blue) and validation (red) loss for the document students DistilVDR-HiRes (solid) and DistilVDR-Fast (dashed) on top, and the shared query student on bottom.
Table 1: Retrieval quality (NDCG@5) on ViDoRe v1, v2 and v3. “Type” is single vector or multi-vector with MaxSim.
Model
Params
Type
v1
v2
v3
Avg
Sub-1 B
SigLIP2-L
880 M
single
43.58
20.17
14.04
25.93
BiModernVBERT
250 M
single
37.40
10.88
5.52
17.93
colSmol-256M
256 M
multi
79.72
34.63
25.23
46.53
colSmol-500M
478 M
multi
82.42
43.09
33.52
53.01
ColModernVBERT
250 M
multi
76.76
33.18
17.45
42.46
SauerkrautLM-ColLFM2
451 M
multi
78.24
45.09
33.19
52.17
DistilVDR-Fast (ours)
524 M
single
81.34
54.95
43.66
59.98
DistilVDR-HiRes (ours)
524 M
single
82.81
55.34
47.07
61.74
Mid- to large-scale references
DSE-Qwen2
2.2 B
single
85.14
55.70
41.28
60.71
Qwen3-VL-Embedding-2B
2.1 B
single
84.30
65.25
49.98
66.51
ColPali v1.3
2.9 B
multi
84.21
54.72
42.04
60.32
Tomoro-ColQwen3-4B
4.4 B
multi
90.22
65.25
57.57
71.01
ColNomic-7B
7.0 B
multi
89.76
60.44
55.87
68.69
Tomoro-ColQwen3-8B
8.8 B
multi
90.61
65.00
59.00
71.54
Qwen3-VL-Embedding-8B (teacher)
8.1 B
single
87.31
69.76
56.07
71.05
Table 2: Gap decomposition (NDCG@5) for DistilVDR-HiRes. T = teacher, S = student. Bottom row is the full system.
Query × Doc
v1
v2
v3
Avg
T × T (oracle)
87.31
69.76
56.07
71.05
T × S
83.72
60.92
50.43
65.02
S × T
84.68
64.30
50.09
66.36
S × S (ours)
82.81
55.34
47.07
61.74
Table 3: Deployment efficiency on a single H200 GPU at fixed batch size B=8 in bf16. Each encoder runs under its best-supported flash-attention backend Dao et al. (2022); Dao (2024); per-baseline details are in Appendix G. Index size is per million documents. Avg NDCG@5 from Table 1 is repeated for reference. In each efficiency column we bold the column-best and underline the second-best.
Model
Params
Type
Query (ms)
Query
(ms)
Doc thpt (docs/s)
Doc thpt
(docs/s)
Peak VRAM (GB)
Peak VRAM
(GB)
Index / 1 M
Index
/ 1 M
Score 10 K (ms)
Score 10 K
(ms)
Avg NDCG@5
Avg
Query
(ms)
Doc thpt
(docs/s)
Peak VRAM
(GB)
Index
/ 1 M
Score 10 K
(ms)
Avg
NDCG@5
Sub-1 B
SigLIP2-L
880 M
single
113.8
28.22
1.98
4.1 GB
1.3
25.93
BiModernVBERT
250 M
single
7.4
2.49
7.47
3.1 GB
0.9
17.93
colSmol-256M
256 M
multi
23.6
2.58
4.49
256 GB
1 259
46.53
colSmol-500M
478 M
multi
22.6
2.82
4.97
256 GB
1 161
53.01
ColModernVBERT
250 M
multi
61.8
3.06
4.26
256 GB
1 238
42.46
SauerkrautLM-ColLFM2
451 M
multi
8.5
19.02
2.56
256 GB
1 330
52.17
DistilVDR-Fast (ours)
524 M
single
3.4
99.04
2.10
16.4 GB
9.6
59.98
DistilVDR-HiRes (ours)
524 M
single
3.4
36.82
3.07
16.4 GB
9.6
61.74
Mid- to large-scale references
DSE-Qwen2
2.2 B
single
167.4
17.17
6.31
6.1 GB
2.2
60.71
Qwen3-VL-Embedding-2B
2.1 B
single
14.5
8.53
7.03
8.2 GB
3.4
66.51
ColPali v1.3
2.9 B
multi
266.7
17.24
7.81
264 GB
1 158
60.32
Tomoro-ColQwen3-4B
4.4 B
multi
266.4
11.91
12.93
819 GB
3 187
71.01
ColNomic-7B
7.0 B
multi
542.6
9.96
17.88
256 GB
1 206
68.69
Tomoro-ColQwen3-8B
8.8 B
multi
499.3
9.20
21.76
819 GB
3 176
71.54
Qwen3-VL-Embedding-8B (teacher)
8.1 B
single
19.8
5.40
19.28
16.4 GB
9.4
71.05
Table 4: Document- and query-encoder ablations, NDCG@5. Blocks (a) and (b) are end-to-end student×student; block (c) is doc-side isolation (student documents against teacher queries); block (d) is query-side isolation (student queries against teacher documents), whose teacher×teacher ceiling is 71.05 average. Absolute values are therefore comparable within a block, not across blocks. † marks the deployed default.
Variant
v1
v2
v3
Avg
(a) Max tiles (end-to-end)
0 (no tiling)
77.57
51.29
41.00
56.62
2 (Fast)
81.34
54.95
43.66
59.98
6 (HiRes, default)
82.81
55.34
47.07
61.74
(b) Training-data scale (end-to-end)
25 % (300 K)
78.35
49.69
40.75
56.26
50 % (600 K)
80.97
54.44
44.58
60.00
75 % (900 K)
82.40
56.58
46.05
61.68
100 % (1.20 M, default)
82.81
55.34
47.07
61.74
(c) Doc output dim (doc-side isolation)
768-d (3.07 GB/1 M)
81.40
58.44
45.66
61.83
4096-d (16.4 GB/1 M)†
83.72
60.92
50.43
65.02
(d) Query backbone (query-side isolation)
DistilBERT-base (70 M)†
84.68
64.30
50.09
66.36
BERT-base (110 M)
81.81
58.52
44.55
61.63
ModernBERT-base (149 M)
85.36
65.40
51.43
67.40
Table 5: Contrastive-supervision ablation under Eq. 3. All rows are one-epoch joint refinements from the cosine-distilled 768-d sibling checkpoint; absolute NDCG@5 is below Section 4.2 because of the 768-d output.
Refinement objective
v1
v2
v3
Avg
γ=0 (cosine only)
79.90
53.23
42.22
58.45
+ 0.5ℒInfoNCE
80.47
52.08
42.44
58.33
+ 1.0ℒInfoNCE
80.48
51.80
42.41
58.23
+ 2.0ℒInfoNCE
80.25
51.31
42.30
57.95
+ 0.5ℒKL
80.32
52.31
42.30
58.31
+ 1.0ℒKL
80.20
52.55
42.34
58.36
+ 2.0ℒKL
80.31
52.54
42.44
58.43
Table 6: All 22 ViDoRe evaluation datasets. “Doc” is the document corpus language. “Query” is the languages in which queries are released. “Source” indicates how the queries were obtained: H = human-authored, L = LLM-generated, L+H = LLM-generated with expert review. The six languages of v3 are English, French, Spanish, German, Italian, and Portuguese.
Dataset
Ver.
Document domain
Doc
Query
Source
DocVQA
v1
Industrial documents
EN
EN
H
ArXivQA
v1
Scientific papers
EN
EN
H
InfoVQA
v1
Infographics
EN
EN
H
TatDQA
v1
Financial tables
EN
EN
H
TabFQuAD
v1
Tables in French PDFs
FR
FR
H
SyntheticDocQA-AI
v1
AI documents
EN
EN
L
SyntheticDocQA-Energy
v1
Energy sector reports
EN
EN
L
SyntheticDocQA-Gov.
v1
Government reports
EN
EN
L
SyntheticDocQA-Hlt.
v1
Healthcare documents
EN
EN
L
ShiftProject
v1
Environmental reports
FR
FR
L
ESG Reports
v2
ESG / sustainability
EN
EN/FR/ES/DE
L+H
Biomedical Lectures
v2
Biomedical slides
EN
EN/FR/ES/DE
L+H
Economics Reports
v2
Economics reports
EN
EN/FR/ES/DE
L+H
ESG Reports (Human)
v2
ESG / sustainability
EN
EN
H
Finance-EN
v3
US annual reports
EN
6 languages
L+H
Finance-FR
v3
French annual reports
FR
6 languages
L+H
Computer Science
v3
CS textbooks
EN
6 languages
L+H
HR
v3
EU HR reports
EN
6 languages
L+H
Energy
v3
French energy reports
FR
6 languages
L+H
Industrial
v3
USAF technical orders
EN
6 languages
L+H
Pharmaceutical
v3
FDA reports
EN
6 languages
L+H
Physics
v3
French physics lectures
FR
6 languages
L+H
Table 7: Training data composition. HuggingFace identifiers are hyperlinked; the organisation prefix is omitted in the second and third groups.
Source
Samples
Base mixture (711 K)
VisRAG-Ret-Train-Synthetic Yu et al. (2025)
234 K
VisRAG-Ret-Train-In-domain Yu et al. (2025)
94 K
colpali_train_set Faysse et al. (2025)
109 K
vdr-multilingual-train
275 K
Multi-domain supplement (Racineai, deduplicated)
racineai/VDR_* (14 sub-sources)
454 K
Finance supplement (31.7 K)
Sujet-Finance-Vision-10k
9.8 K
FinHNQue
21.9 K
Document encoder total
1.20 M
Query encoder mixture
NanoVDR query training set Liu et al. (2026)
1.49 M
Table 8: Training recipe under the cosine alignment objective (Eq. 1–2).
Hyperparameter
Doc enc.
Query enc.
Trainable parameters
454 M
70 M
Optimizer
AdamW
AdamW
Peak LR
1×10−3
5×10−4
LR schedule
one-cycle, 3% warmup
Effective batch
256
512
Epochs
3
15
Hardware
2× H200
2× H200
실제로 확인된 결과
ViDoRe v1+v2+v3 평균 NDCG@5에서 HiRes는 61.74점(교사 8B 모델의 86.9%)을 기록했고, 10억 파라미터 미만 최강 기존 모델(colSmol-500M, 53.01점)보다 8.73점 앞섰다.
Fast 버전은 시각 토큰 예산을 3배 줄였음에도 59.98점을 유지해 여전히 모든 10억 미만 기존 모델을 능가했다.
두 변형 모두 문서 100만 건 저장 시 기존 최강 10억 미만 다중벡터 모델보다 인덱스가 15.6배 작고(16.4GB vs 256GB), 색인 속도는 한 자릿수 이상 빨랐다(Fast는 초당 99.04문서, 교사 대비 약 18배).
질의 인코딩은 두 변형 모두 3.4밀리초로 비교 대상 중 가장 빨랐고, 문서 100건 기준 채점(scoring)도 단일벡터 방식이 다중벡터 MaxSim보다 100배 정도 빨랐다.
어디에 쓸 수 있나
대량의 스캔 문서·보고서를 이미지 그대로 색인해 빠르게 검색해야 하는 기업 문서 검색 시스템
시각 정보(표, 그림, 레이아웃)를 보존한 채 검색 결과를 언어모델에 넘기는 시각 검색증강생성(RAG) 파이프라인
GPU 메모리와 서버 비용이 제한된 환경에서 대형 시각-언어 임베딩 모델을 대체할 경량 검색기 도입
기존 대형 임베딩 모델의 성능을 유지하면서 인덱스 저장 공간을 크게 줄여야 하는 대규모 문서 아카이브 구축
한계와 남은 검증
논문에서 비교한 모든 기준선은 각자 공개된 모델을 그대로 평가한 것이라 교사, 학습 데이터, 구조가 서로 달라 성능 차이를 증류 기법 하나로만 돌릴 수 없다.
같은 구조를 대조학습으로 처음부터 학습시켜 증류 효과만 따로 확인하는 통제 실험은 수행되지 않았다.
교사 모델을 하나만 사용했고 다른 규모나 계열의 교사로 바꿨을 때 품질이 어떻게 달라지는지는 확인되지 않았다.
4~8B급 최상위 다중벡터 모델과는 여전히 7~10점 격차가 있고, 특히 v3에서 가장 크다.
질의 인코더는 영어와 5개 유럽어(번역 기반)만 다루며 이미지 기반 질의나 중국어·일본어·아랍어 같은 비라틴 문자는 다루지 않고, 문서당 시각 토큰 예산이 고정되어 있어 페이지 복잡도에 따라 조절되지 않는다.
왜 중요한가
거대 AI 검색 모델을 서비스에 쓰려면 GPU 메모리와 인덱싱 시간이 큰 부담인데, 이 방식은 정답 데이터 없이 큰 모델의 임베딩만 베껴서 작고 빠른 검색기를 만들 수 있음을 보여준다. 기업 문서 검색이나 시각 기반 RAG(검색 증강 생성) 같은 실무 시스템을 저비용으로 구축하려는 개발자에게 실질적인 설계 지침이 된다.
이 논문의 용어
시각 문서검색(VDR) · 문서를 텍스트로 추출하지 않고 이미지 그대로 인코딩해 검색하는 방식
코사인 정렬 손실 · 학생 모델의 벡터 방향을 교사 모델의 벡터 방향과 최대한 같게 맞추도록 학습시키는 손실 함수
단일 벡터 vs 다중 벡터 검색 · 문서 하나를 벡터 하나로 표현(저장 적음)할지, 토큰마다 여러 벡터로 표현(저장 많지만 정밀)할지의 방식 차이
NDCG@5 · 검색 결과 상위 5개의 순위 품질을 평가하는 지표, 높을수록 좋음
MaxSim · 다중 벡터 검색에서 질의와 문서의 토큰 벡터쌍 중 가장 유사한 값을 골라 점수를 매기는 방식