최근 거대 언어 모델(LLM)을 활용한 다양한 서비스가 등장하고 있습니다. 사용자들이 선호하는 서비스를 보면 더욱 정확하고 신뢰도 높은 답변을 얻기 위한 RAG(Retrieval-Augmented Generation) 기술을 잘 활용하고 있다는 특징이 있습니다. 이번 포스팅에서는 RAG의 개념과 동작 방식을 알아보고 최근 관심을 모으고 있는 멀티 모달 RAG를 소개하겠습니다.
RAG 개념 및 선도 기업들의 활용 전략
RAG는 LLM과 벡터 데이터베이스를 결합하여 특정 지식 기반 내에서 질의응답을 처리하는 기술입니다. 사용자 질의를 벡터화하고, 지식 기반의 문서 조각들을 벡터 비교를 통해 검색하여 LLM에 제공함으로써 답변의 정확도와 품질을 향상시킵니다.
테크 기업들은 고객 지원 시스템이나 개발자 문서에 RAG를 적용하여 정확하고 빠른 검색 및 응답을 지원하고 있으며, 이커머스 기업들은 상품 리뷰, FAQ, 고객 문의 데이터를 RAG 기반으로 검색하여 고객 서비스 자동화에 활용하고 있습니다. 의료 및 금융 분야에서는 방대한 문서 관리에 RAG를 적용하여 내부 지식 공유 및 규제 준수를 효율적으로 달성하고 있습니다.
RAG 작동 방식
RAG는 크게 인제스천(Ingestion) 단계와 쿼리(Query) 단계로 나눌 수 있습니다. 인제스천 단계를 알아보겠습니다. 이 단계는 사용자의 질문에 대한 정확하고 효율적인 답변을 제공하기 위한 핵심 과정으로, 외부 문서를 벡터 검색이 가능한 형태로 변환하고 저장합니다.
가장 먼저 PDF와 같은 외부 문서를 시스템에 입력하는 작업이 이루어집니다. 다양한 형태의 문서를 시스템이 처리할 수 있는 형태로 변환하는 초기 단계입니다. 이후, 입력된 문서는 의미 단위의 작은 조각(chunks)으로 분할됩니다. 문서를 적절한 크기로 나누는 이유는 임베딩 벡터의 품질을 유지하고 검색 성능을 향상시키기 위함입니다.
분할된 각 청크는 벡터 공간에 매핑되는 임베딩 벡터로 변환됩니다. 임베딩 벡터는 텍스트의 의미를 수치화한 표현으로, 유사한 의미를 가진 텍스트는 벡터 공간에서 가까운 위치에 놓입니다. 이는 벡터 검색 과정에서 질문과 의미상 유사한 청크를 효율적으로 찾아내는 데 중요한 역할을 합니다.
생성된 임베딩 벡터는 벡터 데이터베이스에 저장되고, 검색 효율성을 높이기 위한 인덱스가 구축됩니다. 사용자의 질문이 입력되면 질문 또한 임베딩 벡터로 변환되어 데이터베이스를 검색하고, 질문 벡터와 가장 유사한 임베딩 벡터를 갖는 문서 조각을 찾아냅니다.
마지막으로, 벡터 검색 결과에서 선택된 임베딩 벡터에 해당하는 실제 문서 조각의 텍스트를 클라우드 스토리지로부터 추출하고, 새로운 문서 조각이 생길 때마다 임베딩 벡터를 생성하고 데이터베이스에 실시간으로 삽입하여 인덱스를 업데이트합니다. 이러한 스트리밍 삽입을 통해 시스템은 최신 정보를 반영하고 답변의 정확성을 유지합니다.
다음으로 쿼리 단계는 사용자의 질문을 시스템이 이해하고 답변을 생성하는 핵심 과정입니다. 사용자는 자연어로 질문을 입력하며, 이때 질문은 시스템이 처리할 수 있는 형태인 벡터로 변환됩니다. 이러한 벡터는 질문과 문서 조각 간의 의미적 유사성을 비교하는 데 사용됩니다.
쿼리 임베딩 단계를 통해 입력된 질문은 벡터 공간에 매핑되는 임베딩 벡터로 변환되며, 이 벡터를 사용하여 벡터 데이터베이스를 검색하고 질문과 의미상 가장 유사한 문서 조각을 찾아내는 의미 검색 단계가 이어집니다. 이 단계에서는 Approximate Nearest Neighbors (ANN) 검색 기술을 활용하여 가장 가까운 벡터들을 빠르게 검색합니다.
의미 검색 결과를 바탕으로 질문과 가장 관련성이 높은 상위 k개의 문서 조각을 추출하고, 선택된 문서 조각들의 실제 텍스트를 클라우드 스토리지로부터 추출합니다. 임베딩 벡터는 의미적 유사성을 파악하는 데 사용되지만, 실제 답변 생성에는 원본 텍스트가 필요하기 때문입니다.
추출된 문서 조각과 질문을 함께 LLM에 입력하여 자연스럽고 명확한 답변을 생성하고, 이전 대화의 문맥을 기억하고 이를 바탕으로 추가 질문에 대한 답변을 제공하여 대화의 자연스러운 흐름을 유지하는 다중 턴 대화 단계를 통해 사용자와 연속적으로 질문과 답변을 주고받습니다.
멀티 모달 RAG 개념, 장점, 활용 사례
이제 주제를 멀티 모달 RAG로 옮겨 보겠습니다. 멀티 모달 RAG는 텍스트를 입력으로 받고 텍스트를 출력하는 것에 특화되어 있는 기존 RAG의 한계를 극복하고 더욱 넓은 범위의 정보를 다룰 수 있게 해주는 기술이라 이해하면 됩니다. 멀티 모달 RAG는 기존 텍스트 중심의 RAG를 이미지, 오디오, 비디오 등 다양한 유형의 데이터를 함께 처리할 수 있도록 확장한 기술입니다. 문서 내 테이블, 이미지, 도표 등의 정보를 추가적인 임베딩 또는 LLM 분석을 통해 텍스트화하거나 멀티모달 모델로 처리하여 포괄적인 정보 검색, 기업 문서 구조화, 다양한 질의 대응, 확장성 등의 장점을 제공합니다. 멀티 모달 RAG는 기술 문서 관리, 사내 지식 기반 구축, R&D 및 학술 영역 등 다양한 분야에서 활용될 수 있습니다.
멀티 모달 RAG 구현 방법
멀티 모달 RAG를 구현하기 위해서는 먼저 문서에서 텍스트와 이미지를 추출하고, 이미지를 필요에 따라 텍스트화하거나 멀티 모달 임베딩을 생성해야 합니다. 텍스트와 이미지 임베딩을 벡터 데이터베이스에 저장하고, 사용자 질의를 벡터화하여 텍스트 및 이미지 임베딩을 검색합니다. 검색된 청크와 이미지를 하나의 문맥으로 합쳐 LLM에 전달하여 최종 답변을 생성하고, 필요에 따라 답변에서 참고한 출처를 표시할 수 있습니다. 또한, 오디오 및 비디오 데이터로의 확장, Human-in-the-loop 방식 적용, 모니터링 및 로깅 기능을 통해 시스템을 고도화할 수 있습니다.
RAG 활용의 새로운 지평을 열다
소개한 바와 같이 RAG는 LLM에 실시간 정보를 제공하여 답변의 정확도와 업데이트 가능성을 향상시키는 강력한 기술입니다. 멀티 모달 RAG는 텍스트뿐 아니라 다양한 형태의 데이터를 함께 분석하여 더욱 풍부한 검색 및 응답 시나리오를 구현합니다. 기업은 RAG 및 멀티 모달 RAG를 적극적으로 활용하여 지식 관리 혁신을 달성하고, Google Cloud의 Vertex AI 및 멀티 모달 임베딩 API 등을 통해 구현 부담을 줄이고 신뢰도 높은 검색 및 질의응답 시스템을 구축할 수 있습니다. 더 자세한 내용이 궁금하시면 메가존소프트가 도움을 드리겠습니다.