5

GraphRAG: LLM + Knowledge Graph의 시너지

GraphRAG 통합

학습 목표
  • GraphRAG의 개념과 기존 RAG 대비 장점을 이해한다
  • GraphRAG 아키텍처의 핵심 컴포넌트를 파악한다
  • 제조 도메인에서 GraphRAG의 활용 가치를 설명할 수 있다
  • Vector RAG vs GraphRAG 차이를 비교한다

GraphRAG: LLM에게 공장의 지식을 가르친다

기존 RAG의 한계: "문서는 찾았는데 맥락을 모른다"

벡터 검색이 비슷한 문장을 찾고 그래프가 관계를 따라간다. 둘의 결과를 합쳐 답을 만든다
[상황: 신입 기술자가 RAG 시스템에 질문]

질문: "알람 E-201이 떴는데 어떻게 해요?"

[기존 Vector RAG의 답변]
"매뉴얼 Section 14.3.2에 따르면 E-201은 스핀들 과열 알람입니다.
냉각수 레벨을 확인하고 베어링 상태를 점검하세요."

→ 문제점:
  1. "어떤 순서로?" → 모른다 (확률 정보 없음)
  2. "냉각수 어디서 확인?" → 모른다 (설비 구조 없음)
  3. "혼자 할 수 있나?" → 모른다 (스킬 매칭 없음)
  4. "이 설비만의 특이사항은?" → 모른다 (이력 없음)

[GraphRAG의 답변]
"CNC밀링 3호기의 알람 E-201(스핀들 과열) 대응 방법:

1순위: 냉각수 부족 확인 (확률 45%, 15분)
  - 위치: 장비 후면 하단 패널
  - 필요 스킬: 기본 정비 (이신입 님 수행 가능)
  - 이 장비는 최근 3개월간 냉각수 부족이 2회 발생

2순위: 베어링 마모 확인 (확률 35%, 4시간)
  - ⚠️ 현재 베어링 사용률 81.3% (교체 시기 임박)
  - 필요 스킬: 스핀들 정비 (김기술 님 호출 필요)

3순위: 과절삭 확인 (확률 20%, 30분)
  - NC 프로그램 이송속도(F값) 확인 필요"

→ 차이점: 구조화된 지식(KG)이 맥락을 제공!

GraphRAG란?

┌──────────────────────────────────────────────────────────┐
│                    GraphRAG 아키텍처                       │
├──────────────────────────────────────────────────────────┤
│                                                          │
│   [사용자 질문]                                           │
│   "알람 E-201이 떴는데 어떻게 해요?"                        │
│        │                                                 │
│        ▼                                                 │
│   ┌─────────────────────────────────┐                    │
│   │        Query Analyzer           │                    │
│   │   질문 의도 분석 + 엔티티 추출    │                    │
│   │   → 엔티티: "E-201"             │                    │
│   │   → 의도: 고장 대응 방법         │                    │
│   └───────────┬─────────────────────┘                    │
│               │                                          │
│        ┌──────┴──────┐                                   │
│        ▼             ▼                                   │
│   ┌────────┐   ┌──────────┐                              │
│   │ Vector │   │ Graph    │                              │
│   │  RAG   │   │  RAG     │                              │
│   │        │   │          │                              │
│   │ 매뉴얼 │   │ Neo4j    │                              │
│   │ 문서   │   │ KG 탐색  │                              │
│   │ 검색   │   │          │                              │
│   └───┬────┘   └────┬─────┘                              │
│       │             │                                    │
│       ▼             ▼                                    │
│   ┌─────────────────────────────────┐                    │
│   │        Context Merger           │                    │
│   │   문서 맥락 + 그래프 맥락 통합    │                    │
│   └───────────┬─────────────────────┘                    │
│               │                                          │
│               ▼                                          │
│   ┌─────────────────────────────────┐                    │
│   │        LLM (GPT-4 등)           │                    │
│   │   통합 맥락 기반 답변 생성        │                    │
│   └───────────┬─────────────────────┘                    │
│               │                                          │
│               ▼                                          │
│   [구조화된 답변 + 근거 + 조치 안내]                        │
│                                                          │
└──────────────────────────────────────────────────────────┘

Vector RAG vs GraphRAG

비교 항목Vector RAGGraphRAG
지식 소스비정형 문서 (PDF, 텍스트)구조화된 그래프 (Neo4j)
검색 방식유사도 기반 (임베딩)관계 기반 (Cypher)
맥락 품질유사한 텍스트 청크연결된 엔티티 + 관계
장점자연어 문서 활용정확한 관계 추론, 인과 추적
단점관계 추론 불가그래프 구축 비용
제조 활용매뉴얼 검색고장 원인 추적, 영향도 분석

왜 둘 다 필요한가?

[예시 질문별 최적 방식]

