RAG 기술의 진화: Naive에서 Modular까지 총정리

검색증강생성(RAG)은 LLM의 환각 현상을 줄이고 정확한 답변을 제공하는 강력한 기술입니다. 초기 Naive RAG의 단순 벡터 유사도 한계를 극복하기 위해 등장한 Advanced RAG는 의미론적 청킹, 쿼리 최적화, 다양한 검색 방법을 도입했습니다. 더 나아가 Modular RAG는 시스템을 레고 블록처럼 모듈화하여 유연성과 확장성을 높였습니다. 이 글에서는 최신 논문을 바탕으로 RAG 기술의 발전 과정과 각 방식의 장단점을 심층 분석합니다.

RAG 기술의 진화: Naive에서 Modular까지 총정리

RAG란 Retrieve (검색하다)라는 단어에서 알 수 있듯이 '검색'을 통해 LLM을 더욱 똑똑하게 해주는 일종의 검색 시스템입니다. RAG는 파인튜닝과 비교해 적은 노력과 리소스만으로도 LLM의 환각현상(Hallucination)을 방지하고 보다 상세하고 정확한 답변을 제공해 줄 수 있는 해결책으로 각광받고 있습니다.

그러나 RAG 역시 한계점을 가지고 있으며, 이러한 한계점들을 극복하기 위한 방향으로 진화하고 있습니다. 예를들어 초기의 RAG는 검색 쿼리와 문맥(context) 사이의 의미론(semantic) 유사성을 제대로 파악하지 못한다는 치명적인 문제점을 가지고 있었습니다. 뿐만 아니라 문서의 양의 많아지고 지식의 범위가 넓어질수록 관련된 답변이 어려워 진다는 점 역시 대표적인 RAG의 한계점으로 지적되어 왔습니다.

Retrieval-Augmented Generation for Large Language Models: A Survey

이러한 초기 RAG의 기술적 한계점을 보완하기 위해 등장한 것이 바로 Advanced RAG와 Modular RAG입니다. 이번 시간에는 RAG와 관련된 최신 논문들을 리뷰하며 각 RAG 방식의 한계점과 이를 극복하기 위해 등장한 새로운 기법들인 Advanced RAG와 Modular RAG에 대해 기술 발전의 흐름에 따라 소개하도록 하겠습니다. 

1. Naive RAG

LLM에 '검색' 기능을 추가하여 기존 LLM의 답변 생성 과정을 향상시킨 초기 RAG 모델을 Naive RAG라고 합니다. Naive RAG는 사용자의 질문과 관련된 정보를 문서에서 검색하여 답변에 참고하여 보다 정확하고 상세한 답변이 가능하도록 하는 방식으로 작동합니다. 예를 들어, 보험 약관이나 가입 및 보험금 수령 조건에 관한 내용이 담긴 문서를 pdf나 csv등의 형식을 통해 문맥에 제공하면, RAG는 관련 질문이 들어왔을 때 이를 활용하여 답변을 생성해 냅니다.

그러나 Naive RAG는 쿼리와 문서 간의 의미론적 유사성을 심층적으로 탐색하지 못하고 단순히 벡터간 유사도(similarity) 계산에만 의존한다는 한계점을 가지고 있었습니다. 이로 인해 검색 결과에 실제로 관련 없는 정보가 나오거나, 검색 결과로 나오는 내용이 중복되거나 불필요한 정보가 답변에 포함되는 등 문제가 발생할 수 있습니다. 단어를 행렬로 변환하였을 때 비슷하게 측정된 유사도에 의해 검색된 문맥(context) 정보의 내용이 의미론적으로 봤을 때에는 연관성이 적은 내용인 경우가 대표적인 예입니다.

이러한 Naive RAG의 한계점을 극복하기 위해 등장한 것이 바로 Advanced RAG입니다. Advanced RAG는 보다 정교한 검색 방법과 텍스트 처리 기술을 통해 쿼리와 문서간의 의미론적 유사성을 반영하였으며, 답변의 정확성을 향상시키는 기법입니다.

2. Advanced RAG

Advanced RAG는 Naive RAG의 검색 기능을 개선하고 텍스트 처리 기술을 도입하여 RAG 성능을 향상시킨 모델입니다. Advanced RAG는 향상된 인덱싱(Indexing) 기법과 검색 전/후처리 그리고 검색 방법 및 정보 압축 방법을 통해 기존의 Naive RAG가 가지고 있던 문제점들을 해결하였습니다. 그럼 Advanced RAG의 각각의 요소들에 대해 살펴보도록 하겠습니다.

Retrieval-Augmented Generation for Large Language Models: A Survey

