지식 그래프의 힘 열기: 향상된 검색 보조 생성을 위한 그래프 RAG 탐색

지식 그래프의 힘을 unleash하세요. Graph RAG는 지식 그래프와 Retrieval Augmented Generation (RAG)을 결합하여 향상된 검색과 생성을 제공하는 혁신적인 시스템입니다. 기술적 세부 사항을 탐색하고, 로컬에서 설정하며, 비용 영향을 평가하세요. Graph RAG가 기존 RAG 접근법의 한계를 어떻게 해결하는지 발견하세요.

2025년 2월 24일

party-gif

지식 그래프의 힘을 unleash하세요. Graph RAG는 Retrieval Augmented Generation (RAG)의 이점과 지식 그래프의 맥락적 이해를 결합한 혁신적인 시스템입니다. 이 혁신적인 접근법이 어떻게 콘텐츠 생성을 향상시키고 응답의 정확성과 관련성을 높일 수 있는지 탐색하세요. 또한 Graph RAG 실행의 비용 영향에 대한 통찰력도 얻으실 수 있습니다.

그래프 RAG의 힘 발견: 지식 그래프를 통한 검색 증강 생성 향상

그래프 RAG는 지식 그래프와 검색 증강 생성(Retrieval Augmented Generation, RAG)을 결합하여 기존 RAG 접근 방식의 한계를 해결하는 혁신적인 시스템입니다. 지식 그래프를 활용함으로써 그래프 RAG는 기저 코퍼스에 대한 더 포괄적인 이해를 제공하여 더 정확하고 상황에 맞는 응답을 생성할 수 있습니다.

그래프 RAG의 주요 측면은 다음과 같습니다:

  1. 인덱싱 단계: 이 단계에서는 소스 문서가 처리되고 엔티티가 추출되어 지식 그래프를 생성하는 데 사용됩니다. 지식 그래프는 다양한 엔티티 간의 관계를 나타내며, 이를 통해 다양한 수준의 요약이 생성됩니다.

  2. 쿼리 단계: 사용자 쿼리가 제공되면 그래프 RAG는 쿼리에 적합한 커뮤니티 수준(요약)을 선택하고 관련 정보를 검색합니다. 여러 커뮤니티의 응답이 결합되어 최종 답변이 생성됩니다.

이 접근 방식은 제한된 상황 이해와 확장성 문제와 같은 기존 RAG의 한계를 해결합니다. 지식 그래프를 활용함으로써 그래프 RAG는 기저 데이터에 대한 더 포괄적인 이해를 제공하여 더 정확하고 일관된 응답을 생성할 수 있습니다.

전통적인 RAG 이해: 한계와 동기

전통적인 검색 증강 생성(Retrieval Augmented Generation, RAG)은 언어 모델이 대규모 코퍼스에서 관련 문서를 검색하여 더 정확하고 상황에 맞는 응답을 생성하는 방법입니다. 이 접근 방식에는 다음과 같은 3가지 주요 단계가 포함됩니다:

  1. 문서 처리 및 임베딩: 원본 문서는 청크 전략을 사용하여 더 작은 청크로 나뉩니다. 각 청크에 대한 임베딩이 계산되어 벡터 저장소에 저장되며, 이는 지식 베이스가 됩니다.

  2. 쿼리 단계: 사용자가 질문을 하면 쿼리에 대한 임베딩이 계산되고 벡터 저장소에서 가장 관련성 있는 청크 또는 하위 문서를 검색하는 유사성 검색이 수행됩니다.

  3. 응답 생성: 검색된 컨텍스트가 원래 쿼리와 결합되어 대규모 언어 모델에 입력되어 최종 응답이 생성됩니다.

