Graphs for RAG: Knowledge Graph and GraphRAG (GraphDB)

개요

기술 콘텐츠는 검색 엔진의 정보 검색 성능 향상을 위해 과거의 PageRank 알고리즘에서 발전하여 개념 중심의 이해를 가능하게 하는 Knowledge Graph(KG)와 이를 활용한 GraphRAG(Retrieval-Augmented Generation) 시스템 구축 및 검색 방법에 대해 설명합니다.

주요 내용

* Knowledge Graph (KG)의 등장 배경: 과거 텍스트 검색 방식의 한계를 극복하기 위해 Google이 PageRank를 도입하여 웹을 그래프로 모델링하고 관련 문서를 상위에 노출시켰으나, 2012년 Google은 "things, not strings"를 표방하며 Knowledge Graph를 소개하여 검색어의 개념 자체를 이해하도록 발전시켰습니다.
* Knowledge Graph의 개념: KG는 실제 세계의 객체나 개념을 엔티티(Entity)로, 그 사이의 연결을 관계(Relationship)로 저장하는 구조화된 정보 표현 방식이며, 노드(Entity)와 엣지(Relationship)로 구성됩니다. (예: (Tom Hanks) -[:ACTED_IN]-> (Forrest Gump))
* KG의 핵심 구성 요소:
* Entity: 실세계 객체나 개념 (예: Marie Curie, OpenAI, iPhone, Diabetes, Retrieval-Augmented Generation)
* Relationship: 두 엔티티 간의 연결 방식 (예: Marie Curie DISCOVERED Radium, OpenAI DEVELOPED ChatGPT)
* Triple: (주어, 술어, 목적어) 형식의 사실 표현 (예: (Marie Curie) -[:DISCOVERED]-> (Radium))
* Ontology: 그래프에서 허용되는 엔티티 및 관계 유형 정의.
* Schema: 레이블, 관계 유형, 속성 이름, 제약 조건, 인덱스 등 그래프의 구현 수준 구조.
* 엔티티 및 관계 추출 방법:
* spaCy: 빠르고 프로덕션 친화적인 NLP 파이프라인으로, 신경망 기반 NER 및 의존 구문 분석, 규칙 기반 패턴을 사용하여 엔티티와 관계를 인식합니다. 고정된 레이블 세트로 제한될 수 있습니다.
* GLiNER / GLiNER2: 고정된 레이블 세트 없이 레이블 설명만으로 임의의 엔티티 유형을 식별할 수 있는 경량 NER 프레임워크이며, NER, 텍스트 분류, 구조화된 추출, 관계 추출을 지원하는 통합 스키마 기반 정보 추출 모델입니다.
* LLM 기반 추출: 복잡하거나 암시적인 관계, 또는 진화하는 온톨로지에 대해 가장 유연하고 널리 사용되는 방법으로, 프롬프트, 예제, 스키마 등을 통해 엔티티와 관계를 추출하고 Pydantic과 같은 라이브러리를 사용하여 구조화된 데이터를 반환받을 수 있습니다. LLMGraphTransformer와 같은 Langchain의 실험적 기능을 활용할 수 있습니다.
* GraphRAG와 GraphDB:
* GraphRAG: LLM이 Knowledge Graph를 탐색하여 정보를 검색하는 방식이며, Cypher와 같은 그래프 쿼리 언어를 사용합니다.
* GraphDB: Neo4j, AWS Neptune, Azure Cosmos DB, Memgraph, NebulaGraph 등 다양한 그래프 데이터베이스 시스템이 존재하며, Neo4j는 커뮤니티 에디션이 오픈 소스입니다.
* GraphDB 구축 및 검색:
* Neo4j AuraDB를 사용하여 그래프 데이터베이스를 구축하는 방법을 시연하며, LLMGraphTransformer를 활용하여 문서를 그래프 호환 트리플로 변환하고 Neo4j에 저장합니다.
* GraphCypherQAChain은 LLM을 사용하여 그래프에서 정보를 검색하는 데 사용될 수 있으나, 복잡한 쿼리나 특정 도메인에서는 맞춤형 파이프라인 구축 및 대상 쿼리 작성이 필요함을 강조합니다.
* 맞춤형 검색 파이프라인은 LLM을 사용하여 질문에서 엔티티를 추출하고, 그래프 데이터베이스에서 관련 엔티티와 관계를 검색하며, 소스 문서 청크를 찾고, 최종적으로 임베딩 유사도를 기반으로 가장 관련성 높은 정보를 선별하여 LLM에 전달하는 방식으로 작동합니다.
* 방법론 비교: spaCy, GLiNER2, LLM 기반 추출 방식의 강점, 약점, 최적 활용 사례를 비교하며, 프로덕션 환경에서는 속도, 비용, 품질을 균형 있게 고려한 하이브리드 방식이 유용할 수 있습니다.
* GraphRAG 프레임워크: LightRAG, PathRAG와 같은 고급 프레임워크가 소개되었으나, 아직 프로덕션 환경보다는 연구 기반 프레임워크에 가까워 제한적인 용도로 활용될 수 있습니다.

시사점

Knowledge Graph와 GraphRAG 기술은 LLM 기반의 정보 검색 성능을 획기적으로 향상시킬 수 있으며, 복잡한 정보를 구조화하고 검색하는 데 있어 LLM의 이해력과 그래프 데이터베이스의 연결성을 결합하는 강력한 접근 방식을 제공합니다. 그러나 실제 프로덕션 시스템 적용을 위해서는 도메인 특성, 데이터, 예산 등을 고려한 맞춤형 파이프라인 설계 및 튜닝이 필수적입니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions