https://arxiv.org/pdf/2407.01449
ColPali: EFFICIENT DOCUMENT RETRIEVAL WITH VISION LANGUAGE MODELS에 대해 정리해 보겠습니다
ColPali의 기본 구조는 아래 그림과 같습니다
먼저 기존 방법들의 대표적인 구조입니다

<ColPali>

그림으로 먼저 모델의 아키텍쳐를 분석해 보면 OCR, Layout Detection, captioning, chunking 등이 없어지고 Vision LLM이 삽입된 것을 볼 수 있습니다. 또한 시간도 엄청 단축되었고, query가 LLM을 거쳐서 나오는 것도 다른 것 같습니다
이제 이 배경을 가지고 어떤 장점이 있고, 어떻게 적용되었는지를 보겠습니다
ABSTRACT
시각적 자료를 처리하는데, 기존 RAG기법이 어려움을 겪는다
우리의 모델 ColPali는 문서 페이지 이미지를 직접 임베딩하여 검색하는 새로운 방식으로 기존 텍스트
기반 방식보다 훨씬 간단하고 빠르며 엔드 투 엔드로 학습한다
그리고 ViDoRe에서 성능을 평가받았다
INTRODUCTION
여기서는 기존 방법의 한계와 발전 가능성을 언급합니다
텍스트 임베딩 모델이 발전했지만, "데이터 전처리 과정"에서 최적화가 중요하다고 합니다
PDF문서를 indexing 하려면
PDF파싱 또는 OCR -> 텍스트 추출
문서 레이아웃 분석 -> 제목, 단락, 표, 그림 등 구분
텍스트 chunking -> 의미적으로 관련된 단락으로 그룹화
captioning -> 표나 그림을 설명하는 문장 생성
와 같은 여러 단계가 필요한데 이런 복잡한 과정이 제대로 최적화되지 않으면, 아무리 좋은 임베딩 모델을 써도 검색 성능이 낮아진다고 합니다
In our experiments (Table 2), we typically find that optimizing the ingestion pipeline yields much better performance on visually rich document retrieval than optimizing the text embedding model
문서 전처리(ingestion pipeline)를 최적화하는 것이 임베딩 모델을 개선하는 것보다 검색 성능 향상에 더 큰 영향을 준다고 합니다
We propose a novel concept and model architecture based on Vision Language Models (VLMs) to efficiently index documents purely from their visual features, allowing for subsequent fast query matching with late interaction mechanisms (Khattab & Zaharia, 2020).
기존 검색 시스템은 텍스트를 기반으로 indexing 하지만, ColPali는 텍스트를 추출하지 않고 이미지 자체에서 정보를 뽑는다고 합니다. 즉 OCR을 거치지 않고 문서의 전체적인 시각적 구조만을 활용하여 검색을 수행한다는 게 기존 방식과 다르다는 뜻이겠네요
PROBLEM FORMULATION & RELATED WORK
(R1) strong retrieval performance, as measured by standard retrieval metrics;
(R2) fast online querying, measured through average latencies;
(R3) high throughput corpus indexation, ie. the number of pages that can be embedded in a given timeframe.
문서 검색 시스템은 위 3가지 조건을 만족해야 하는데
R1:평가지표를 만족할 강력한 검색 성능
R2:빠른 검색 속도
R3:높은 처리량
이렇게 3가지를 보완하려고 했으며 연구에서는 "문서"가 아니라 "페이지 단위"로 검색을 수행하여 problem setting을 하였습니다

여기가 중요한 부분이라고 생각하는데요, ColBERT가 언급됩니다. ColBERT는 Bi-Encoder처럼 빠르고 Cross-Encoder처럼 정교한데 ColBERT의 핵심 아이디어는 문서 전체를 하나의 벡터로 변환하지 말고, 단어(토큰) 단위로 벡터를 저장하는 것입니다

