홈으로 돌아가기

GraphRAG와 Ollama: 고급 응답 생성을 위한 지식 그래프

GraphRAG와 Ollama를 사용해 고급 RAG 시스템을 만드는 방법을 알아보세요. 지식 그래프가 응답의 정확성을 어떻게 향상시키는지 배우며, 벡터 검색의 한계를 극복하세요.

GraphRAG와 Ollama: 지식 그래프를 활용한 고급 RAG 시스템 구축
Advertisement 728x90

지식 그래프를 활용한 GraphRAG 및 Ollama: 응답 생성 능력 향상

최신 기업 RAG(검색 증강 생성) 시스템은 전통적인 벡터 검색의 한계를 극복하기 위해 끊임없이 발전하고 있습니다. Microsoft GraphRAG는 지식 그래프를 활용하여 컨텍스트와 정보 검색에 대한 더 깊은 이해를 제공하는 유망한 솔루션입니다. 이 글에서는 GraphRAG의 실제 경험, Ollama를 통한 로컬 언어 모델과의 통합, 그리고 사이버펑크 세계를 배경으로 한 텍스트 분석 예시를 통해 그 기능을 시연할 것입니다. 목표는 그래프 기반 접근 방식이 복잡한 정보 시스템에서 응답의 정확성과 관련성을 어떻게 크게 향상시키고, 새로운 수준의 의미론적 검색 및 데이터 분석을 제공하는지 보여주는 것입니다.

벡터 검색에서 지식 그래프로

많은 RAG 시스템의 핵심에는 벡터 검색이 있지만, 그 효과성에도 불구하고 특히 복잡한 쿼리나 모호한 엔티티를 다룰 때 여러 한계를 가집니다. GraphRAG는 소스 문서를 기반으로 포괄적인 지식 그래프를 구축함으로써 대안적인 접근 방식을 제공합니다. 이 그래프는 엔티티(객체, 인물, 위치)와 그들 간의 관계로 구성되어, 시스템이 키워드의 존재뿐만 아니라 컨텍스트 내의 의미론적 관계까지 포착할 수 있게 합니다. 이 접근 방식은 검색된 정보의 정확성과 깊이를 크게 향상시킵니다.

GraphRAG에서 지식 그래프를 구축하는 과정은 텍스트에서 엔티티와 관계를 추출하는 것을 포함합니다. Leiden 플러그인이 있는 Gephi와 같은 전문 도구를 사용하여 이러한 그래프의 구조를 시각화하고 분석할 수 있습니다. 이는 상호 연결성을 시각화할 뿐만 아니라 GraphRAG가 자동으로 식별하고 설명하는 숨겨진 커뮤니티나 엔티티 클러스터를 발견할 수 있게 합니다. 그래프 구축 중에는 유사하지만 동일하지 않은 용어(예: "Molly Millions"와 "Molly")가 자동으로 병합되지 않아 엔티티 해결에 어려움이 발생할 수 있으며, 이는 추가적인 알고리즘 개선이나 수동 수정이 필요하다는 점에 유의해야 합니다.

Google AdInline article slot

GraphRAG는 또한 community_reports.parquet 파일에 저장되는 커뮤니티 설명을 생성합니다. 이 설명은 LLM이 데이터 내의 주제 클러스터에 대한 높은 수준의 이해를 얻을 수 있게 하므로 전역 검색에 매우 중요합니다. 이 접근 방식은 단순한 텍스트 청크 검색을 훨씬 뛰어넘어, 응답 생성을 위한 더 구조화되고 컨텍스트가 풍부한 자료를 제공합니다.

GraphRAG의 쿼리 전략