그러나 이 전통적인 RAG 접근 방식에는 다음과 같은 한계가 있습니다:

  1. 제한된 상황 이해: RAG는 검색된 문서에만 의존하기 때문에 데이터의 미묘한 차이를 놓칠 수 있습니다. 전체적인 문서 개요를 가지고 있지 않아 전체적인 그림을 완전히 이해하지 못합니다.

  2. 확장성 문제: 코퍼스가 커짐에 따라 검색 프로세스가 효율적이지 않게 될 수 있습니다.

  3. 외부 지식 소스 통합의 복잡성: 외부 지식 소스를 의미 있게 통합하는 것이 복잡하고 번거로울 수 있습니다.

그래프 RAG의 기술적 세부 사항 탐색

그래프 RAG는 지식 그래프와 검색 증강 생성(RAG)을 결합하여 전통적인 RAG 시스템의 한계를 해결하는 혁신적인 접근 방식입니다. 그래프 RAG 프로세스의 주요 단계는 다음과 같습니다:

  1. 인덱싱 단계:

    • 소스 문서가 더 작은 하위 문서로 청크됩니다.
    • 각 청크 내에서 엔티티(사람, 장소, 회사 등)가 식별되고 이들 간의 관계가 추출됩니다.
    • 이 정보를 사용하여 지식 그래프가 생성됩니다. 엔티티는 노드로, 엔티티 간의 관계는 엣지로 표현됩니다.
    • 지식 그래프를 사용하여 밀접하게 관련된 엔티티 그룹인 커뮤니티를 탐지합니다.
    • 각 커뮤니티에 대해 전역(고수준)에서 지역(더 세부적)에 이르는 다양한 수준의 요약이 생성됩니다.
  2. 쿼리 단계:

    • 사용자 쿼리가 수신되면 필요한 세부 수준에 따라 적절한 커뮤니티 수준(전역, 중간, 지역)이 선택됩니다.
    • 관련 커뮤니티의 요약이 검색되고 이 부분 응답이 결합되어 최종 답변이 생성됩니다.

이 접근 방식은 전통적인 RAG 시스템에 비해 다음과 같은 장점을 제공합니다:

  • 향상된 상황 이해: 지식 그래프와 커뮤니티 수준 요약을 활용하여 그래프 RAG는 검색된 문서에만 의존하는 것이 아니라 전체적인 맥락과 미묘한 차이를 더 잘 포착할 수 있습니다.
  • 향상된 확장성: 코퍼스가 커짐에 따라 커뮤니티 수준 요약을 통해 효율적인 검색 및 응답 생성을 유지할 수 있어 전통적인 RAG의 확장성 문제를 해결할 수 있습니다.
  • 통합 간소화: 지식 그래프 기반 접근 방식은 외부 지식 소스를 더 구조화되고 의미 있는 방식으로 통합할 수 있어 프로세스가 덜 복잡하고 번거롭습니다.

그러나 그래프 RAG 접근 방식에는 잠재적인 단점도 있습니다. 바로 시스템을 실행하는 데 드는 비용입니다. 엔티티 추출, 관계 식별, 커뮤니티 요약과 같은 인덱싱 단계는 계산 집약적이며 특히 GPT-4와 같은 대규모 언어 모델을 사용할 때 상당한 비용이 발생할 수 있습니다.

제공된 예에서는 단일 책(크리스마스 캐럴)에 대한 그래프 RAG 실행 비용이 약 $7이었는데, 이는 더 큰 코퍼스에는 과도하게 비싼 비용이 될 수 있습니다. 이 비용 요인은 애플리케이션에 그래프 RAG를 사용할지 여부를 결정할 때 신중히 고려해야 합니다.

로컬 머신에서 그래프 RAG 설정

