반응형

소스 코드 한 줄 없이 가상의 퀴즈 게임으로 설명하는 GraphRAG

GraphRAG에 대해 들어본 적은 있는데, 정확히 뭔지, 기존 RAG와 비교해서 어떤 장점이 있는지 궁금하신가요? 이 카드 게임을 통해 코드나 기술적인 세부 사항 없이 GraphRAG를 보여드리려고 해요. 이 비유를 이해하려면 RAG가 뭔지는 알고 있어야 할 거예요. 혹시 RAG를 잘 모르신다면, 이 블로그의 마지막 부분에서 RAG에 대한 간략한 개요와 그래프 이론을 설명해 드릴게요.

게임

이 게임은 플레이어가 퀴즈 질문에 답하는 챗봇 역할을 하는 간단한 퀴즈 게임이에요. 여기 예시에서는 퀴즈 주제가 음악이지만, 어떤 주제든 상관없어요.

점수를 기록할 메모장과 펜 외에, 게임은 다음과 같은 요소로 구성되어 있어요.

  •  — 뒷면은 모두 똑같고, 앞면에는 질문 1개와 답 1개(단서 카드에 대한 참조와 함께)가 적혀 있어요.
질문 카드
  •  — 뒷면에는 단서의 주제가 적혀 있는 단서 카드가 12장 있어요. 앞면에는 해당 주제에 대한 추가 정보가 담겨 있죠.
단서 카드
  •  — 게임 보드에는 12개의 단서 카드를 놓을 수 있는 12개의 필드와, 이들 간의 관계가 표시되어 있어요.
게임 보드
  •  — STANDARD, RAG, GRAPH RAG라고 적힌 세 개의 필드가 있는 스피너예요.

게임을 시작하려면 모든 질문 카드를 잘 섞어서 뒷면이 위로 오도록 게임 보드 옆에 더미로 놓아주세요. 스피너는 게임 보드 옆에 놓고요.

게임 설정

이제 모든 단서 카드를 게임 보드의 해당 필드에 뒷면이 위로 향하게 놓으면 준비 완료!

게임 보드의 단서 카드

게임 플레이

플레이어는 맨 위에 있는 질문 카드를 뽑아서 질문을 읽어요.

블로그의 긴장감을 위해 답변은 흐릿하게 처리했어요. 🙂

이제 플레이어가 스피너를 돌립니다!

스피너가 STANDARD에 멈추면, 일반 챗봇처럼 행동해서 질문("비틀즈에서 Jeff Lynne과 함께 다른 밴드에서 연주한 사람은 누구입니까?")에 대해 아는 한도 내에서 답변해야 해요. 비틀즈에 대해 얼마나 알고 있나요? 적어도 John Lennon과 Paul McCartney는 아시겠죠? Paul이 아직 살아있다는 점을 고려하면 (그가 1966년에 사망하고 비슷한 인물로 대체되었다는 음모론을 믿지 않는 한) John이 비틀즈 이후 몇 년을 Yoko Ono와 함께 보낸 반면 Paul이 답일 수도 있겠네요. 그렇다면 오답이에요!

스피너가 RAG에 멈추면, 질문 카드 하단에 언급된 단서 카드(이 경우 비틀즈)를 집어 들어요.

비틀즈에 대한 단서 카드

여기에서 밴드 멤버 목록을 보고 "아, 맞아! 다른 두 사람 이름이 있었지!"라고 생각할 수도 있고, 링고 스타가 Jeff Lynne이라는 사람과 함께 밴드에서 연주할 친구처럼 들린다고 생각할 수도 있어요. 그것도 오답이죠!

마지막으로 스피너가 GRAPH RAG에 멈추면, 관계 유형을 하나 선택하고, 참조된 단서 카드(이 경우 비틀즈)에서 한 단계 떨어진, 해당 관계로 연결된 모든 단서 카드를 뽑을 수 있어요. 여기서는 관계 유형을 로 선택해서, (비틀즈 외에) 단서 카드 3개를 더 선택할 수 있는 거죠.

SAME MEMBER와 관련된 게임 보드의 단서 카드

이건 우리가 이미 갖고 있는 것 외에 비틀즈에 대한 단서를 아래에 보여주는 거예요.

비틀즈의 SAME MEMBER 관계를 따르는 단서 카드 3개

