Trulens를 사용한 멀티모달 RAG 시스템 평가
생성형 AI (GenAI)에서 멀티모달 아키텍처가 더욱 두드러지면서, 조직들은 GPT-4V 및 Gemini Pro Vision과 같은 멀티모달 모델을 사용해 솔루션을 점점 더 많이 구축하고 있습니다. 이러한 모델은 핵심적인 장점을 제공합니다. 텍스트, 이미지 등 다양한 데이터 유형을 의미론적으로 임베딩하고 해석할 수 있어, 더 넓은 범위의 애플리케이션에서 기존의 대규모 언어 모델(LLMs)보다 더 다재다능하고 효과적입니다.
하지만 멀티모달 모델에 대한 관심이 커질수록, 그 신뢰성과 정확성을 보장하는 과제도 함께 커지고 있습니다. LLM과 마찬가지로, 멀티모달 모델은 특히 여러 유형의 입력 데이터를 동시에 처리해야 할 때 부정확하거나 관련 없는 출력을 생성하는 "환각"에 취약합니다. 멀티모달 검색 증강 생성(RAG)은 외부 소스의 관련 맥락 정보로 모델을 보강함으로써 이러한 한계를 해결합니다.
Zilliz가 주최한 Unstructured Data Meetup에서, Josh Reini(TruEra의 Developer Advocate, 현재 Snowflake에 인수됨)는 멀티모달 프레임워크로 작업할 때의 과제와 솔루션에 대한 인사이트를 공유했습니다. Josh는 Trulens와 같은 오픈 소스 도구를 사용해 AI 환각을 어떻게 완화할 수 있는지, 그리고 Milvus 벡터 데이터베이스를 통합하면 멀티모달 RAG 시스템의 성능을 어떻게 향상시킬 수 있는지 강조했습니다.
11월 SF Unstructured Data Meetup에서 발표 중인 Josh Reini
이 블로그에서는 Josh의 인사이트를 요약하고, 복잡한 데이터를 처리할 때 이러한 시스템이 정확하고 관련성 높은 결과를 제공하도록 보장하는 데 있어 평가(또는 "Evals")가 멀티모달 RAG 시스템 개선에 수행하는 중요한 역할을 논의하겠습니다. 더 많은 인사이트를 얻고 싶다면 YouTube에서 Josh의 전체 발표도 시청하실 수 있습니다.
멀티모달 모델과 멀티모달 RAG 이해하기
멀티모달 모델은 텍스트, 이미지, 오디오, 비디오와 같은 여러 유형의 데이터 또는 모달리티를 처리하고 통합할 수 있는 머신러닝 모델입니다. 단일 입력 유형에 초점을 맞추는 기존 언어 모델과 달리, 멀티모달 모델은 다양한 소스의 정보를 결합해 더 맥락적으로 정확한 출력을 생성합니다. 이러한 다재다능함은 데이터가 서로 다른 형식으로 제공되는 시나리오에서 특히 유용합니다. 예를 들어, 멀티모달 모델은 이미지와 텍스트 설명을 함께 사용해 하나의 입력 유형에만 의존하는 모델보다 더 정확한 응답을 생성할 수 있습니다.
LLM과 마찬가지로, 멀티모달 모델은 일반화에 최적화되어 있어 다양한 입력에 응답할 수 있습니다. 하지만 이러한 최적화에는 비용이 따릅니다. 모델은 특정 데이터를 암기하는 것에 대해 종종 페널티를 받으며, 이는 유연성과 정확성 사이의 긴장을 만들어냅니다. 이러한 균형 잡기는 텍스트 기반 증상과 X-ray 이미지를 바탕으로 질병을 진단하는 것처럼, 작업이 여러 모달리티를 교차 참조해야 할 때 까다로워집니다.
이러한 범용 모델에 장기 기억을 제공하기 위해, 특정 "암기된" 지식을 벡터 스토어(예: Milvus)와 같은 외부 리소스로 오프로딩할 수 있습니다. 이 기술은 Multimodal RAG로 알려져 있습니다.
Traditional RAG 시스템은 LLMs의 생성 프로세스를 향상하기 위해 관련 텍스트를 검색하는 데 초점을 맞추며, 더 정확하고 개인화된 응답을 생성합니다. Multimodal RAG는 멀티모달 모델과 벡터 데이터베이스를 사용하여 이미지, 오디오, 비디오 등 추가 데이터 유형을 검색 및 생성 프로세스에 통합함으로써 텍스트를 넘어 확장됩니다. 이 접근 방식은 Multimodal RAG 시스템이 텍스트 및 비텍스트 입력에 대한 더 깊은 이해가 필요한 작업에서 더 효과적으로 수행할 수 있도록 합니다.
예를 들어, Multimodal RAG는 시각적 질의응답 시스템에서 관련 이미지나 비디오를 검색하여 더 정확한 답변을 생성할 수 있습니다. 마찬가지로, 이미지 캡셔닝이나 멀티모달 대화 시스템과 같은 작업에서는 시각적 데이터와 텍스트 데이터를 결합하는 능력을 통해 시스템이 더 문맥적으로 관련성 있고 정확한 출력을 제공할 수 있습니다.
멀티모달 모델과 고급 검색 메커니즘의 상호 보완적 강점을 활용함으로써, Multimodal RAG는 복잡한 다중 형식 데이터를 처리하고 광범위한 애플리케이션 전반에서 풍부하고 문맥을 인식하는 응답을 생성하기 위한 강력한 솔루션을 제공합니다.
Multimodal RAG는 어떻게 작동하나요?
이제 Multimodal RAG의 개념을 소개했으니, 이러한 시스템이 어떻게 작동하는지 살펴보겠습니다. 프로세스를 설명하기 위한 예시로 검색 증강 시각적 질의응답 시스템을 사용하겠습니다:
Figure- 멀티모달 RAG 시스템의 작동 방식
멀티모달 입력 처리: RAG 시스템은 이미지와 함께 사용자 쿼리를 받습니다.
임베딩: 이미지와 텍스트 쿼리는 모두 멀티모달 임베딩 모델을 사용하여 벡터 임베딩으로 변환됩니다. 이러한 임베딩을 통해 시스템은 서로 다른 모달리티(텍스트와 이미지) 전반에서 입력을 분석하고 비교할 수 있으며, 두 가지 사이의 관계를 이해할 수 있게 됩니다.
벡터 데이터베이스 검색: 시스템은 이미지 임베딩을 사용하여 Milvus 또는 그 관리형 버전인 Zilliz Cloud와 같은 벡터 데이터베이스를 쿼리하여 유사한 이미지와 그에 연결된 주석 또는 관련 데이터를 검색합니다. 이 검색 단계는 실제 데이터에서 추가적인 맥락을 제공함으로써 모델의 지식을 풍부하게 합니다.
완성: 검색된 데이터(유사한 이미지와 그 주석)는 원래 입력 쿼리와 결합됩니다. 멀티모달 모델은 이 풍부해진 맥락을 사용하여 원래 입력과 검색된 정보를 모두 활용하는 포괄적인 응답 또는 완성을 생성합니다.
응답: 마지막으로, 시스템은 검색된 외부 데이터를 원래 입력과 통합하여 정확한 응답을 생성합니다. 이를 통해 모델은 사용자의 쿼리에 대해 더 문맥을 인식하고, 관련성 있으며, 정밀한 답변을 생성할 수 있습니다.
검색을 통해 외부 데이터를 통합함으로써, Multimodal RAG 시스템은 모델이 내부적으로 알고 있는 것을 넘어 더 정확하고 문맥적으로 관련성 있는 출력을 보장합니다.
체계적인 평가의 필요성
멀티모달 모델과 검색 시스템의 강력한 조합에도 불구하고, 과제는 여전히 남아 있습니다. 인상적인 데모가 Multimodal RAG의 잠재력을 보여줄 수는 있지만, 데모를 견고한 프로덕션 준비 애플리케이션으로 전환하는 것은 훨씬 더 어렵습니다.
이러한 과제를 극복하는 핵심은 체계적인 평가입니다. 이러한 평가는 멀티모달 애플리케이션의 약점, 실패 모드, 개선 영역을 식별하는 데 도움이 되며, 개발자가 시간이 지남에 따라 이를 개선하고 최적화할 수 있게 합니다. AI 분야에서는 흔히 두 가지 유형의 팀을 볼 수 있습니다:
약 80%의 경우에 작동하는 흥미로운 프로토타입을 구축하는 팀.
이러한 시스템을 프로덕션에 성공적으로 배포하는 팀. 이는 훨씬 더 복잡하고 까다로운 작업입니다.
두 번째 그룹—프로덕션에 집중하는 그룹—에게는 체계적인 반복과 평가가 필수적입니다. 특히 신뢰성과 정확성이 중요한 교육(LLM 기반 튜터), 고객 지원(대화 기록 요약), 금융 서비스(내부용 또는 고객 대면 챗봇)와 같은 분야에서는 더욱 그렇습니다.
바로 여기서 흔히 Evals라고 불리는 평가 도구가 필수적이 됩니다. 평가 도구를 통해 개발자는 프로덕션 수준의 솔루션을 향해 반복해 나가면서 성능을 모니터링하고, 신뢰성을 테스트하며, 개선 영역을 식별할 수 있습니다. 널리 사용되는 평가 도구로는 Trulens, Ragas, LangFuse, OpenAI Evals, DeepEval, Phoenix, LangSmith가 있습니다.
다음 섹션에서는 오픈소스 평가 도구인 TruLens를 사례 연구로 사용하여 체계적인 평가가 멀티모달 RAG 시스템에 어떻게 적용될 수 있는지 보여드리겠습니다.
TruLens가 멀티모달 RAG 평가에 어떻게 도움이 되는가
Trulens는 대규모 언어 모델(LLM)과 멀티모달 RAG 애플리케이션을 평가하기 위한 오픈소스 도구입니다. 이 도구의 강점은 애플리케이션을 모니터링, 테스트, 디버깅할 수 있는 능력에 있으며, 특히 개선 영역을 식별하고 앱 신뢰성을 보장하는 데 유용합니다.
개발자가 앱을 TruLens에 연결하면, 기록을 로깅하고 모델의 성능을 체계적으로 평가하는 평가 함수를 정의할 수 있습니다. 이러한 평가는 특히 복잡한 멀티모달 RAG 시스템에서 부정확하거나 관련 없는 응답으로 이어질 수 있는 환각을 감지하는 데 중요합니다.
일반적인 RAG 시스템에서는 세 가지 핵심 구성 요소를 평가해야 합니다:
그림- RAG의 세 가지 기둥(RAG Triad)
Query: 사용자가 쿼리를 보냅니다. 이는 텍스트 형태일 수도 있고 텍스트와 이미지가 결합된 형태일 수도 있습니다.
Context: 시스템은 모델에 맥락을 제공하기 위해 벡터 데이터베이스에서 이미지와 텍스트 같은 관련 정보를 검색합니다.
Response: LLM 또는 멀티모달 모델은 검색된 맥락과 원래 쿼리를 기반으로 답변을 생성합니다.
모델이 정확하고 신뢰할 수 있는 상태를 유지하도록 하기 위해, 각 단계에서 평가를 수행하여 환각을 감지하고 시스템이 얼마나 잘 작동하는지 평가합니다. 이는 첨부된 다이어그램에 표시된 것처럼 흔히 RAG Triad라고 불립니다.
시스템의 출력이 신뢰할 수 있도록 보장하기 위해 세 가지 중요한 평가 유형이 있습니다:
Context Relevance: 이는 검색된 정보(텍스트 또는 이미지)가 원래 쿼리와 얼마나 밀접하게 일치하는지 확인합니다. 검색된 맥락이 현재 쿼리에 관련 있고 유용한가?
Groundedness: Groundedness는 검색된 맥락이 생성된 응답을 뒷받침하는지 평가합니다. 응답이 검색된 정보에 의존하는가, 아니면 근거가 없거나 잘못된 데이터를 생성하고 있는가?
Answer Relevance: 이는 모델 응답의 유용성과 정확성을 측정합니다. 답변이 사용자의 질문에 의미 있고 관련성이 있는가?
TruLens를 통합함으로써 개발자는 멀티모달 RAG 시스템의 성능을 지속적으로 추적하고 개선할 수 있으며, 모델이 정확하고, 증거에 기반하며, 맥락적으로 관련성을 유지하도록 보장하는 동시에 환각을 최소화할 수 있습니다.
Trulens를 사용해 RAG를 구현하고 평가하는 방법에 대한 단계별 가이드는 이 튜토리얼: Evaluations for Retrieval Augmented Generation: TruLens + Milvus를 읽어보세요.
실제 사례: 시각적 질의응답 RAG 시스템 평가하기
이를 더 잘 이해하기 위해 시각적 질의응답 RAG 시스템의 예를 살펴보겠습니다. 이 시스템에서 사용자는 쿼리와 이미지를 모두 제공합니다. 모델은 이미지에서 임베딩을 생성하고 벡터 데이터베이스에서 유사한 이미지를 검색한 다음, 이 이미지들을 주석과 함께 사용해 최종 응답을 생성합니다.
각 단계에서 검색된 이미지가 원래 쿼리와 관련이 있는지, LLM의 응답이 제공된 컨텍스트에 근거하고 있는지, 최종 답변이 원래 질문과 관련이 있는지를 평가해야 합니다. 시스템이 관련 없는 이미지를 검색하거나 잘못된 진단을 생성하는 경우, 이러한 평가는 실패 모드를 정확히 파악하고 모델을 개선하는 데 도움이 됩니다.
한 팀인 X-ray Insight는 해커톤에서 이러한 평가가 실제로 어떻게 작동하는지 보여주는 앱을 만들었습니다. 이들은 X-ray 이미지와 주석(진단)을 스크래핑하고, 이미지를 이미지 임베딩으로 변환한 뒤, 이러한 임베딩을 메타데이터(진단)와 함께 Milvus/Zilliz 벡터 데이터베이스에 로드했으며, 사용자가 제공한 이미지(역시 임베딩으로 변환됨)를 사용해 유사한 사례를 검색했습니다. 이러한 이미지와 연결된 메타데이터(예: 진단)는 멀티모달 모델을 통해 최종 진단을 생성하는 데 사용되었습니다.
그림: X-ray Insight 시스템 작동 방식
TruLens를 사용하여 X-ray Insight 팀은 여러 단계에서 모델의 성능을 평가할 수 있었습니다:
임베딩 생성: 이미지를 전처리하고, 임베딩을 계산하며(시간이 많이 걸리는 과정), 임베딩 품질을 보장합니다.
사례 검색: 계산된 임베딩을 기반으로 벡터 데이터베이스에서 관련 사례를 검색합니다.
최종 진단: 환자 기록에서 진단을 생성하고 이를 검색된 데이터와 비교합니다.
이러한 평가가 마련되면 TruLens는 팀이 진단 전반에 걸친 공통 특징을 분석하고, 실패 모드를 식별하며, 얻은 인사이트를 바탕으로 개선할 수 있도록 지원합니다.
결론
요약하면, 멀티모달 모델과 RAG 시스템을 프로덕션에 배포하려면 멋진 프로토타입을 만드는 것 이상의 것이 필요합니다. 컨텍스트 관련성, 근거성, 답변 관련성과 같은 평가를 통한 체계적인 반복은 이러한 모델이 신뢰할 수 있고 정확하도록 보장하는 데 필수적입니다. TruLens와 같은 도구는 이러한 앱을 추적, 테스트, 디버깅하기 위한 프레임워크를 제공하여 개발자가 모델을 개선하고 환각을 방지할 수 있도록 돕습니다.
멀티모달 모델이 할 수 있는 일의 경계를 계속 확장해 나가는 가운데, 평가는 개발 과정의 핵심 요소로 남을 것입니다. 평가는 이러한 모델이 근거 있고 관련성 있는 방식으로 출력을 생성하도록 보장할 것입니다.
추가 리소스
계속 읽기

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

1 Table = 1000 Words? Foundation Models for Tabular Data
TableGPT2 automates tabular data insights, overcoming schema variability, while Milvus accelerates vector search for efficient, scalable decision-making.

OpenAI o1: What Developers Need to Know
In this article, we will talk about the o1 series from a developer's perspective, exploring how these models can be implemented for sophisticated use cases.