GraphRAG는 다양한 쿼리 유형에 최적화된 여러 검색 전략을 제공합니다. 이 시스템의 유연성은 예를 들어 local_search_system_prompt.txtglobal_search_reduce_system_prompt.txt 파일에서 프롬프트를 미세 조정할 수 있는 기능을 통해 달성됩니다. 이는 LLM 및 임베딩 지원이 제공된다면, 질문이 다른 언어로 구성될 때에도 시스템의 동작을 특정 작업 및 언어에 맞게 조정하여 응답의 관련성을 보장합니다.

전역 검색

전역 검색은 전체 데이터셋에 대한 이해를 요구하는 광범위한 질문에 답하도록 설계되었습니다. 이는 지식 그래프에서 추출된 커뮤니티 설명을 검토하는 MapReduce 방식으로 작동합니다. 이를 통해 일반적이면서도 깊고 컨텍스트적으로 완전한 응답을 얻을 수 있습니다.

Google AdInline article slot

예시 쿼리:

graphrag query "What are the top cyberpunk elements in this story?"

예시 응답은 시스템이 그래프의 다양한 부분에서 정보를 집계하고, human_readable_id를 사용하여 특정 요소를 참조하는 방법을 보여줍니다. 이를 통해 사용자는 필요에 따라 이러한 식별자를 사용하여 원본 데이터를 더 깊이 탐색할 수 있습니다:

  • 기술과 생물학의 통합: 루이스의 신경 교란기와 야쿠자의 의수 엄지손가락 사용은 기술이 신체에 침투하여 환경 제어 및 상호 작용에 영향을 미치는 방식을 보여줍니다. 이러한 요소는 유기체와 합성체의 경계가 모호해지는 사이버펑크 테마의 생생한 표현입니다 [데이터: 보고서 (5, 7, 12, 2, +더보기)].
  • 디스토피아적 도시 경관: 내러티브는 나이트타운과 드롬과 같은 디스토피아적 도시 공간을 묘사하며, 이는 폐허, 무법, 지하 범죄 네트워크를 상징합니다. [데이터: 보고서 (1, 8, 2, +더보기)].
  • 기업 경쟁 및 불법 거래: 아리안 레게 밴드와 야쿠자 프로그램 간의 전자레인지 장비 거래와 같은 기업 스파이 활동 및 불법 기술 거래 요소는 기업 통제와 고위험 갈등이라는 테마를 강조합니다. [데이터: 보고서 (0, 12, 2, +더보기)].
  • 저기술과 고기술의 대비: LO TEK과 그들이 사용하는 이화원 필터와 같은 제품과 관련된 저기술의 상징성은 첨단 사이버네틱 강화와 대조를 이룹니다. [데이터: 보고서 (9, 2, +더보기)].
  • 사이버 유기체 및 기술적 능력: 군사적 과거를 가진 사이버 돌고래 존스, 제어 모듈 사용에 전투 기술을 가진 몰리 밀리언즈와 같은 캐릭터는 유기체와 합성체의 통합을 보여줍니다. [데이터: 보고서 (11, 7, 2, +더보기)].

지역 검색

전역 검색과 달리 지역 검색은 엔티티 간의 특정 상호 관계에 중점을 둡니다. 이는 지식 그래프의 관련 데이터와 소스 문서의 단편을 결합하여 특정 객체나 인물에 대한 상세한 질문에 이상적입니다. 이 모드는 시스템 내 개별 요소의 역할과 관계에 대한 깊은 이해가 필요할 때 특히 유용합니다.

Google AdInline article slot

예시 쿼리:

graphrag query "Who is JONES and what are his main relationships?" -m local

예시 응답은 상세한 관계를 보여줍니다:

존스는 고급 감각 능력을 가진 사이버네틱 돌고래로 묘사되며, "펀랜드"라는 객체와 관련이 있습니다. 그의 주요 기능은 담수 저수지 관리와 "캄"과의 협력입니다. 존스는 데이터 검색 작업에서 핵심적인 역할을 하며, 특히 몰리 및 조니와의 협력에서 그의 독특한 생리적 특성으로 조니의 칩에서 데이터를 접근할 수 있게 합니다 [데이터: 엔티티 (28, 33); 관계 (44, 51, +더보기)].

