Generative AI / LLMs

멀티모달 검색 증강 생성 101

Reading Time: 7 minutes

검색 증강 생성 (RAG) 애플리케이션은 텍스트뿐만 아니라 표, 그래프, 차트, 다이어그램 등 다양한 데이터 유형으로 작업을 수행할 수 있다면 그 활용도가 기하급수적으로 높아질 것입니다. 다양한 데이터 유형으로 작업을 수행하기 위해서는 텍스트, 시각적 및 기타 형태의 정보를 일관되게 해석하여 이해하고 응답을 생성할 수 있는 프레임워크가 필요합니다.

이 게시물에서는 멀티모달 RAG 파이프라인을 구축하기 위해 여러 가지 양식과 접근 방식을 다룰 때의 어려움에 대해 논의합니다. 논의를 단순화하기 위해 이미지와 텍스트 두 가지 모달리티에만 초점을 맞추겠습니다.

멀티모달이 어려운 이유는 무엇인가요?

엔터프라이즈(비정형) 데이터는 고해상도 이미지로 가득 찬 폴더든 텍스트 표, 차트, 다이어그램 등이 혼합된 PDF든 간에 여러 양식에 분산되어 있는 경우가 많습니다.

이러한 유형의 양식 분산 작업 시, 각 양식마다 고유한 과제가 있음을 이해하고 양식 간에 정보를 어떻게 관리할 것인지를 고려해야합니다.

각 양식에는 고유한 과제가 있습니다.

이미지를 예로 들면(그림 1), 왼쪽 이미지의 경우 세부적인 디테일보다는 일반적인 이미지에 더 중점을 두고 있습니다. 연못, 바다, 나무, 모래와 같은 몇 가지 주요 포인트에만 주의를 집중하고 있음을 확인할 수 있습니다.

그림 1. 이미지에서 간결하게 표현되는 정보의 정도 증가

보고서와 문서에는 차트와 다이어그램과 같은 정보 밀도가 높은 이미지가 포함될 수 있으며, 이러한 이미지에는 주의해야할 포인트가 많으며 이미지에서 파생될 수 있는 추가 컨텍스트를 고려해야합니다. 어떤 파이프라인을 구축하든 이러한 뉘앙스를 포착하고 처리해야 정보를 효과적으로 포함할 수 있습니다.

여러 양식에 걸쳐 정보를 어떻게 관리하나요?

또 다른 중요한 측면은 다양한 모달리티에 걸쳐 정보를 표현하는 것입니다. 예를 들어, 문서로 작업하는 경우 차트의 의미론적 표현이 동일한 차트를 설명하는 텍스트의 의미론적 표현과 일치하는지 확인해야 합니다.

멀티모달 검색을 위한 접근 방식

주요 과제를 이해했으니 이제 이러한 과제를 해결하기 위한 RAG 파이프라인 구축의 세부 사항을 살펴봅시다.

멀티모달 RAG 파이프라인을 구축하는 데는 몇 가지 주요 접근 방식이 있습니다:

  • 모든 모달리티를 동일한 벡터 공간에 포함하기
  • 모든 모달리티를 하나의 기본 모달리티로 묶기
  • 서로 다른 모달리티를 위한 별도의 저장소 보유

논의를 단순화하기 위해 이미지와 텍스트 입력에 대해서만 설명합니다.

모든 모달리티를 동일한 벡터 공간에 임베드하기

이미지와 텍스트의 경우 CLIP과 같은 모델을 사용하여 텍스트와 이미지를 모두 동일한 벡터 공간에 인코딩할 수 있습니다. 이렇게 하면 대체로 동일한 텍스트 전용 RAG 인프라를 사용하고 임베딩 모델을 교체하여 다른 모달리티를 수용할 수 있습니다. 그런 다음 생성 패스의 경우 모든 질문과 답변에 대해 거대 언어 모델 (LLM)을 멀티모달 LLM(MLLM)으로 대체합니다.

이 접근 방식은 일반 검색 파이프라인에서 필요한 유일한 변경 사항은 임베딩 모델을 교체하는 것이므로 파이프라인을 간소화합니다.

이 상황에서는 다양한 유형의 이미지와 텍스트를 효과적으로 임베드할 수 있는 모델에 액세스하고 이미지의 텍스트나 복잡한 표와 같은 복잡한 내용을 모두 캡처할 수 있어야 한다는 단점이 있습니다.

모든 모달리티를 하나의 기본 모달리티로 통합하기

또 다른 옵션은 애플리케이션의 초점에 따라 기본 모달리티를 선택하고 다른 모든 모달리티를 기본 모달리티로 묶는 것입니다.

