RAG의 한계를 넘어, 관계를 이해하는 AI로
RAG(Retrieval-Augmented Generation)는 검색(Retrieval) 과 생성(Generation) 을 결합한 대표적인 지식 보강형 AI 구조이다.
모델이 자체 파라미터만으로는 기억하지 못하는 외부 지식을 벡터 검색을 통해 찾아와, 그 정보를 바탕으로 응답을 생성한다.
이 방식은 단순한 질문-답변형 태스크뿐 아니라,
기업 문서 검색, 법률 질의, 기술 매뉴얼 요약 등 다양한 응용 영역에서 뛰어난 성능을 보인다.
하지만 기존 RAG는 여전히 한 가지 약점을 가지고 있다.
바로, 검색된 정보들 간의 “관계”를 이해하지 못한다는 점이다.
이를 극복하기 위해 등장한 것이 GraphRAG이다.
✏️ GraphRAG
GraphRAG는 기존 RAG 구조에 그래프(Graph) 구조적 사고를 도입한 형태이다.
즉, “검색된 정보들 간의 연결 관계”를 그래프 형태로 모델링함으로써 AI가 단순히 문서를 나열하는 것이 아니라
정보들 간의 연관성, 방향성, 계층성을 이해하고 그 기반 위에서 더 논리적이고 일관된 답변을 생성하게 만든다.
그래프의 기본 요소는 노드(Node) 와 엣지(Edge) 이다.
- Node: 하나의 정보 조각(개념, 엔티티, 문서 단위 등)을 의미한다.
- Edge: 노드 간의 관계를 표현한다. (예: 고객–구매–상품)
GraphRAG는 이 그래프 구조를 활용해 정보 간의 의미적 관계를 추론하고, 검색된 결과를 더 정교하게 통합할 수 있다.
🔻기존 RAG와의 차이점
그렇다면 기존 vector RAG와의 차이점이 무엇일까?
기존 RAG 모델과 GraphRAG 모델의 주요 차이점은 정보 간의 관계를 처리하는 방식에 있다.
RAG는 검색된 문서나 정보 조각들을 독립적으로 처리하여 최종 텍스트 생성에 사용한다.
하지만 chunking 방법에 따라 정보 간의 연관성을 고려할 수 있는 정도가 크게 좌우되며, 결과적으로 일관성 있는 텍스트를 생성하는 데 한계가 있을 수 있다.
반면 GraphRAG는 검색된 정보 조각들 간의 관계를 그래프 형태로 모델링한다.
이 그래프 구조는 정보 조각들 간의 상호작용을 명확하게 이해하고, 정보 간의 관계를 기반으로 텍스트를 생성하는데 도움을 준다.
예를 들어, GraphRAG는 특정 주제에 대해 상호 관련된 여러 정보 조각을 검색했을 때, 이들 간의 관계를 바탕으로 더욱 일관되고 깊이 있는 설명을 생성할 수 있다.


위 그림은 GraphRAG가 진행되는 과정을 보여준다.
- 자연어 질의 입력
- 사용자가 질문을 입력한다.
예: “서울 지역의 주요 고객사 매출 추이를 알려줘.”
- 사용자가 질문을 입력한다.
- GraphDB 질의 생성
- 시스템은 질의에 따라 Cypher 쿼리를 생성하거나,
또는 벡터 유사도 검색을 수행한다. - 이때 Neo4j 같은 GraphDB에서 관련 노드와 관계를 조회한다.
- 시스템은 질의에 따라 Cypher 쿼리를 생성하거나,
- 정보 Retrieval
- GraphDB에서 관련 노드, 관계, 속성을 불러온다.
- 예: (:Customer)-[:PURCHASED]->(:Product) 형태의 그래프 일부.
- LLM 통합 및 응답 생성
- 검색된 그래프 데이터를 LLM에게 전달한다.
- LLM은 관계 기반 맥락을 분석해 논리적이고 일관된 답변을 생성한다.
🔻 GraphRAG 구현 접근
GraphRAG를 구현하는 방법은 여러 가지가 있다.
- Neo4j Text2Cypher Retriever
자연어 질의를 Cypher 쿼리로 변환하여 GraphDB를 직접 탐색한다.
LangChain에서도 이를 위한 Text2CypherRetriever를 제공한다. - LangChain GraphCypherQAChain
LangChain에서 GraphDB 질의 기반 QA를 수행할 수 있는 체인이다.
내부적으로 Cypher를 자동 생성하고 LLM과 결합해 응답을 생성한다.
예:
“어떤 고객이 특정 제품을 가장 많이 구매했는가?”
MATCH (c:Customer)-[r:PURCHASED]->(p:Product)
RETURN c.name, SUM(r.quantity) ORDER BY SUM(r.quantity) DESC LIMIT 1
🔻 GraphRAG의 장점
| 맥락 이해 향상 | 노드 간 관계를 통해 문서 간 의미적 연결을 파악한다. |
| 정보 통합 효율성 | 다수의 문서를 구조적으로 연결하여 일관된 요약 생성이 가능하다. |
| 추론 능력 강화 | 단순 검색을 넘어 “관계 기반 reasoning”을 수행할 수 있다. |
| 확장성 | GraphDB(Neo4j 등) 기반 구조로 다양한 데이터 소스 통합이 용이하다. |
GraphRAG는 단순히 데이터를 검색하는 구조가 아니라,
데이터 간의 의미적 연결을 기반으로 더 높은 수준의 추론과 분석을 가능하게 한다.
참고 (출처)
'Work > GraphDB' 카테고리의 다른 글
| Python으로 엑셀 데이터 graphDB로 변환하여 Neo4j Community graphDB에 저장하기 (0) | 2025.07.15 |
|---|---|
| OpenAI Embedding과 Elasticsearch로 Hybrid Retrieval 기반 GraphDB Schema 생성하기 (0) | 2025.07.09 |
| [Neo4j Sandbox Data 활용 8] Recommendations (0) | 2025.06.02 |
| [Neo4j Sandbox Data 활용 7] Women's World Cup Sandbox (0) | 2025.05.30 |
| [Neo4j Sandbox Data 활용 6] Network and IT Management (1) | 2025.05.29 |