1) 인덱싱(Indexing) 개선 : 계층적 구조와 의미론적 청킹(Semantic Chunking) 등의 방법을 적용해 정보 검색의 효율성을 높였습니다. 예를 들어, 문서를 의미 단위로 분할하여 저장하고, 질문 유형에 따라 적절한 크기의 정보를 검색하는 것과 같은 방식입니다. 

2) 검색 전/후 처리: Query Rewrite, Query Expansion 등을 통해 검색어의 의미를 명확히 하고 검색 범위를 조정하여 관련성이 높은 정보를 찾습니다. 예를 들어, "서울 맛집 추천"이라는 질문을 "서울에서 인기 있는 맛집 추천"으로 다시 작성하거나, "레스토랑", "음식점"과 같은 관련 용어를 추가하여 검색합니다.

3) 다양한 검색 방법 : 키워드 검색(Keyword Search)와 시맨틱 검색(Semantic Search) 방법을 결합하여 Naive RAG의 한계점인 의미론적 유사성을 반영하지 못하는 문제점을 해결하고 정확도를 높였습니다.

4) 정보 압축: LLM에 입력되는 정보의 양을 줄여 효율성을 높이고, 환각현상(Hallucination)이 발생할 확률을 줄였습니다.

위와 같은 다양한 방법들을 통해 Advanced RAG는 Naive RAG의 한계점을 극복하고, 성능을 개선할 수 있었지만, 복잡해진 시스템 구조로 인해 프로덕션 환경에서의 유지보수 및 제어가 어려워진다는 한계점을 노출하였습니다. 이러한 Advanced RAG의 한계점을 극복하기 위해 Modular RAG 기법이 제시되었습니다. Modular RAG는 Advanced RAG를 구성하는 시스템적 요소를 모듈화하여 유연성과 확장성을 높인 기법이라고 할 수 있습니다.

3. Modular RAG

Modular RAG는 RAG 시스템을 모듈화하여 유연하고 확장 가능한 구조를 제공한다는 점이 가장 큰 특징입니다. Modular RAG 기법은 각 기능을 LEGO 블록과 같은 독립적인 모듈로 설계하여 필요에 따라 컴포넌트를 쉽게 추가하거나 변경할 수 있다는 장점이 있습니다. 예를 들어, 문서 검색, 답변 생성, 평가 등의 기능을 각각 모듈로 구성할 수 있습니다.

Modular RAG: Transforming RAG Systems into LEGO-like Reconfigurable Frameworks

Modular RAG를 적용하면 조건에 따라 RAG 파이프라인을 변경하거나 분기 처리를 수행하여 유연한 흐름 제어가 가능합니다. 뿐만 아니라 텍스트 데이터 외에도 표, 이미지 등 다양한 형태의 데이터를 처리할 수 있도록 모듈을 설계할 수 있다는 점이 큰 장점입니다. 예를 들어, 표에서 요약문이나 주요 정보를 추출할 수 있을 뿐만 아니라, 관련된 이미지를 분석하여 텍스트 정보를 생성하고 출력해주는 것 역시 가능합니다.

Modular RAG의 가장 큰 장점은 모듈 단위로 관리 및 업데이트가 가능하여 시스템 유지보수가 용이하다는 점입니다. 또한 새로운 기능이나 데이터 형식에 대한 지원이 필요한 경우, 해당 기능을 수행하는 모듈을 추가하여 시스템을 쉽게 확장할 수 있다는 점에서 확장성이 뛰어나고, 독립적인 모듈을 다른 RAG 시스템에서도 적용 및 재사용이 가능하다는 점에서 재사용성 역시 뛰어나다고 할 수 있습니다.

4. RAG의 미래는?

이처럼 RAG는 LLM 기술의 발전과 함께 한계점을 보완하는 방식으로 지속적으로 발전해 나아갈 것으로 것으로 예상됩니다. 특히, LLM을 답변 생성뿐만 아니라 평가, 라우팅 등 다양한 기능에 활용하고, RAG 시스템의 각 기능을 모듈화하여 실험과 개선을 지속적으로 수행함으로써 더욱 효율적이고 정확한 답변 생성 시스템을 구축이 가능해 질 것으로 기대됩니다.






문과 출신으로 AI 스타트업에서 데이터 사이언티스트로 일하고 있습니다. 


* 슈퍼브 블로그의 외부 기고 콘텐츠는 외부 전문가가 작성한 글로 운영 가이드라인에 따라 작성됩니다. 슈퍼브 블로그에서는 독자분들이 AI에 대한 소식을 더 쉽고 간편하게 이해하실 수 있도록 유용한 팁과 정보를 제공하고 있습니다.