Generative AI

업계 최고 수준의 멀티모달 RAG: Llama 3.2 NeMo Retriever 임베딩 모델이 파이프라인 정확도를 높이는 방법

Reading Time: 5 minutes

데이터는 단순한 텍스트를 넘어서 이미지, 동영상, 오디오 등 다양한 형태를 포함하는 멀티모달 특성을 지니고 있습니다. 이러한 데이터는 복잡하고 비정형적인 구조를 가지는 경우가 많아 효과적으로 처리하기 어렵습니다. 일반적으로 PDF, 스캔 이미지, 슬라이드 등 문서를 텍스트로 변환하는 방법이 사용되지만, 그림 1에서 보듯 모든 정보를 텍스트로 완벽히 담아내기는 어렵습니다.

텍스트 변환 과정에서 시각 정보가 손실되는 문제를 해결하기 위해 멀티모달 언어 모델, 즉 비전 언어 모델(VLM)이 개발되었습니다. 이 모델은 텍스트와 원본 이미지를 함께 처리하고, 상황에 맞는 적절한 응답을 생성합니다.

그림 1. 이미지 내 간결하게 표현된 정보의 증가 정도 (이미지 출처: An Easy Introduction to Multimodal RAG)

VLM은 컴퓨터 비전과 자연어 처리를 결합해 우리가 보는 것과 말하는 것을 연결합니다. 이를 통해 기계가 시각 정보와 텍스트를 동시에 이해하고 처리하여, 시각 질문응답, 멀티모달 검색, 이미지 캡션 생성 등 보다 자연스럽고 실용적인 애플리케이션을 구현할 수 있습니다. 이러한 모델들은 일반적으로 이미지와 텍스트가 쌍으로 이루어진 방대한 데이터셋을 기반으로 학습됩니다. 지난 1년간 Gemma 3, PaliGemma, SmolVLM, QwenVL, LLaVA-1.5 등 복잡한 시각 정보를 효과적으로 처리하는(예시: ChartQA) VLM 모델들이 크게 발전하며 잇따라 출시되었습니다.

그림 2. OCR을 활용해 다양한 형태의 데이터를 텍스트로 변환하는 텍스트 기반 RAG 파이프라인(텍스트 임베딩 모델과 LLM 포함)과 멀티모달 임베딩 모델, 랭커, VLM을 사용하는 멀티모달 RAG 파이프라인의 비교

기존의 RAG(검색 증강 생성) 파이프라인은 주로 텍스트 데이터를 중심으로 설계되어, 그림 2에서 보듯 복잡한 문서들을 텍스트로 변환하는 과정이 필수적이었습니다. 그러나 최근 VLM 기술이 크게 발전하면서, 모델은 더 작아지고 신뢰도와 성능이 모두 향상되었습니다.

이에 따라 멀티모달 RAG 파이프라인이 주목받고 있는데, 복잡한 텍스트 추출 단계를 거치지 않아도 된다는 점이 큰 장점입니다. 다만, VLM은 여전히 텍스트 기반 LLM에 비해 허위 생성(hallucination) 가능성이 더 높습니다. 이러한 한계를 극복하기 위해서는, 멀티모달(비전) 임베딩 모델이 핵심 역할을 하는 정확한 검색 단계가 반드시 필요합니다.

멀티모달(비전) 임베딩 모델은 이미지와 텍스트를 공통의 특징 공간에 매핑하여 보다 효과적인 교차 모달 검색을 가능하게 합니다. 이 기능은 텍스트 쿼리에 가장 적합한 이미지를 찾거나, 이미지 입력을 기반으로 관련 텍스트를 검색하는 작업에서 특히 중요합니다. 제품 검색 엔진, 콘텐츠 추천 시스템, 대규모 멀티미디어 데이터셋 관리 도구 등 다양한 분야에서 비전-언어 임베딩 모델은 빠르고 정확한 교차 모달 검색의 핵심 요소로 작용합니다.

멀티모달 정보 검색 시스템 개발은 멀티모달 임베딩과 랭커 모델 등 강력한 검색 컴포넌트를 통합해 멀티모달 지식 기반에서 가장 관련성 높은 정보를 찾아내는 작업을 포함합니다. 사용자 쿼리가 주어지면, 검색 시스템은 관련 문서 이미지들을 찾아내고, VLM은 검색된 결과를 문맥으로 활용해 사용자 질문에 답변합니다.