예를 들어 애플리케이션이 주로 PDF보다 텍스트 기반 Q&A를 중심으로 운영된다고 가정해 보겠습니다. 이 경우 텍스트는 정상적으로 처리하지만 이미지의 경우 전처리 단계에서 텍스트 설명과 메타데이터를 생성합니다. 또한 나중에 사용할 수 있도록 이미지를 저장합니다.

추론 패스에서 검색은 주로 이미지에 대한 텍스트 설명과 메타데이터를 기반으로 작동하며, 검색된 이미지 유형에 따라 LLM과 MLLM을 혼합하여 답을 생성합니다.

여기서 가장 큰 장점은 정보가 풍부한 이미지에서 생성된 메타데이터가 객관적인 질문에 답하는 데 매우 유용하다는 것입니다. 또한 이미지 임베딩을 위한 새로운 모델을 조정하고 다양한 양식의 결과 순위를 매기기 위한 리랭커를 구축해야 할 필요성을 해결해 줍니다. 주요 단점은 전처리 비용과 이미지의 뉘앙스가 손실된다는 점입니다.

다양한 모달리티에 대해 별도의 스토어 보유

랭크-리랭크는 서로 다른 모달리티에 대해 별도의 스토어를 보유하고, 모두 쿼리하여 상위 N개의 청크(Chunk)를 검색한 다음, 전용 멀티모달 리랭크가 가장 관련성이 높은 청크를 제공하도록 하는 또 다른 접근 방식입니다.

이 접근 방식은 모델링 프로세스를 간소화하므로 여러 양식으로 작업하기 위해 하나의 모델을 조정할 필요가 없습니다. 그러나 현재 최상위 M*N 청크( M개의 양식에서 각각N개 )를 정렬하기 위한 리랭크의 형태로 복잡성이 추가됩니다.

생성을 위한 멀티모달 모델

LLM은 텍스트 기반 정보를 이해하고, 해석하고, 생성하도록 설계되었습니다. 방대한 양의 텍스트 데이터로 학습된 LLM은 텍스트 생성, 요약, 질문 답변 등과 같은 다양한 자연어 처리 작업을 수행할 수 있습니다.

MLLM은 텍스트 데이터 이상의 것을 인식할 수 있습니다. MLLM은 이미지, 오디오, 비디오와 같은 양식을 처리할 수 있으며, 이는 종종 실제 데이터가 구성되는 방식입니다. 이러한 다양한 데이터 유형을 결합하여 정보를 보다 포괄적으로 해석함으로써 예측의 정확성과 신뢰성을 향상시킵니다.

이러한 모델은 다양한 작업을 수행할 수 있습니다:

  • 시각 언어 이해 및 생성
  • 다중 모드 대화
  • 이미지 캡션
  • 시각적 질문 답변(VQA)

이러한 작업은 모두 RAG 시스템이 여러 모달리티를 처리하면서 이점을 얻을 수 있는 작업입니다. MLLM이 이미지 및 텍스트와 함께 작동하는 방식을 더 깊이 이해하려면 이러한 모델이 어떻게 구성되는지 살펴볼 필요가 있습니다.

MLLM의 인기 있는 하위 유형 중 하나는 새로운 사전 학습 전략으로 시각적 입력의 의미적 이해를 가능하게 하는 사전 학습된 이미지-텍스트 모델인 Pix2Struct입니다. 이 모델은 이름에서 알 수 있듯이 이미지에서 추출된 구조화된 정보를 생성합니다. 예를 들어, Pix2Struct 모델은 차트에서 핵심 정보를 추출하여 텍스트로 표현할 수 있습니다.

이를 이해했으니 이제 RAG 파이프라인을 구축하는 방법을 설명하겠습니다.

멀티모달 RAG를 위한 파이프라인 구축하기

다양한 양식의 데이터를 처리하는 방법을 보여드리기 위해 NVIDIA H100 GPU로 MLPerf 트레이닝 기록 경신하기와 같은 여러 기술 게시물을 인덱싱하는 애플리케이션을 소개합니다. 이 게시물에는 풍부한 텍스트, 표 형식의 데이터는 물론 단락이 포함된 차트와 그래프인 복잡한 이미지가 포함되어 있습니다.

데이터를 처리하고 RAG 파이프라인을 구축하기 전에 필요한 모델과 도구는 다음과 같습니다:

  • MLLM: 이미지 캡션 및 VQA에 사용됩니다.
  • LLM: 일반적인 추론 및 질문에 대한 답변.
  • 모델 임베딩: 데이터를 벡터로 인코딩합니다.
  • 벡터 데이터베이스: 검색을 위해 인코딩된 벡터를 저장합니다.