존스의 주요 관계는 다음과 같습니다:

  • 몰리 밀리언즈와: 조니의 칩에서 데이터를 추출하는 작업에 참여하여 그의 기술적 능력을 보여줍니다 [데이터: 엔티티 (33); 관계 (44, 51, +더보기)].
  • 조니와: 데이터 추출 작업 내에서 존스가 센서를 사용하여 정보에 접근하는 상호 작용 [데이터: 엔티티 (33); 관계 (44, 51, +더보기)].
  • "스퀴드"(초전도 양자 간섭 장치)와: 군사 기술과 관련된 "스퀴드" 장치를 사용하여 흔적을 읽는 것 [데이터: 엔티티 (19); 관계 (25, +더보기)].
  • 야쿠자와: 야쿠자가 "스퀴드"가 조니의 마음에서 그들의 프로그램 흔적을 추출할 수 있다는 우려를 통해 간접적으로 연결됩니다 [데이터: 관계 (25); 엔티티 (19)].

Ollama의 역할 및 기타 검색 모드

GraphRAG와 함께 Ollama를 사용하면 언어 모델의 로컬 배포가 가능해지며, 이는 제한된 컴퓨팅 자원이나 엄격한 데이터 프라이버시 요구 사항이 있는 프로젝트에 특히 중요합니다. Ollama는 4B 모델로도 효과적으로 작동하여, 비용이 많이 드는 클라우드 기반 LLM 없이도 RAG 시스템 기능을 제공할 수 있음을 보여줍니다. 이는 기업 환경에서 그래프 기반 RAG 시스템을 실험하고 배포하는 진입 장벽을 크게 낮춥니다.

전역 및 지역 검색 외에도 GraphRAG는 BASIC 및 DRIFT 모드를 제공합니다:

  • BASIC 검색: 이는 문서 청크 전반에 걸친 표준 벡터 검색을 나타냅니다. 이는 더 복잡한 그래프 기반 접근 방식과 성능 및 응답 품질을 비교하기 위한 기준선 역할을 합니다.
  • DRIFT 검색: 이 기능은 전통적인 RAG 시스템의 쿼리 확장과 유사하며 GraphRAG의 주요 장점으로 자리 잡고 있습니다. 그러나 DRIFT 검색은 리소스 집약적이며 실행 시간이 훨씬 길어, 높은 응답 시간 요구 사항이 있는 시스템에는 치명적일 수 있다는 점에 유의해야 합니다.

주요 요점

  • 벡터 검색 한계 극복: GraphRAG는 지식 그래프를 사용하여 깊은 의미론적 분석 및 정보 검색을 수행하며, 정확성과 컨텍스트 면에서 전통적인 벡터 방식을 능가합니다.
  • Ollama를 통한 로컬 배포: Ollama와의 통합은 GraphRAG가 로컬 언어 모델을 효과적으로 사용할 수 있게 하여, 컴퓨팅 비용을 절감하고 데이터 프라이버시를 강화합니다.
  • 다양한 검색 전략: 이 시스템은 광범위한 질문부터 상세한 질문까지 특정 쿼리 유형에 최적화된 전역, 지역, BASIC, DRIFT 검색 모드를 제공합니다.
  • 유연한 구성 및 적응: 프롬프트를 수정하고 생성된 지식 그래프(graph.graphml, community_reports.parquet)를 분석하는 기능은 특정 프로젝트 요구 사항에 대한 높은 수준의 제어 및 적응성을 제공합니다.
  • 향상된 응답 관련성: 지식을 그래프로 구조화하고 고급 쿼리 알고리즘을 적용함으로써 GraphRAG는 생성된 응답의 품질과 관련성을 크게 향상시켜, 더 유익하고 정확하게 만듭니다.

— Editorial Team

Advertisement 728x90

다음 읽기