
지금까지 Part 1~3을 통해 우리는 LLM이 문맥을 놓치는 현상을 이해하고, 모델 스스로 검색 품질을 평가하며(Self-RAG), 부족한 지식을 웹으로 보완하는(CRAG) 기술적 진화를 살펴보았습니다. 이 방법들은 "프랑스의 수도는 어디인가?"와 같은 구체적인 사실(Fact)을 찾아 답변하는 데 매우 탁월합니다.
하지만 현실의 비즈니스 질문은 이보다 훨씬 포괄적입니다. 예를 들어, "수만 페이지의 고객 피드백 전체를 관통하는 주요 불만 트렌드는 무엇인가?"라는 질문을 던진다면 어떨까요? 기존의 벡터 검색(Vector RAG) 방식은 '트렌드'나 '불만'이라는 단어와 유사한 지엽적인 문서 몇 개만 가져올 뿐, 데이터 전체의 거시적인 맥락을 요약하지 못해 환각을 일으키기 쉽습니다.
마이크로소프트(Microsoft) 연구진이 발표한 GraphRAG는 지식 그래프(Knowledge Graph)를 도입해 파편화된 정보를 연결하고 데이터 전체를 조망하는 혁신적인 아키텍처입니다.
모든 RAG 시스템은 크게 두 가지 시점으로 나뉘어 작동합니다. 이를 '시험공부'와 '실제 시험'에 비유하면 이해가 빠릅니다.
GraphRAG의 진정한 혁신은 바로 이 '인덱싱 시점'에 엄청난 공을 들여 거대한 지식의 지도를 미리 그려둔다는 점에 있습니다.
GraphRAG는 인덱싱 시점에 외부 데이터베이스를 가져오는 것이 아니라, LLM이 직접 원본 문서를 읽고 지식을 추상화(Abstractive Summarization)하여 스스로 지식 그래프를 축조합니다. 텍스트를 의미 단위(Chunks)로 쪼갠 뒤, 모델에게 다음 세 가지 핵심 요소를 추출하도록 지시합니다.
결과적으로 문서 안에 흩어져 있던 단어들이 서로 촘촘하게 연결된 거대한 정보의 거미줄(지식 그래프)이 완성됩니다.
지식 그래프를 구축하고 나면 수만 개의 점과 선이 복잡하게 뒤엉키게 됩니다. 이 거대한 그래프 전체를 LLM의 컨텍스트 창에 밀어 넣는 것은 물리적으로 불가능합니다. 이를 해결하기 위해 도입한 네트워크 과학의 개념이 바로 '커뮤니티(Community)'입니다.
커뮤니티란, 그래프 내에서 '서로 유독 더 밀접하게 연결된 엔티티들의 무리'를 뜻합니다. 인간 사회로 비유하면 그 계층 구조가 명확해집니다.
GraphRAG는 라이덴(Leiden) 알고리즘을 사용해 전체 지식 그래프를 이러한 계층적 커뮤니티로 분할합니다. 그리고 인덱싱 시점에 각 커뮤니티별로 "이 무리의 핵심 인물은 누구이며, 어떤 주요 이슈가 얽혀 있는가"를 설명하는 요약 보고서(Community Summaries)를 미리 작성해 둡니다.
사용자가 "이 데이터셋 전체를 관통하는 핵심 트렌드는 무엇인가?"와 같은 거시적인 질문을 던지는 쿼리 시점(Query Time)이 되면, GraphRAG는 개별 문서 조각을 찾는 대신 미리 생성된 '커뮤니티 요약 보고서'를 활용해 맵-리듀스(Map-Reduce) 공정을 가동합니다.
💡 [Deep Dive] 97%의 비용을 아끼는 '루트 레벨(C0)'
마이크로소프트의 실험 결과, 가장 거시적인 테마를 담은 최상위 '루트 레벨(C0)' 커뮤니티 요약본들만 활용해도 전체 텍스트 요약(TS) 대비 토큰 소모량을 무려 97% 이상 절약할 수 있었습니다. 또한 기존 벡터 RAG 대비 답변의 포괄성에서 72~83%의 높은 승률을 거두었습니다.
GraphRAG 아키텍처는 이미 개발자들이 즉시 활용할 수 있는 강력한 생태계를 갖추고 있습니다.
우리는 총 4편의 긴 여정을 통해 LLM의 고질적인 환각을 억제하는 RAG 기술의 진화를 살펴보았습니다.
이러한 RAG의 발전으로 인공지능이 단순히 텍스트를 나열하지 않고, 스스로 지식을 검열하고 방대한 데이터에서 숲을 그려낼 줄 아는 진정한 '문제 해결사(Problem-Solver)'로 발전해나가는 것 같습니다.