데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      Morphik - 멀티모달티를 위한 ColPali와 MUVERA 기술에 대하여

      sysmoon 25.08.29
      116 3 0
      DEVOTEE 요약
      Morphik 기반 멀티모달 RAG는 PDF 파싱과 OCR의 한계를 극복하고, 텍스트와 이미지 정보를 동시에 활용해 정확하고 효율적인 문서 검색을 구현합니다. ColPali는 이미지와 텍스트를 멀티벡터로 변환하여 정보를 처리하며, MUVERA는 이를 FDE(Fixed-size Dense Embedding)로 압축해 검색 속도와 정확도를 모두 향상시킵니다. 이 기술은 기존 방식보다 효율성과 성능 면에서 뛰어나며, 대규모 문서 검색에 최적화된 접근법을 제공합니다.
      DEVOTEE 추천 블로그

      목차

      1. 서론

      2. ColPali

      3. MUVERA


      1. 서론

      지난글애서는 Morphik - 멀티모달티를 위한 RAG에서 문서 파싱 없이 이미지를 사용하는 방법 에 대해서 소개했고,

      오늘은 이어서 Morphik 을 이용한  멀티 모달 기반 문서 검색 시스템의 핵심 기술인 ColPali & MUVERA & Late Interaction 개념에 대해 자세히 소개합니다.


      우리가 흔히 사용하는 텍스트 추출 기반 RAG는 꽤 똑똑하지만, 현실에서는 몇 가지 아쉬움이 있습니다.

      • PDF를 파싱하거나 OCR, 캡처링을 거치면서 중요한 정보가 사라지거나 오류가 생기기 쉽습니다.

      • 문서를 제대로 다루려면 복잡한 전처리 과정이 필요하고, 시간과 비용이 상당히 소요됩니다.

      결국, 단순 텍스트만 활용하는 RAG에는 한계가 존재하죠.

      이런 문제를 해결하기 위해 등장한 것이 바로 문서 이미지를 직접 이해하고 활용하는 멀티모달 RAG입니다.

      텍스트뿐 아니라 이미지 속 정보까지 활용할 수 있어, 더 정확하고 빠른 문서 검색이 가능해졌습니다.


      특히 이번 글에서 다룰 ColPali와 MUVERA는 멀티모달 문서 검색의 핵심 기술입니다.

      ColPali는 문서 이미지를 직접 처리해 텍스트와 시각 정보를 동시에 이해하고, MUVERA는 이렇게 추출된 멀티모달 특징을 기반으로 정확한 문서 검색과 질의응답을 지원합니다.


      즉, 단순히 텍스트를 검색하는 수준을 넘어, 이미지 속 도표나 그래프, 표 등 시각 정보까지 활용하여 사용자가 원하는 답을 더 빠르고 정확하게 찾아낼 수 있는 구조를 갖추고 있습니다.


      이러한 멀티모달 RAG 시스템은 복잡한 전처리 과정을 줄이고, PDF 파싱이나 OCR 과정에서 발생할 수 있는 정보 손실 문제를 최소화합니다.

      결과적으로 기존 텍스트 기반 RAG보다 정확성과 효율성 모두에서 큰 향상을 보여주죠.


      이제, 이 멀티모달 RAG를 실제로 구현한 핵심 기술 중 하나인 ColPali를 살펴보겠습니다.


      2. ColPali: 멀티모달 RAG의 핵심 엔진

      ColPali는 문서 이미지를 직접 이해하는 멀티모달 처리 엔진입니다.

      • 먼저, 문서 속 텍스트와 시각 정보를 동시에 추출하여, 이미지 속 도표, 표, 그래프 등도 활용할 수 있습니다.

      • 이렇게 얻은 멀티모달 특징을 기반으로 정확한 문서 검색과 질의응답을 수행합니다.

      • 전통적인 텍스트 추출 과정(OCR, PDF 파싱 등)을 거치지 않기 때문에, 정보 손실을 최소화하면서 처리 속도를 높일 수 있습니다.

      즉, ColPali는 단순한 텍스트 검색을 넘어서, 문서 속 모든 정보를 활용해 더 정확하고 효율적인 검색을 가능하게 만드는 핵심 기술이라고 할 수 있습니다.


      ColPali 모델 아키텍처

      image

      ColPali의 기반 모델은 PaliGemma-3B에 Projection Layer를 추가한 구조입니다.


      Projection Layer이 층은 ColBERT 스타일의 다중 벡터 표현(128차원으로 축소)을 지원합니다.

      즉, 문서 속 이미지와 텍스트 정보를 여러 개의 벡터로 나누어 표현함으로써,멀티벡터 검색(Multi-vector Retrieval)이 가능해집니다.

      덕분에 단순히 한 번의 벡터 비교로 끝나는 기존 검색 방식보다,문서의 다양한 정보를 세밀하게 비교하고 검색할 수 있습니다.


      PaliGemma-3B 구성:

      • SigLIP 비전 인코더: 이미지 데이터를 처리하는 역할을 합니다.문서 속 그림, 도표, 표 같은 시각적 정보를 이해할 수 있습니다.

      • Gemma-2B 언어 디코더: 텍스트 데이터를 처리하는 역할을 합니다.PDF나 스캔 문서 속 텍스트를 효과적으로 이해하고 벡터화합니다.

      • 특징: 이미지와 텍스트를 동시에 이해할 수 있는 VLM(Vision-Language Model) 구조→ 단일 모델로 문서 속 시각 정보와 텍스트 정보를 통합하여 처리할 수 있습니다.

      즉, ColPali는 이미지와 텍스트를 동시에 이해하고, 다중 벡터로 효율적으로 표현함으로써, 기존 텍스트 기반 RAG보다 정확성과 검색 효율성을 크게 향상시킨 모델이라고 할 수 있습니다.


      Projection Layer: 왜 사용할까?

      image.png

      Projection Layer의 역할은 PaliGemma가 생성한 멀티벡터를 ColBERT 스타일의 벡터로 변환합니다.

      이러한 역할에는 두 가지 주요 장점이 있습니다.

      1. 메모리 효율성

      문서 한 페이지당 메모리 사용량을 최소화하여, 대규모 문서 처리에서도 효율성을 극대화합니다.

      수백만 개의 문서를 처리할 때도 저장 공간을 크게 절약할 수 있어, 실제 서비스 환경에서 필수적인 기능입니다.

      2. ColBERT의 Late Interaction 활용

      ColBERT의 Late Interaction 메커니즘을 적용해, 쿼리와 연관성이 높은 문서를 효과적으로 검색할 수 있습니다.

      단일 벡터 매칭보다 세밀한 비교가 가능하여, 멀티벡터 기반 검색의 정확성을 높이는 핵심 요소입니다.

      즉, Projection Layer 덕분에 ColPali는 대규모 멀티모달 문서를 효율적으로 저장하고, 빠르고 정확하게 검색할 수 있는 구조를 갖추게 됩니다.

      그리고 이렇게 변환된 다중 벡터를 기반으로 Late Interaction을 적용하면, 쿼리와 문서 간의 세밀한 토큰 단위 비교도 가능해집니다.


      Late Interaction: 효율성과 정밀성을 동시에 잡는 검색 방식

      Late Interaction은 쿼리와 문서를 독립적으로 임베딩한 뒤, 나중에 토큰 단위 상호작용을 반영하는 검색 방식입니다.

      즉, 먼저 빠르게 벡터화하고, 검색 단계에서 세밀한 토큰 단위 비교를 수행하는 구조라고 볼 수 있습니다.

      배경

      기존 방식에는 각각 장단점이 있었습니다.

      • Cross-Encoder: 쿼리와 문서를 함께 처리하여 정밀한 검색이 가능하지만, 계산 비용이 매우 높음

      • Bi-Encoder: 쿼리와 문서를 독립적으로 처리해 속도는 빠르지만, 세밀한 상호작용이 부족

      특징

      Late Interaction은 두 접근법의 장점을 결합했습니다.

      • Bi-Encoder의 효율성 + Cross-Encoder의 정밀성

      • 토큰 단위의 정교한 매칭과 효율적인 검색을 동시에 확보

      이 덕분에 ColPali는 대규모 문서에서도 빠르고 정확한 검색이 가능하며, 멀티벡터 기반 검색의 핵심 성능 향상 요소로 작용합니다.


      ColPali의 성과와 한계

      성과

      • 기존 OCR 기반 RAG와 달리, VLM 기반의 새로운 RAG 방법을 제시했습니다.

      • 복잡한 레이아웃을 가진 문서에서도 정보를 효과적으로 처리할 수 있는 능력을 보여주었습니다.

      • Projection Layer와 ColBERT 스타일의 멀티벡터 표현을 활용해, 계산 효율과 검색 성능 모두를 향상시켰습니다.

      아쉬운 점

      • 멀티벡터 연산은 여전히 계산 비용과 메모리 사용량이 큰 편입니다.

      • 단일 벡터 대비 연산 시간과 메모리 사용량이 증가하여, 대규모 문서 처리 시 고려가 필요합니다.


      3. MUVERA (Multi-Vector Retrieval Algorithm)


      등장 배경

      ColPali가 문서 이미지를 멀티벡터로 효과적으로 변환하더라도, 여전히 대규모 문서에서 쿼리와 관련성이 높은 정보를 효율적으로 검색하는 문제가 남아 있었습니다.

      이 문제를 해결하기 위해 등장한 것이 MUVERA입니다.MUVERA는 ColPali가 준비한 멀티벡터를 활용해 빠르고 정확한 문서 검색과 질의응답을 지원합니다.

      멀티 벡터 모델의 한계

      ColBERT, ColPali와 같은 멀티벡터 모델은 정확한 검색이 가능하지만,계산 비용이 크고 연산 과정이 복잡하다는 한계가 있습니다.

      FDE(Fixed-size Dense Embedding) 기반 해결책

      이를 해결하기 위해 도입된 것이 멀티 벡터를 단일 고정 크기의 차원으로 만드는 FDE 기반 접근입니다.

      FDE는 멀티벡터 임베딩을 단일 고정 크기 벡터(FDE)로 압축 및 변환하고, MIPS(Maximum Inner Product Search) 알고리즘 최적화를 활용하여,

      쿼리 벡터와 문서 벡터 중 내적이 가장 큰 벡터를 빠르게 검색하여 사용자의 질의와 관련된 문서를 찾습니다.

      이 방식 덕분에 기존 다단계 멀티벡터 검색 파이프라인에 비해,단순하고 효율적인 검색 구조를 구현할 수 있게 되었습니다.

      MUVERA Pipeline


      MUVERA의 파이프라인은 크게 두 단계(Stage)로 구성됩니다.

      Stage 1: FDE 벡터 변환 및 초기 검색

      • ColPali에서 생성된 멀티벡터를 FDE(Fixed-size Dense Embedding)로 변환합니다.

      • 변환된 Query FDE와 Document FDE 간의 벡터 연산을 통해,쿼리와 관련성이 높은 문서를 빠르게 탐색합니다.

      Stage 2: Chamfer 기반 문서 Reranking

      • Stage 1에서 선택된 후보 문서들에 대해, Chamfer 거리 기반 멀티벡터 연산을 수행합니다.

      • 이를 통해 토큰 단위 상호작용까지 반영하여, 가장 관련성이 높은 문서를 정밀하게 재정렬(Reranking)합니다.

      이러한 2단계 구조 덕분에 MUVERA는 초기 검색 속도를 확보하면서도,최종 결과에서는 정확성과 세밀함을 동시에 보장할 수 있습니다.

      이제 파이프라인의 각 단계에 대해 좀 더 디테일하게 설명해 보겠습니다.


      오프라인 색인(Offline Indexation)


      파이프라인 구축중 첫번째 단계는 오프라인 색인과정입니다.

      오프라인 색인 과정에서는 문서들의 멀티벡터를 FDE 과정을 거쳐 고정 차원 벡터로 변환한 뒤, 데이터베이스에 저장합니다.

      이렇게 준비된 벡터들은 이후 검색 단계에서 빠르고 효율적인 탐색을 가능하게 합니다.


      온라인 질의(Online Querying)


      MUVERA의 두 번째 단계는 사용자 쿼리에 대한 실시간 검색 과정입니다.

      이 단계는 크게 세 가지 과정으로 나눌 수 있습니다.

      1. 쿼리 FDE 생성

      사용자가 입력한 쿼리(Q)는 먼저 멀티벡터로 변환됩니다.

      이후 MUVERA는 FDE 알고리즘을 적용하여, 쿼리의 고정 차원 벡터(FDE)를 생성합니다.

      이 벡터는 이후 검색 과정에서 문서 벡터와 비교될 준비가 된 상태입니다.

      2. MIPS 기반 초기 검색

      생성된 쿼리 FDE와 미리 저장된 문서 FDE 간의 유사도를 계산합니다.

      이때 MIPS(Maximum Inner Product Search) 알고리즘을 활용하여, 상위 k개의 유사도가 높은 후보 문서를 빠르게 선별합니다.

      덕분에 대규모 문서에서도 검색 속도를 크게 향상시킬 수 있습니다.

      3. Chamfer 기반 Reranking

      MIPS로 선별된 후보 문서들은 Chamfer 거리 기반 멀티벡터 연산을 통해 최종적으로 재정렬(Reranking)됩니다.

      이 과정에서 토큰 단위 상호작용까지 반영되므로, 쿼리와 가장 연관성이 높은 문서를 정확하게 선정할 수 있습니다.

      온라인 질의 과정에서 핵심 역할을 하는 것은 바로 **FDE(Fixed-size Dense Embedding)**입니다.

      FDE는 멀티벡터를 단일 고정 크기 벡터로 압축하여, 검색 속도를 높이면서도 연관성을 유지하도록 돕는 핵심 기술입니다.

      이제 FDE가 왜 필요한지, 어떤 방식으로 동작하는지 자세히 살펴보겠습니다.


      FDE (Fixed Dimensional Encodings)

      MUVERA 파이프라인에서 FDE는 멀티벡터를 단일 고정 크기 벡터로 압축하여, 검색 속도와 메모리 효율을 동시에 높이는 핵심 기술입니다.

      핵심 아이디어


      FDE의 핵심 목표는 멀티벡터를 하나의 단일 벡터로 안전하게 축소하는 것입니다.

      원래 문서나 쿼리에서 생성되는 멀티벡터는 수십~수백 개가 될 수 있어, 직접 검색에 활용하면 계산 비용과 메모리 사용량이 커지는 문제가 있습니다.

      이를 해결하기 위해 FDE는 반복적인 클러스터링 과정을 활용합니다.

      유사한 벡터들을 하나의 그룹으로 묶고, 각 그룹을 대표하는 단일 벡터로 합산하거나 평균내면서 차원을 점진적으로 줄이는 것이 핵심입니다.

      이 과정을 여러 번 반복하면, 멀티벡터의 중요한 의미를 유지하면서도 검색과 저장에 최적화된 단일 벡터를 생성할 수 있습니다.


      이제까지 MUVERA의 파이프라인과 FDE를 통해 멀티벡터를 효율적으로 처리하고 검색하는 과정을 살펴보았습니다.

      그렇다면, 이러한 설계가 실제로 검색 성능 향상에 얼마나 기여했는지 확인해볼 차례입니다.

      성능 결과

      MUVERA vs. PLAID — 검색 성능 (Recall@k) 비교


      BEIR 벤치마크 데이터셋에서 MUVERA와 PLAID의 검색 성능을 비교한 결과입니다.

      그래프를 보면, MUVERA가 PLAID보다 평균적으로 10% 더 높은 Recall@k 성능을 보여줍니다.

      대부분의 데이터셋에서 MUVERA가 PLAID를 상회하거나 동등한 성능을 나타냅니다.

      특히 주목할 점은 HotpotQA 데이터셋에서 MUVERA가 최대 56% 더 높은 Recall을 달성했다는 것입니다. 이는 매우 인상적인 개선 결과입니다.


      MUVERA vs. PLAID — 검색 시간 (지연 시간) 비교


      이번에는 검색 시간측에서의 성능 결과입니다.

      그래프에서 보시는 바와 같이, 뮤베라가 플레이드보다 압도적으로 빠른 속도를 보여줍니다. 모든 데이터 셋에서 뮤베라의 지연시간의 훨씬 낮습니다.

      구체적으로 뮤베라는 플레이드 대비 평균적으로 90% 더 낮은 지연시간을 달성했습니다.

      이러한 결과들을 바탕으로 뮤베라는 더 빠르면서도 더 정확한 멀티벡터 검색을 가능하게하는 방법입니다.


      결론

      MUVERA는 멀티벡터 검색에서 발생하는 계산 복잡도와 속도 문제를 해결하기 위해 개발된 시스템입니다.

      핵심 기술로는 FDE를 통한 단일 벡터 변환을 활용하여, 대규모 문서에서도 빠른 검색 속도와 높은 정확도를 동시에 달성할 수 있습니다.

      주요 성과를 살펴보면, MUVERA는 PLAID 대비 평균 Recall@k 성능이 약 10% 향상되었으며,

      HotpotQA 데이터셋에서는 최대 56%의 Recall 개선을 달성하는 등 실제 벤치마크에서도 탁월한 성능을 보여주었습니다.

      기술적 의의 측면에서는, MUVERA를 통해 현업에서도 멀티벡터를 손쉽게 활용할 수 있으며,

      RAG 기반 문서 검색 시스템에 실용적으로 도입 가능한 구조임을 확인할 수 있습니다.


      References

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      sysmoon 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기