지난 1년간 다양한 크기와 기능을 갖춘 멀티모달 임베딩 모델들이 다수 출시되었으며(예: ViDoRe retrieval leaderboard), 많은 모델이 뛰어난 성능을 보이나, 인덱싱과 검색 작업에서는 효율성 때문에 소형 모델이 선호되는 경우가 많습니다. 이러한 멀티모달 RAG 파이프라인 구축의 어려움을 해결하기 위해, NVIDIA는 최첨단 문서 이미지 검색을 위한 NVIDIA NeMo Retriever 마이크로서비스를 NVIDIA NIM 형태로 새롭게 선보였습니다.

Llama 3.2 NeMo Retriever 멀티모달 임베딩 1B 모델

Llama 3.2 NeMo Retriever 멀티모달 임베딩 모델은 16억 개 파라미터의 소형이면서도 강력한 비전 임베딩 모델입니다. NVIDIA NIM으로 구축된 이 모델은 대규모이면서도 효율적인 멀티모달 정보 검색 시스템을 구현할 수 있도록 지원합니다.

효율적인 문서 검색

멀티모달 콘텐츠를 포함한 문서의 기존 검색 방식은 사전 데이터 파싱과 수집 과정, 즉 PDF 추출 파이프라인(그림 2)이 필요합니다. PDF 인덱싱 과정은 일반적으로 여러 단계로 이루어집니다. 먼저 각 페이지에서 텍스트 블록, 이미지, 표, 차트 등 다양한 형태의 요소를 감지하는 페이지 요소 탐지가 수행됩니다. 이후 요소 유형에 따라 적절한 처리 방법이 적용되는데, 스캔된 텍스트는 광학 문자 인식(OCR)으로, 내장된 텍스트는 파싱 방식으로 각각 처리됩니다.

대안으로, VLM을 활용해 문서나 이미지를 텍스트 형태로 설명할 수 있습니다. 추출된 텍스트는 고밀도 텍스트 임베딩 모델(예: llama-3.2-nv-embedqa-1b-v2)에 입력되어 고정 길이 벡터 표현으로 변환됩니다.

멀티모달 임베딩 모델은 텍스트 기반 문서 임베딩 파이프라인의 한계를 극복하기 위해 도입되었습니다. 텍스트 중심 방식과 달리, 원본 페이지 이미지를 직접 임베딩할 수 있어 시각 정보를 보존하면서 텍스트 의미도 함께 표현할 수 있습니다(그림 3). 비전 모델을 활용하면 파이프라인이 단순해지고 다양한 문서 유형에 적용할 수 있는 범용성이 높아집니다.

이와 관련해, ‘비전 공간에서의 검색(retrieval in vision space)’ 개념을 기반으로 강력한 비전-언어 모델을 Llama 3.2 NeMo Retriever 멀티모달 임베딩 1B 모델로 변환하였습니다. 이 모델은 비전 인코더(SigLIP2-So400m-patch16-512), 거대 언어 모델(Llama-3.2-1B), 그리고 인코딩된 이미지를 LLM 임베딩 공간에 매핑하는 선형 프로젝션 레이어로 구성되어 있습니다.

Eagle 2 모델을 기반으로 하여, 새로운 타일드 혼합 비전 인코더(tiled mixture of vision encoders) 방식을 도입한 Llama 3.2 NeMo Retriever 멀티모달 임베딩 1B 모델은 각 이미지 문서와 쿼리 입력에 대해 2,048차원의 임베딩을 생성합니다. 이 모델은 텍스트 쿼리와 정답을 포함하는 문서 페이지 이미지의 임베딩을 정렬하기 위해 대조 손실(contrastive loss)을 활용해 파인튜닝(fine-tuning)되었습니다. 대조 학습에 사용된 부정 사례(negative examples)는 긍정 인식 하드 네거티브 마이닝(positive-aware hard-negative mining) 기법을 통해 선별되었습니다(자세한 내용은 NV-Retriever 논문을 참고하세요).

그림 3. 텍스트 전용 임베딩 모델과 다중 모드 임베딩 모델을 사용하여 문서 임베딩 생성 비교

문서 검색 벤치마크

