Home / 특수 RAG / GraphRAG
Note

GraphRAG

엔티티 추출, 트리플, 그래프 쿼리

⏱ 40분 64 / 189

GraphRAG

엔티티 추출, 트리플, 그래프 쿼리

텍스트 너머의 데이터를 검색한다

이미지·표·비디오·관계 — 데이터 형태에 맞는 RAG 확장 전략

GraphRAG

엔티티·관계 · 하이브리드 검색 · Neptune Analytics

PART 3 · GraphRAG

GraphRAG

엔티티와 관계로 지식을 구조화해, 벡터 검색이 못 푸는 관계 질문에 답하는 RAG

GraphRAG

유사한 문서를 찾는 대신, 관계의 선을 따라 답을 모읍니다

  • Entity — 문서에서 추출한 개체 (노드)
  • Relation — 개체 간 관계 (포함·의존·호환)
  • 다중 홉 — A→B→C 경로 추론
  • 하이브리드 — 그래프 탐색 + 벡터 검색 결합
takeaway

"페어링 가능한 와인 전부" — 유사 문서 몇 개가 아니라 관계를 끝까지 따라가야 하는 질문이 GraphRAG의 자리입니다.

PART 3 · GraphRAG

GraphRAG 아키텍처

문서 하나에서 그래프와 벡터를 함께 만들고 검색에서 결합 — 벡터는 유사도, 그래프는 관계 담당

PART 3 · GraphRAG

그래프 구축 과정

LLM 자동 추출 + 사람 검증 — 문서가 트리플이 되기까지 4단계

  1. 1
    엔티티 추출

    LLM에 문서를 입력해 (엔티티, 타입)을 추출합니다 — 레스토랑 · 와인 · 코스 같은 도메인 개체.

  2. 2
    관계 추출

    엔티티 쌍 사이의 관계 유형을 추론합니다 — includes · requires · pairs_with 같은 명시적 엣지.

  3. 3
    사람 검증

    추출된 트리플을 도메인 전문가가 샘플 검증합니다 — LLM 오추출을 보정하는 품질 게이트.

  4. 4
    적재 · 증분 갱신

    Neptune Analytics 또는 인메모리 그래프에 적재합니다 — 문서 변경 시 영향받는 엔티티·관계만 증분 업데이트.

takeaway

추출은 자동, 품질은 사람 — 샘플 검증 없는 그래프는 오추출을 그대로 추론에 사용하게 됩니다.

PART 3 · GraphRAG

그래프 + 벡터 — 하이브리드 에이전트

질문 유형에 따라 그래프 검색과 벡터 검색을 골라 쓰는 에이전트

핵심 포인트

search_graph
"페어링 가능한 와인 전부" — 관계·의존성 질문 담당
search_docs
"예약 취소 절차는?" — 정책·설명 텍스트 질문 담당
자동 선택
시스템 프롬프트의 기준대로 에이전트가 도구를 고름
복합 질문
"디너로 바꾸면 뭐가 달라지고, 취소 규정은?" — 두 도구 결합

코드

python
from strands import Agent, tool
import boto3
bedrock_rt = boto3.client("bedrock-agent-runtime", region_name="us-east-1")

# 그래프 검색 도구 — 엔티티의 관계를 직접 탐색
@tool
def search_graph(entity_name: str, relation: str = "") -> str:
    """레스토랑·와인·코스 간 관계를 그래프에서 검색합니다."""
    return format_relations(find_related(find_entity(entity_name), relation))

# 벡터 검색 도구 — 정책·설명 텍스트는 Knowledge Base Retrieve로, 선택은 에이전트가
@tool
def search_docs(query: str) -> str:
    """메뉴·정책·FAQ 텍스트를 벡터 검색합니다."""
    resp = bedrock_rt.retrieve(knowledgeBaseId="KB-RESTAURANT-001",
                               retrievalQuery={"text": query})
    return "\n\n".join(r["content"]["text"] for r in resp["retrievalResults"][:3])

agent = Agent(tools=[search_graph, search_docs])
PART 3 · GraphRAG

그래프 적용 기준

모든 질문에 그래프가 필요한 것은 아님 — 두 번의 질문으로 판단

takeaway

벡터 RAG가 실패한 질문 중 관계 추론 비중이 크면(예시 기준: 30%+) 도입 가치가 있습니다 — 시작은 인메모리, 확장은 Neptune입니다.

선택 가이드

데이터 형태별 전략 · 실습

PART 4 · 선택 가이드

데이터 형태별 전략 선택

질문을 받으면 데이터 형태부터 — 형태가 전략과 도구를 결정

데이터 형태대표 질문전략핵심 도구
텍스트 문서"예약 취소 절차는?"표준 벡터 RAGKnowledge Bases (Knowledge Bases 모듈)
이미지 · 표"비교표에서 디너 가격은?"Vision 추출 또는 멀티모달 임베딩Claude Vision · Nova MM Embeddings
비디오 · 음성"몇 분쯤에 설명하나?"트랜스크립트 + 타임스탬프 청킹Amazon Transcribe
복잡한 PDF표·이미지가 섞인 약관자동 구조화 파싱Bedrock Data Automation
관계 질문"페어링 가능한 와인 전부?"GraphRAG 하이브리드Neptune Analytics
takeaway

직접 구축 전에 확인 — Knowledge Base 멀티모달 리트리벌(Nova Multimodal Embeddings를 Knowledge Base 임베딩 모델로)과 BDA·파운데이션 모델 멀티모달 파서로 이미지·비디오·오디오를 관리형으로 인덱싱할 수 있습니다.
Knowledge Base 3종의 선택 기준은 Knowledge Bases 모듈에서 다뤘습니다 — 여기서의 결정 축은 데이터 형태입니다.

특수 데이터 RAG 실습

⏱ 60분

멀티모달 검색과 그래프 검색을 직접 구축합니다

학습 목표

  • Vision 모델로 이미지 속 표를 추출해 벡터 스토어에 인덱싱
  • 텍스트 쿼리로 이미지 정보를 검색하는 Multimodal RAG 완성
  • 엔티티·관계를 추출해 지식 그래프 구축
  • 그래프 검색 + 벡터 검색 하이브리드 에이전트 구현
데이터의 형태가 RAG 전략을 결정합니다.

이미지·표·비디오는 멀티모달로, 관계는 그래프로 — 형태에 맞게 확장