"스핀들 과열 원인이 뭐야?"
  → GraphRAG ✅  (원인-결과 관계 탐색)
  → Vector RAG △ (매뉴얼에서 찾을 수는 있지만 불완전)

"CNC 밀링 정밀도 향상 팁 알려줘"
  → Vector RAG ✅  (기술 문서, 논문에서 검색)
  → GraphRAG △ (구조화된 팁 데이터가 필요)

"알람 E-201 대응하면서 이번 달 정비 이력도 알려줘"
  → Vector RAG + GraphRAG ✅  (하이브리드)
    GraphRAG: 원인-조치-인력 경로
    Vector RAG: 과거 정비 보고서 검색

GraphRAG의 핵심 컴포넌트

1. Entity Extraction (엔티티 추출)

# 질문에서 KG 엔티티 추출
def extract_entities(question: str) -> dict:
    """
    "CNC밀링 3호기의 알람 E-201 조치 방법"
    →
    {
        "equipment": "CNC밀링 3호기",
        "alarm_code": "E-201",
        "intent": "troubleshooting"
    }
    """
    # LLM 기반 추출 또는 규칙 기반 추출
    pass

2. Cypher Generation (쿼리 생성)

# 추출된 엔티티로 Cypher 쿼리 자동 생성
def generate_cypher(entities: dict) -> str:
    """
    entities = {"alarm_code": "E-201", "intent": "troubleshooting"}
    →
    MATCH (f:Fault {alarmCode: "E-201"})
          -[:CAUSED_BY]->(cause:RootCause)
          -[:RESOLVED_BY]->(action:MaintenanceAction)
    RETURN cause, action
    ORDER BY cause.probability DESC
    """
    pass

3. Context Building (맥락 구성)

# KG 결과를 LLM이 이해할 수 있는 맥락으로 변환
def build_context(kg_results: list, doc_results: list) -> str:
    """
    KG 결과 + 문서 검색 결과 → 통합 프롬프트
    """
    context = "## Knowledge Graph 정보\n"
    context += format_kg_results(kg_results)
    context += "\n## 관련 문서\n"
    context += format_doc_results(doc_results)
    return context

4. Answer Generation (답변 생성)

# 맥락 기반 LLM 답변 생성
def generate_answer(question: str, context: str) -> str:
    prompt = f"""
    당신은 제조 현장의 기술 지원 AI입니다.
    아래 Knowledge Graph 정보와 문서를 참고하여 답변하세요.

    질문: {question}

    {context}

    답변 시 다음을 포함하세요:
    1. 원인별 확률과 조치 방법 (높은 확률순)
    2. 각 조치의 난이도와 소요 시간
    3. 필요한 스킬과 가용 인력
    4. 주의사항
    """
    return call_llm(prompt)

Microsoft GraphRAG vs 우리의 접근

[Microsoft GraphRAG]
- 비정형 텍스트에서 자동으로 KG 생성
- 커뮤니티 감지 + 요약 생성
- 글로벌 질문에 강함 ("전반적인 추세는?")
- 범용적

[우리의 제조 GraphRAG]
- 도메인 전문가가 설계한 온톨로지 기반
- 설비-부품-고장-조치 구조화된 KG
- 구체적 질문에 강함 ("E-201 어떻게 해?")
- 제조 특화

→ 두 접근은 답하는 질문의 종류가 다르다.
  "이 알람에 무엇부터 하나"처럼 인과와 조치 경로를 묻는 질문은 설계된 온톨로지 쪽이,
  "이번 분기 고장 경향은"처럼 전체를 훑는 질문은 커뮤니티 요약 쪽이 낫다.
  이번 주는 앞의 것을 만든다.
AI로 학습하기 — 꿀팁
GraphRAG vs RAG 제조 Q&A 비교AI 학습 팁

동일한 제조 Q&A 시나리오에서 기존 RAG와 GraphRAG의 답변 품질 차이를 AI에게 대조 설명 요청하세요.

'CNC-001 설비의 주축 베어링 교체 후 진동이 재발하는 이유는?'이라는 질문에 대해, 기존 벡터 검색 기반 RAG와 Knowledge Graph를 활용한 GraphRAG가 각각 어떻게 다른 답변 경로를 밟는지 단계별로 비교해줘. GraphRAG가 어떤 관계 정보를 추가로 활용하는지 구체적으로 설명해줘.
이 팁이 도움이 됐나요?
핵심 포인트
  • GraphRAG = Knowledge Graph + RAG: 구조화된 지식으로 LLM의 맥락 이해력 강화
  • Vector RAG(문서 검색)와 GraphRAG(관계 탐색)는 상호 보완적
  • 핵심 컴포넌트: 엔티티 추출 -> Cypher 생성 -> 맥락 구성 -> 답변 생성
  • 제조 도메인은 도메인 특화 GraphRAG가 범용 접근보다 효과적
용어