저희는 10개의 ViDoRe V1 데이터셋과 내부에서 엄선한 두 개의 멀티모달 데이터셋인 DigitalCorpora와 Earnings에서 1억 파라미터 규모의 리트리버 모델을 평가하였습니다.

  • Earnings 데이터셋: 512개의 PDF(실적 보고서, 컨설팅 발표 자료 등)로 구성된 내부 데이터셋으로, 차트, 표, 인포그래픽이 각각 3,000건 이상 포함되어 있으며, 600개 이상의 사람 손으로 주석 처리된 검색 질문이 함께 제공됩니다.
  • DigitalCorpora-767 데이터셋: Digital Corpora에서 수집한 767개의 PDF로 구성된 다양성 있는 벤치마크로, 텍스트, 표, 차트, 인포그래픽에 걸쳐 총 991개의 사람 주석 검색 질문이 포함되어 있습니다.

바 차트에 표시된 모든 모델은 동일한 인프라와 데이터셋에서 평가되었습니다. 그림 4에서 확인할 수 있듯, NVIDIA llama-3.2-nemoretriever-1b-vlm-embed-v1 모델은 Recall@5 기준으로 다른 공개된 20억 파라미터 이하의 소형 비전 임베딩 모델 대비 뛰어난 검색 정확도를 보여줍니다.

그림 4. 10개의 ViDoRe V1 데이터셋, Earnings, DigitalCorpora-767 데이터셋에서 NVIDIA llama-3.2-nemoretriever-1b-vlm-embed-v1과 다른 비전 임베딩 모델들의 정확도 성능 비교 (Recall@5 기준)
유형(모달리티) Digital Corpora 질의 수Digital Corpora에서 Nemo-retriever-vlm-embed-v1 성능Earnings 질의 수Earnings에서 Nemo-retriever-vlm-embed-v1 성능
멀티모달99184.5%62866.1%
테이블23575.3%15744.6%
차트26888.1%12989.9%
텍스트48886.9%24296.0%
인포그래픽10055.0%

표 1. DigitalCorpora-767 및 Earnings 데이터셋의 각 모달리티별 Recall@5 결과

다음은 OpenAI API의 임베딩과 호환되는 llama-3.2-nemoretriever-1b-vlm-embed-v1 NIM을 사용해 쿼리와 패시지(이미지) 임베딩을 생성하는 예제 추론 스크립트입니다.

쿼리:

from openai import OpenAI
 
client = OpenAI(
  api_key="$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC",
  base_url="https://integrate.api.nvidia.com/v1"
)
 
response = client.embeddings.create(
    input=["What is the civil caseload in South Dakota courts?"],
    model="nvidia/llama-3.2-nemoretriever-1b-vlm-embed-v1",
    encoding_format="float",
    extra_body={"modality": ["text"], "input_type": "query", "truncate": "NONE"}
)
 
print(response.data[0].embedding)

패시지(이미지):

import base64
import requests
from openai import OpenAI
 
image_source = "https://assets.ngc.nvidia.com/products/api-catalog/nemo-retriever/embedding/court-sizing-metrics.png"
 
if image_source.startswith(('http://', 'https://')):
    response = requests.get(image_source)
    image_b64 = base64.b64encode(response.content).decode()
else:
    with open(image_source, "rb") as image_file:
        image_b64 = base64.b64encode(image_file.read()).decode()
 
client = OpenAI(
  api_key="$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC",
  base_url="https://integrate.api.nvidia.com/v1"
)
 
response = client.embeddings.create(
    input=[f"data:image/jpeg;base64,{image_b64}"],
    model="nvidia/llama-3.2-nemoretriever-1b-vlm-embed-v1",
    encoding_format="float",
    extra_body={"modality": ["image"], "input_type": "passage", "truncate": "NONE"}
)
 
print(response.data[0].embedding)

세계적 수준의 정보 검색 파이프라인 개발을 시작하세요

NVIDIA NeMo Retriever는 높은 정확도와 데이터 프라이버시를 보장하는 마이크로서비스 모음으로, 기업이 실시간 비즈니스 인사이트를 도출할 수 있도록 지원합니다. 오늘 바로 API 카탈로그에 등록된 NVIDIA NeMo Retriever NIM 마이크로서비스를 호스팅 환경에서 체험해보세요.

관련 리소스

Discuss (0)

Tags