LLM: Graph DB 개념

 

보통 GraphRAG, Knowledge Graph RAG, Graph DB 기반 관계/경로 검색, Text-to-Cypher RAG, Hybrid Graph + Vector RAG 쪽으로 분류하면 됩니다. 단순 벡터 검색이 “비슷한 문단”을 찾는 방식이라면, GraphRAG는 entity -> relationship -> path/subgraph -> supporting chunks 흐름으로 “관계 때문에 연결되는 정보”를 찾는 데 강합니다.


먼저 이해할 핵심 개념

  1. Graph DB 기본 모델
    Node, Relationship, Property, Label, Path, Traversal을 알아야 합니다. Neo4j 기준으로 관계는 방향과 타입을 가지며, 노드/관계 모두 속성을 가질 수 있습니다. 관계를 따라 탐색하는 traversal이 Graph RAG의 핵심 검색 단위입니다. 출처: Neo4j Graph database concepts

  2. Knowledge GraphProperty Graph
    문서에서 사람, 조직, 장소, 법령, 제품, 사건 같은 엔티티를 뽑고, A -[RELATION]-> B 형태로 연결합니다. LlamaIndex는 PropertyGraphIndex를 “라벨이 있는 노드와 속성, 관계로 연결된 구조”로 설명하고, 이를 구성/질의하는 인덱스로 제공합니다. 출처: LlamaIndex Property Graph Index

  3. Entity/Relationship Extraction
    원문 문서를 chunk로 나눈 뒤 LLM 또는 규칙 기반 추출기로 엔티티와 관계를 뽑습니다. Neo4j GraphRAG의 KG Builder는 data loader, text splitter, schema builder, entity and relation extractor, entity resolver, KG writer 같은 단계로 구성됩니다. 출처: Neo4j Knowledge Graph Builder

  4. Entity Resolution
    같은 대상을 여러 이름으로 추출하면 검색 품질이 깨집니다. 예를 들어 OpenAI, Open AI, 오픈AI를 같은 노드로 합치는 과정이 필요합니다. 이 단계는 Graph RAG에서 벡터 RAG보다 더 중요합니다.

  5. Graph Retrieval 기법
    주요 방식은 네 가지입니다.

    • Vector -> Graph Expansion: 먼저 벡터로 관련 노드를 찾고, 주변 관계/path를 확장
    • Keyword/Synonym -> Graph Paths: 질의에서 키워드/동의어를 만들고 관련 노드 및 경로 탐색
    • Text-to-Cypher: 자연어 질문을 Cypher 쿼리로 바꿔 Graph DB 질의
    • Cypher Template: 자유 생성 대신 미리 정한 쿼리 템플릿에 파라미터만 채움
      LlamaIndex는 LLMSynonymRetriever, VectorContextRetriever, TextToCypherRetriever, CypherTemplateRetriever를 제공합니다. 출처: LlamaIndex Retrieval and Querying
  6. Hybrid Search
    실전에서는 그래프만 쓰지 않고 vector search + full-text search + graph traversal + reranking을 섞습니다. Neo4j GraphRAG도 VectorRetriever, VectorCypherRetriever, HybridRetriever, HybridCypherRetriever, Text2Cypher 등을 제공합니다. 출처: Neo4j GraphRAG RAG User Guide

  7. Global Search / Local Search / DRIFT Search
    Microsoft GraphRAG 기준 핵심 질의 모드입니다.

    • Global Search: 전체 데이터셋의 큰 주제, 패턴, 요약 질문에 강함
    • Local Search: 특정 엔티티 주변의 관계, 원문 chunk, community report를 모아 답변
    • DRIFT Search: global과 local을 섞어 follow-up 탐색으로 더 깊게 검색
      출처: Microsoft GraphRAG docs, Global Search, Local Search, DRIFT Search


학습 순서로 나누면 chapter1부터 이렇게 잡는 게 좋습니다

  • chapter1: Graph DB 기본 개념, node/edge/property/path/traversal
  • chapter2: Neo4j와 Cypher 기본 질의
  • chapter3: 기존 Vector RAG 한계와 GraphRAG가 필요한 질문 유형
  • chapter4: 문서에서 엔티티/관계 추출해 Knowledge Graph 만들기
  • chapter5: 관계 기반 검색, path expansion, subgraph retrieval
  • chapter6: vector search와 graph traversal을 결합하는 hybrid retrieval
  • chapter7: Text-to-Cypher와 template 기반 graph query
  • chapter8: Microsoft GraphRAG의 community detection, global/local search
  • chapter9: entity resolution, schema 설계, provenance/source grounding
  • chapter10: GraphRAG 평가, 성능, 증분 업데이트, 운영 이슈

핵심 논문으로는 Microsoft의 “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”을 보면 됩니다. 이 논문은 GraphRAG가 문서에서 entity graph를 만들고, 관련 엔티티 community summary를 미리 생성한 뒤, 질문 시 partial response를 합성하는 방식을 설명합니다. 

출처: arXiv:2404.16130

댓글 쓰기 · 수정

0 댓글