여기서는 George Harrison이 Traveling Wilburys에서 Jeff Lynne과 함께 플레이한 것을 볼 수 있으므로 정답은 이거죠! 운이 좋게도 스피너의 GRAPH RAG에 도달할 수 있다면 정답을 얻는 건 어렵지 않아요.

제대로 맞추면 포인트를 얻을 수 있어요. 어느 쪽이든 단서를 다시 뒤집어 놓고 질문을 더미 맨 아래에 놓은 다음 차례는 다음 플레이어로 넘어가는 거죠.

답변이 포함된 질문 카드

마무리

이게 본질적으로 GraphRAG의 내용이고, GraphRAG와 일반 RAG가 표준 LLM 챗봇을 개선하는 방법이에요. 우리는 이게 어떻게 답변을 개선하고 환각을 줄이는지 보여줬지만, "단서"가 LLM이 전혀 알지 못하는 비즈니스 영역(예: HR 기록)에 관한 것일 때 훨씬 더 강력하죠.

그렇다면 Neo4j와 같은 Graph Database를 사용하여 이 게임의 비유를 실제 GraphRAG로 어떻게 변환할 수 있을까요? 게임 보드는 데이터베이스를 나타내고 단서 카드는 데이터베이스에 저장된 모든 문서예요 (게임 보드의 선은 그래프임). 하지만 12개의 문서가 아닌 수백만 개의 문서가 있을 가능성이 높죠. 질문을 받을 때 질문 카드에 있는 것처럼 관련 문서에 대한 직접 링크가 없어요. 대신, 우리는 Vector Embedding과 벡터 검색을 통해 문서의 내용과 질문의 내용을 기반으로 가장 관련성이 높은 문서를 찾아요. 애플리케이션에 질문과 관련 문서가 모두 있으면 이를 모두 챗봇에 전달하고 해당 문서를 기반으로 질문에 응답하고 소스 참조를 포함하도록 요청하는 거예요.

제가 작성한 다음 두 블로그 게시물에서 Vector Embedding과 GraphRAG를 실제로 구현하는 방법에 대한 자세한 내용을 읽을 수 있어요. 4줄의 코드로 구성된 GenAI 기반 노래 찾기 and (거의) 순수 Cypher의 GraphRAG.

부인 성명

이건 단지 주장을 펼치기 위해 사용된 가상의 게임이라는 점을 이해해주셔야 해요. 완전히 개발된 게임은 아니에요. 저는 질문 카드를 한 개 이상 작성하지 않았고, 그 단서 카드에 얼마나 많은 질문을 고안할 수 있는지 생각해 본 적도 없어요. 솔직히, 단 12개의 단서 카드만으로 얼마나 플레이할 수 있을지 잘 모르겠어요. 아마도 5분 정도 게임을 하고 나면 외웠을 거예요.


RAG 및 그래프 설명

RAG에 대해 들어본 적이 없거나 그래프가 차트의 선형 플롯이라고 생각하는 분들을 위해 두 가지 개념에 대한 간략한 요약이 있어요.

RAG

RAG (Retrieval-Augmented Generation)는 ChatGPT와 같은 GenAI(생성 AI) 챗봇의 유용성을 향상시키는 방법이에요. 이는 환각을 줄이고 답변의 설명 가능성을 향상시키며(소스 참조 제공을 통해) 비즈니스 도메인과 같이 교육받지 않은 항목에 대한 질문에 챗봇이 답변할 수 있도록 하는 데 사용돼요. 답변이 포함될 수 있는 관련 문서를 가져와 이를 질문과 함께 챗봇에 제공함으로써 수행되죠.

RAG가 무엇인지에 대한 개요

그래프

그래프에서는 차트나 다이어그램을 참조하는 것이 아니라 이산 수학에서 사용되는 그래프 이론을 참조하는 거예요. 그래프는 edge(때때로 "관계"라고도 함)로 연결된 vertex(때때로 "node"라고도 함)로 구성돼요. 이 블로그에서 게임판은 그래프, 단서 카드의 꼭지점, 그리고 그 사이의 관계가 edge를 나타내죠.

5개의 vertex(node)와 6개의 edge(관계)가 있는 그래프

추가 자료

그래프, RAG 및 GraphRAG에 대한 자세한 설명은 Neo4j CTO Philip Rathle의 다음 블로그 게시물을 확인하세요. GraphRAG 선언문: GenAI에 지식 추가.


  • 그래프RAG
  • Retrieval-Augmented Generation

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

반응형

+ Recent posts