이제 PaliGemma에 대한 설명이 등장합니다. ColPali는 ColBERT와 PaliGemma가 합쳐진 모델이기 때문에 Paligemma의 설명도 빠질 수 없습니다. 이 모델은 Pali3을 개선해서 patch를 텍스트와 잘 맞게 변환해 주는데 특징은 full-block attention으로 이미지와 텍스트를 처음부터 끝까지 비교하며 학습한다는 것입니다.
결론적으로 이러한 설명들이 말하고자 하는 것은 이미지와 텍스트를 함께 이해하는 기술이 어떻게 발전했냐를 설명하고 있고 과거에는 이미지와 텍스트를 따로따로 봤다면, 이제는 이 둘을 연결하여 더 똑똑하게 보려고 노력 중입니다.
다음으로는 새로운 벤치마크인 <THE ViDoRe BENCHMARK>입니다
텍스트 검색 벤치마크는 텍스트 구절 수준에서 평가되며, 문서 검색(document retreival) 작업에 맞춰지지 않았다고 합니다. 여기서 이들은 ViDoRe를 통해 시각적 특징을 활용한 문서 검색 벤치마크를 소개합니다
Academic Task, Practical Task로 Academic Task는 시각적 질의응답용으로 만들어진 데이터셋을 검색용으로 바꾼 것이고 Practical Task는 공개된 PDF를 모은 뒤 Claude-3 Sonnet이라는 AI로 질문(쿼리)을 만들었다고 합니다
평가지표는 nDCG, Recall@K, MRR와 같은 표준 방법을 사용했고 위에서 언급한 R2, R3도 체크합니다
이 벤치마크로 평가를 해봤을 때 시각 정보를 추가하면 성능은 좋아지는데, 시간은 많이 걸리며 텍스트 처리 방법을 어떻게 하냐는 비슷했다는 얘기도 나옵니다.
LATE INTERACTION BASED VISION RETRIEVAL
제일 중요한 부분인 것 같습니다
여기서 ColPali에 대해 자세하게 설명하기 시작합니다
먼저 Vision Language Model 이 왜 중요한지 설명합니다-줄여서 VLM
VLM은 이미지와 텍스트를 동시에 이해하는 모델로 이 모델이 문서 검색에 유용할 것이고 , 따라서 기존 VLM을 검색용으로 바꿔보자는 제안을 합니다


vidore/colpali_train_set · Datasets at Hugging Face
You are an assistant specialized in Multimodal RAG tasks. The task is the following: given an image from a pdf page, you will have to generate questions that can be asked by a user to retrieve information from a large documentary corpus. The question shoul
huggingface.co
데이터형식 : bfloat16
optimizer : paged adamw 8bit
배치 크기 : 32
GPU 수 : 8
learning rate : 5e-5
warm up step:2.5%, linear decay 적용
그리고 Query Augmentation이라고 하는 방법을 적용했습니다
쿼리에 unused0이라는 의미 없는 토큰 5개를 붙여서 검색이 더 잘될 수 있게 하는 방법으로 ColBERT에서 가져왔다고 합니다

결과입니다
맨 아래에 있는 ColPali가 NDCG@5 metrics를 사용했을 때 가장 값이 높았네요
Performance

ColPali의 퍼포먼스는 1) 데이터를 잘 고름 2) LLM과 Vision모델을 합침 3) 다중 임베딩 벡터 사용
이렇게 3가지를 합쳐서 R1의 성능이 좋아졌다고 합니다.
다른 모델의 성능을 향상한 사례도 보여줍니다.
첫 번째로 SigLIP라는 좋은 모델이 있었는데, 이를 문서 검색에 맞게 개선하여 BiSigLIP라는 이름을 붙였습니다
SigLIP의 텍스트 처리 부분을 ColPali 훈련에 쓴 문서 중심 데이터셋으로 fine-tuning 하여 그림 검색과 표 검색에서 좋은 성능을 보였다고 합니다.
두 번째는 PaliGemma를 활용해서 만든 BiPali라는 모델입니다
SigLIP가 생성한 패치 임베딩이 LLM에 입력되어 출력된 패치 임베딩을 얻는 과정에서 Average-Pooling을 하여 single dense vector를 얻는다고 합니다. 결과는 영어에 대해서는 BisigLIP보다 떨어지지만 French task에서는 향상되었음을 볼 수 있었습니다.
이 부분이 좀 어려웠는데요, SigLIP은 PalGemma에서 Vision Encoder역할을 하는 부분인데요
이 SigLIP은 이미지를 벡터로 임베딩 해주고, 출력이 PalGemma로 들어가게 되면 결국 이미지 자체를 두 번 거쳐서 더 정교하게 처리된 임베딩 벡터가 되겠네요. 아래 그림은 PalGemma의 아키텍처로 논문에서 가져왔습니다