로컬 머신에 그래프 RAG를 설정하려면 다음 단계를 따르세요:

  1. Conda 가상 환경 생성:

    conda create -n graphrag python=3.9
    conda activate graphrag
    
  2. 그래프 RAG 패키지 설치:

    pip install graphrag
    
  3. 테스트 데이터 디렉토리 생성:

    mkdir -p rag_test/input
    
  4. 샘플 데이터셋(예: 찰스 디킨스의 '크리스마스 캐럴' 텍스트) 다운로드:

    python -m graphrag.index --root_dir rag_test/input --download_sample_data
    
  5. 작업 공간 변수 및 구성 설정:

    python -m graphrag.index --root_dir rag_test/input --init_config
    

    이 명령은 settings.yml 파일을 생성하며, 여기에 API 키, 모델 및 기타 설정을 구성할 수 있습니다.

  6. 지식 그래프 생성을 위한 인덱싱 프로세스 실행:

    python -m graphrag.index --root_dir rag_test/input
    

    이 단계는 엔티티 추출, 관계 식별 및 커뮤니티 요약을 포함하므로 시간이 걸릴 수 있습니다.

  7. 샘플 쿼리 실행:

    python -m graphrag.query --root_dir rag_test --method global --prompt "이 이야기의 주요 주제는 무엇입니까?"
    python -m graphrag.query --root_dir rag_test --method local --prompt "스크루지와 밥 크래칫의 관계는 무엇입니까?"
    

    global 메서드는 최상위 수준의 정보를 검색하고, local 메서드는 특정 엔티티와 그 관계에 초점을 맞춥니다.

  8. 비용 영향 분석: 인덱싱 프로세스는 GPT-4와 같은 대규모 언어 모델을 사용할 때 상당한 비용이 발생할 수 있습니다. 제공된 예에서는 단일 책 처리 비용이 약 $7이었습니다. 더 큰 데이터셋에 그래프 RAG를 적용할 때 비용 영향을 신중히 고려해야 합니다.

이것이 로컬 머신에서 그래프 RAG를 실행하는 기본 설정 프로세스입니다. 특정 사용 사례에 맞게 구성 및 프롬프트를 사용자 지정하세요.

그래프 RAG와 전통적인 RAG의 비용 영향 비교

제공된 예에서 그래프 RAG 사용의 비용 영향은 상당했습니다. 책을 처리하고 그래프 RAG를 생성하는 총 비용은 약 $7이었는데, 이는 대규모 데이터 코퍼스에 대해 과도하게 비싼 비용이 될 수 있습니다.

높은 비용의 주요 요인은 다음과 같습니다:

  1. API 요청: 그래프 RAG 접근 방식은 주로 GPT-4 모델에 대해 총 570건의 API 요청을 했습니다. 반면 전통적인 RAG 접근 방식은 API 요청 수가 더 낮을 것입니다.

  2. 토큰 처리: 그래프 RAG 프로세스에는 100만 개가 넘는 토큰을 처리하는 작업이 포함되었으며, 이것이 전체 비용에 기여했습니다.

전통적인 RAG 시스템과 비교하면 그래프 RAG는 엔티티 추출, 관계 식별 및 커뮤니티 요약과 같은 추가 단계가 필요하므로 비용이 더 높습니다.

그래프 RAG가 제공하는 향상된 상황 이해와 전체적인 개요와 비용 간의 트레이드오프를 신중히 고려해야 합니다. 특정 사용 사례와 가용 예산에 따라 한 접근 방식이 다른 것보다 더 적합할 수 있습니다.

대규모 데이터 코퍼스를 다루는 경우 그래프 RAG의 비용 영향을 신중히 평가해야 합니다. 이러한 경우 그래프 RAG가 제공하는 향상된 상황 이해가 필수적이지 않다면 전통적인 RAG 시스템이 더 비용 효율적일 수 있습니다.

결국 그래프 RAG와 전통적인 RAG 중 어느 것을 선택할지는 프로젝트의 특정 요구 사항, 가용 리소스 및 성능과 비용 간의 균형에 따라 달라집니다.

그래프 RAG 솔루션 탐색: 깊이 있는 탐구

Microsoft의 GraphRAG가 혁신적인 시스템이긴 하지만, 그래프 RAG 접

자주하는 질문