멀티모달 데이터 해석 및 벡터 데이터베이스 만들기

RAG 애플리케이션을 구축하기 위한 첫 번째 단계는 데이터를 전처리하여 벡터 저장소에 벡터로 저장한 다음 쿼리에 따라 관련 벡터를 검색할 수 있도록 하는 것입니다.

데이터에 이미지가 있는 경우, 다음은 작업할 수 있는 일반적인 RAG 전처리 워크플로우입니다(그림 2).

그림 2. 이미지가 있는 데이터에 대한 일반적인 RAG 전처리 워크플로우

문제의 게시물에는 그림 3과 같은 막대형 차트가 여러 개 포함되어 있습니다. 이러한 막대 차트를 해석하려면 LLM과 결합하여 차트와 플롯을 이해할 수 있는 시각적 언어 모델인 Google의 DePlot을 사용합니다. 이 모델은 NGC에서 사용할 수 있습니다.

RAG 애플리케이션에서 DePlot API를 사용하는 방법에 대한 자세한 내용은 최적화된 DePlot 모델로 그래프 쿼리하기를 참조하세요.

그림 3. 캡션이 포함된 PDF의 막대형 차트 예시

이 예제에서는 차트와 플롯에 중점을 두고 있습니다. 다른 문서에는 의료 이미지나 회로도와 같은 특수 이미지를 처리하기 위해 모델 사용자 지정이 필요할 수 있는 이미지가 포함될 수 있습니다. 이는 사용 사례에 따라 다르지만 이러한 이미지의 차이를 해결하기 위한 몇 가지 옵션이 있습니다: 모든 유형의 이미지를 처리하도록 하나의 MLLM을 조정하거나 다양한 유형의 이미지에 대한 모델 앙상블을 구축하는 것입니다.

설명을 간단하게 하기 위해 두 가지 범주의 간단한 앙상블 사례를 살펴보겠습니다:

  • DePlot을 사용하여 처리할 그래프가 있는 이미지
  • KOSMOS2와 같은 MLLM으로 처리할 기타 이미지

이 글에서는 전처리 파이프라인을 확장하여 사용자 맞춤 텍스트 분할기, 사용자 맞춤 MLLM 및 LLM을 활용하여 벡터DB를 생성하는 파이프라인에서 각 모달리티를 처리하는 방법에 대해 자세히 살펴봅니다(그림 4).

그림 4. 다양한 유형의 이미지를 처리하는 사용자 맞춤 MLLM을 사용한 RAG 전처리 워크플로우

다음은 전처리 워크플로우의 몇 가지 주요 단계입니다:

  • 이미지와 텍스트 분리
  • 이미지 유형에 따라 MLLM을 사용하여 이미지를 분류합니다.
  • PDF에 텍스트 삽입

이미지와 텍스트 분리

목표는 이미지를 텍스트 양식에 맞추는 것입니다. 먼저 데이터를 추출하고 정리하여 이미지와 텍스트를 분리합니다. 그런 다음 이 두 가지 모달리티를 처리하여 최종적으로 벡터 저장소에 저장할 수 있습니다.

이미지 유형에 따라 MLLM을 사용하여 이미지 분류하기

MLLM으로 생성된 이미지 설명을 사용하여 그래프인지 여부에 따라 이미지를 카테고리로 분류할 수 있습니다. 분류에 따라 그래프가 포함된 이미지에 DePlot을 사용하여 선형화된 표 형식의 텍스트를 생성합니다. 이 텍스트는 일반 텍스트와 의미적으로 다르므로 추론 중에 검색을 수행할 때 관련 정보를 검색하는 데 어려움을 겪을 수 있습니다.

선형화된 텍스트의 요약을 청크로 사용하여 벡터 저장소에 저장하고 사용자 맞춤 MLLM의 출력을 메타데이터로 사용하여 추론 중에 사용할 수 있도록 하는 것이 좋습니다.

PDF에 텍스트 삽입

작업 중인 데이터에 따라 다양한 텍스트 분할 기법을 탐색하여 최상의 RAG 성능을 얻을 수 있습니다. 간단하게 하려면 각 단락을 청크로 저장하세요.

벡터 데이터베이스와 대화하기

이 파이프라인을 따라가면 PDF에 있는 모든 멀티모달 정보를 성공적으로 캡처할 수 있습니다. 사용자가 질문을 할 때 RAG 파이프라인이 작동하는 방식은 다음과 같습니다.

