GraphRAG는 지식 그래프와 같은 그래프 구조 데이터를 통합하는 RAG의 고급 버전입니다.
의미적으로 유사한 텍스트를 검색하기 위해 벡터 검색에 의존하는 기본 RAG 시스템과 달리, GraphRAG는 그래프의 관계 구조를 활용해 도메인별 쿼리를 기반으로 정보를 검색하고 처리한다.
물론 증강된 정보를 가져와서 답변을 생성한다는 점은 동일하지만, 참조하는 데이터가 본질적으로 다르기 때문에 상황에 따라 VectorRAG가 적합한 상황이 있고, GraphRAG가 적합한 상황도 있다.
GraphRAG는 문서를 단순히 청크로 검색하지 않고,문서에서 지식 그래프를 만들고 → 그래프를 계층적으로 요약한 뒤 → 질문에 맞는 ‘요약된 그래프’를 컨텍스트로 사용하는 RAG 방식이다. 여기서 요약된 그래프를 서브 그래프라고 한다.
위의 그림을 참고하면, GraphRAG의 구축에는 결국 지식 그래프 구축이 포함된다.
크게 두 가지를 추출하는 것을 목표로 하는데, Entity Extraction / Relationship Extraction이다. LLM을 통해서 텍스트 청크에서 관계와 엔티티를 추출하는 단계라고 이해할 수 있다. 세부적인 구축 방법은 지식 그래프에 대한 이전 포스트를 참고하자.
이렇게 추출한 엔티티와 관계들을 연결하면 하나의 지식 그래프가 만들어진다.
그래프가 너무 크면 좋지 않다. 모든 그래프의 내용을 탐색할 수 없을 것이다. 따라서 우리는 그래프를 “의미적으로 응집된 부분 그래프(community)”로 분해한다. 이후에는 이것을 계층적으로 나눈다. 저차원으로 갈 수록 구체적 사실의 묶음이고, 고차원으로 갈 수록 추상화된 정보가 담기는 식이다.
[Low Level / 엔티티-관계 단위]
OpenAI — developed → GPT-4
GPT-4 — runs on → Azure
Microsoft — invested in → OpenAI
[High Level / 추상 커뮤니티]
[OpenAI 기술·사업 생태계]
= 생성형 AI 모델 개발 + 클라우드 인프라 + 투자 구조
[Root Level / 더 큰 추상화]
[글로벌 생성형 AI 산업]
- OpenAI 생태계
- Google 생태계
- Meta 생태계
정리를 해본다면, 큰 그래프를 의미적으로 응집된 low-level community들로 분할하고, 그 커뮤니티들을 다시 묶어 higher-level community를 만든다고 이해할 수 있을 것이다.
Leiden Algorithm을 추가적으로 공부하도록 하자.
이제 각 커뮤니티에 대한 정보를 Summary해서 하나의 텍스트 청크로 만들고,VectorDB에 저장하면 끝이다. 이제 쿼리 분석과 벡터 검색, 필터링과 함께 사용자 질의를 전달해주면, GraphRAG는 엔티티-관계를 잘 반영한 적절한 context를 기반으로 텍스트를 생성해 줄 것이다!

https://www.youtube.com/watch?v=Aw7iQjKAX2k (GraphRAG vs. Traditional RAG: Higher Accuracy & Insight with LLM)
https://www.youtube.com/watch?v=WoU7XxDafbA (AI知识图谱 GraphRAG 是怎么回事?)
위의 두 영상은 GraphRAG에 대해 빠르고 명확한 설명을 제공한다. 특히 두번째 영상은 중국 영상인데, 많은 인사이트를 포함하고 있다. 꼭 자막을 키고 보도록하자..!!
From Local to Global: A Graph RAG Approach to Query-Focused Summarization
위는 GraphRAG의 개념과 프레임워크를 정립한 논문이다. 향후에 Review하도록 하자.
솔직히 이전까지는 RAG랑은 정말 다른, 그래프에서 정보를 논리정연하게 구조화된 채로 가져오는 것인지 알았다. 하지만 이번에 공부를 하면서 결국은 LLM의 context가 되어야하기 때문에 최종 결과물이 요약된 텍스트일 뿐이라는 것을 알게되었다. 그럼에도 VectorRAG와는 구분되는 특장점이 있다는 점이 인상적이었다.