"앞에서 이렇게 두 개의 인코더를 사용한 이유는 그럼 뭘까?"에 대한 답이 이제 나옵니다
One benefit of inputting image patch embeddings through a language model is that they are natively mapped to a latent space similar to the textual input (query)
-> 이들이 쿼리와 유사한 공간에 자연스럽게 매핑이 되기 때문이다
이를 통해 이미지 패치 토큰마다 하나의 임베딩을 만들고, 추론 시 텍스트 토큰과 이미지 간 모든 상호작용을 계산할 수 있다고 합니다. 이런 방법은 특히 infographic, 그림, 표에서 차이가 두드러지며 텍스트 문서 역시 ColPali모델이 더 잘 검색된다고 합니다.
다음은 R2에 대한 내용입니다
ColPali와 BGE-M3를 비교했을 때 ColPali가 쿼리를 처리하는 데 조금 더 오래 걸린다고 합니다.
그 이유는 BGE-M3는 단일 벡터를 만드는 모델인 반면, ColPali는 gemma를 써서 다중벡터를 만들기 때문이라고 합니다. 하지만 Optimized late interaction engines방법을 통해 문서를 수없이 늘려도 속도 저하가 크지 않다고 얘기합니다.
즉 ColPali는 성능은 뛰어나지만 약간의 트레이드오프가 있다는 걸 보여줍니다
R3에 대한 내용으로는
ColPali는 페이지를 자체로 인코딩해서 OCR과 같은 전처리 과정을 건너뛰기 때문에 인덱싱에서 큰 속도 향상을 얻을 수 있다고 합니다. 그리고 메모리는 한 페이지당 257.5KB가 필요하다고 합니다.

메모리를 줄이기 위해서 압축이나 클러스터링을 사용하면 더 적게 만들 수 있다고 합니다. 그렇다면 어떻게 하는 걸까요
Token pooling
그 방법이 바로 토큰 풀링입니다.
"For ColPali, many image patches share redundant information, e.g. white background patches. By pooling these patches together, we can reduce the amount of embeddings while retaining most information"
흰 배경 같은 정보는 패치가 중복되는 정보가 많을 텐데, hierarchical mean token pooling을 통해 묶어서 하나로 묶습니다. 터의 수는 66.7% 줄어들었고 검색 성능은 97.8%로 유지됐습니다.

왼쪽 결과를 보시면 데이터셋 6개로 토큰 풀링을 한 결과입니다
factor를 점점 늘리면서 성능이 어떻게 되나 측정한 것인데 대부분 모델은 비슷한 수준을 유지했습니다. 하지만
Shift의 성능은 매우 떨어진 것을 볼 수 있는데 이는 shift데이터셋의 경우 텍스트가 많고 중복 패치가 적어서 그런 것이라고 합니다
오른쪽 그림은 Interpretability에 대한 부분입니다
Late Interaction 히트맵을 이미지 위에 겹쳐서 어떤 부분에 초점을 뒀는지 시각화하는 예시입니다
보시면 Query의 hour과 유사도가 높은 부분은 이미지에서 1~24까지의 hours와 세로축 숫자들 등이네요
Conclusion
"ViDoRe라는 문서 검색 시스템을 평가하는 벤치마크를 소개했고, VLM을 통해 문서 검색의 많은 문제점을 극복했다."
Model Glossary
<SIGLIP>
SigLIP(Sigmoid Loss for Language Image Pre-Training)은 CLIP을 기반으로 한 모델로
softmax대신에 sigmoid를 활성화 함수로 사용함
<PaliGemma>
SIGLIP과 Gemma가 합쳐진 모델로 30억 파라미터를 가진 비전-언어 모델입니다
<COLBERT>
COLBERT(Contextualized Late Interaction over BERT)는 LI로 쿼리와 문서를 따로 처리한 뒤
마지막에 비교
EXAMPLES FROM THE ViDoRe BENCHMARK

이런 식으로 어떤 쿼리로 어떻게 질문했냐~ 이런 걸 예시로 많이 들어놨는데 재미있습니다
이제 다시 처음 아키텍처로 돌아가서 보면

'논문리뷰' 카테고리의 다른 글
| AI models collapse when trained onrecursively generated data 논문리뷰 (0) | 2025.05.19 |
|---|---|
| Mixture-Of-Expert 논문리뷰 (0) | 2025.04.22 |
| MMED-RAG논문 리뷰 (0) | 2025.04.15 |