사용자가 시스템에 질문을 입력하면 간단한 RAG 파이프라인이 질문을 임베딩으로 변환하고 시맨틱 검색을 수행하여 관련 정보 청크를 검색합니다. 검색된 청크도 이미지에서 나온다는 점을 고려하면 최종 응답을 생성하기 위해 모든 청크를 LLM으로 보내기 전에 몇 가지 추가 단계를 수행합니다.

그림 5는 이미지와 텍스트 모두에서 청크로 검색된 정보를 사용하여 사용자 쿼리를 처리하는 방법에 대한 참조 흐름을 보여줍니다.

그림 5. 멀티모달 데이터에서 정보를 검색하는 맞춤형 MLLM을 사용한 RAG 추론 워크플로우

다음은 관심 있는 PDF에 액세스할 수 있는 멀티모달 RAG 지원 봇에게 “3D U-Net을 사용하는 NVIDIA A100과 NVIDIA H100(v2.1)의 성능 차이는 무엇인가요?”라는 질문을 묻는 예시입니다.

파이프라인은 관련 그래픽 이미지를 검색하는 데 성공했고, 3D U-Net 벤치마크에서 가속기당 상대적 성능이 NVIDIA A100보다 NVIDIA H100(v2.1)이 80% 더 높다는 정확한 언급으로 해석하는 데 성공했습니다.

그림 6. NVIDIA 개발자 블로그의 막대형 차트에서 발췌한 답변이 포함된 질문 예시

다음은 검색을 수행하고 상위 5개의 관련 청크를 검색한 후 질문을 처리하는 데 관련된 몇 가지 주요 단계입니다:

  • 청크가 이미지에서 추출된 경우 MLLM은 사용자 질문과 함께 이미지를 입력으로 받아 답변을 생성합니다. 이는 VQA 작업에 불과합니다. 그런 다음 생성된 답변은 LLM이 응답하기 위한 최종 컨텍스트로 사용됩니다.
  • 차트나 도표에서 청크를 추출한 경우, 메타데이터로 저장된 선형화된 테이블을 불러와 텍스트를 LLM에 컨텍스트로 추가합니다.
  • 마지막으로 일반 텍스트에서 추출한 청크는 그대로 사용됩니다.

이제 사용자 질문과 함께 이 모든 청크가 LLM에서 최종 답변을 생성할 준비가 되었습니다. 그림 6에 나열된 소스에서 봇은 다양한 벤치마크의 상대적 성능을 보여주는 차트를 참조하여 정확한 최종 응답을 생성했습니다.

RAG 파이프라인 확장하기

이 게시물에서는 여러 양식에 분산된 데이터를 사용하여 간단한 텍스트 기반 질문에 답하는 시나리오에 대해 다룹니다. 멀티모달 RAG 기술을 더욱 발전시키고 그 기능을 확장하기 위해 다음과 같은 연구 분야를 활용할 수 있습니다.

다양한 양식으로 구성된 사용자 질문 해결하기

그래프와 질문 목록이 포함된 이미지로 구성된 사용자 질문이 있다고 가정할 때 이러한 유형의 멀티모달 요청을 수용하려면 파이프라인에서 어떤 변경이 필요할까요?

멀티모달 응답

그림 6에서와 같이 텍스트 기반 답변은 다른 양식을 나타내는 인용문과 함께 제공됩니다. 그러나 서면 설명이 항상 사용자 쿼리에 대한 최상의 결과 유형이 아닐 수도 있습니다. 예를 들어, 멀티모달 응답은 요청 시 스택형 막대 차트와 같은 이미지를 생성하도록 더 확장될 수 있습니다.

멀티모달 에이전트

복잡한 질문이나 작업에 대한 해결은 단순한 검색을 넘어서는 것입니다. 이를 위해서는 계획, 전문화된 도구, 수집 엔진이 필요합니다. 자세한 내용은 LLM 에이전트 소개를 참조하세요.

요약

멀티모달 모델의 발전과 RAG 기반 도구 및 서비스에 대한 수요 증가로 인해 생성형 AI 애플리케이션에서 향후 멀티모달 기능을 개선하고 탐색할 수 있는 여지가 많이 있습니다.

멀티모달 기능을 핵심 운영 및 기술 도구에 통합할 수 있는 기업은 아직 나열되지 않은 사용 사례를 위해 AI 서비스 및 제품을 확장할 수 있는 더 나은 준비가 되어 있습니다.

GitHub에서 멀티모달 RAG 워크플로우를 구현하여 직접 경험해 보세요.

관련 리소스

Discuss (0)

Tags