AI VIDEO BRIEFING

RAG 한계와 지식 그래프: AI 소설 창작 앱으로 배우는 검색증강생성 개선 전략

한 마이크로소프트 MVP가 오픈소스 AI 소설 창작 앱을 만들며 겪은 시행착오를 통해, 임베딩·코사인 유사도 기반 RAG(검색증강생성)의 한계와 이를 지식 그래프·도구 호출로 보완하는 방법을 단계별로 정리했다.

RAG만으로는 부족하다: 지식 그래프로 AI 창작 앱을 한 단계 끌어올린 개발자의 실전 기록 영상 대표 이미지

핵심 메시지

  • 최신 대규모 언어 모델도 소설 한 챕터를 통째로 매끄럽게 써내기는 어렵고, 한 문단씩 충분한 맥락을 넣어 생성하는 방식이 더 안정적이다.
  • 이야기를 '시간선 → 장소 → 인물(속성) → 챕터·문단' 순서의 핵심 요소로 분해해 구조화하면 모델이 일관성을 유지하기 쉬워진다.
  • 임베딩과 코사인 유사도 기반의 RAG는 프롬프트에 넣을 수 있는 양이 한정돼 있어, 복잡한 이야기에서는 관련 정보를 충분히 끌어오지 못한다.
  • 인물을 노드로, 상호작용을 엣지로 표현한 지식 그래프를 만들어 이를 '도구'로 모델에 노출하면, 모델이 필요한 만큼 여러 번 질의해 훨씬 깊은 맥락을 확보할 수 있다.
  • 같은 도구를 반대 방향으로도 써서 모델이 발견한 모순을 원본 파일에 직접 수정하도록 할 수 있다.

쉽게 이해하기

마이크로소프트의 개발자 대담 프로그램 'MVP Unplugged'에서 오랜 오픈소스 기여자이자 마이크로소프트 MVP인 마이클이 자신이 만든 오픈소스 앱 'AI Story Builders'를 소개했다. 이 앱은 AI를 이용해 소설을 쓰도록 돕는 도구로, MIT 라이선스로 전체 소스가 공개돼 있고 마이크로소프트 스토어와 깃허브에서 무료로 받을 수 있다. 그는 챗GPT가 처음 등장했을 때 자신이 정말 필요로 하는 것을 만들고 싶어 이 프로젝트를 시작했다고 밝혔다.

핵심 교훈은 '시행착오의 기록'이었다. 초기에 그는 지금 쓰는 이야기를 통째로 프롬프트에 넣고 '다음 챕터를 써 달라'고 요청했지만 번번이 실패했다. 3년 전의 모델은 물론이고 최신 프런티어 모델을 써도, 너무 많은 분량을 한 번에 맡기면 그럴듯하지만 결이 어긋난 글이 나왔다. 결국 그는 'AI가 안정적으로 잘 쓸 수 있는 단위는 한 문단'이라는 결론에 이르렀고, 그 한 문단을 위해서도 방대한 맥락을 프로그램이 대신 관리해 줘야 한다는 점을 깨달았다.

그는 이야기를 핵심 요소로 분해했는데, 순서가 중요했다. 가장 먼저 오는 것은 인물이 아니라 '시간선'이다. 회상 장면처럼 이야기는 시간의 지배를 받기 때문이다. 그다음이 '장소'이고, 그 위에 '인물'과 인물의 속성(머리색, 배경 등)이 얹힌다. 인물의 속성조차 항상 특정 시간선 위에 존재한다. 이렇게 정리한 관계형 데이터를 명시적으로 모델에 먹이고, 나머지 서술은 모델이 조합하도록 맡기는 구조다.

데이터는 별도 데이터베이스 없이 텍스트 파일로 저장하고, 임베딩과 코사인 유사도를 이용해 서로 관련된 문단을 찾아내는 RAG(검색증강생성)로 프롬프트를 구성한다. 문단마다 등장인물, 본문, 임베딩이 함께 저장되며 프로그램이 이를 읽어 관련 문단을 선별해 프롬프트를 만든다. 그러나 RAG는 프롬프트에 실을 수 있는 양이 제한돼, 이야기가 복잡해질수록 필요한 맥락을 다 담지 못하는 한계가 드러났다.

그가 최근 도입한 해법이 지식 그래프다. 인물을 엔티티(노드)로, 인물 간 상호작용을 엣지로 표현하고 문단 단위로 쪼개 둔 그래프를 모델에 '도구(tool)'로 노출한다. 그러면 프런티어 모델의 도구 호출 능력을 이용해 필요한 만큼 그래프를 반복 질의할 수 있어, 단순 RAG로는 끌어오기 힘든 세부 정보까지 확보한다. 예컨대 '1장에서 왓슨과 홈즈의 상호작용을 알려줘' 같은 질문에 매우 상세한 답을 얻고, 같은 도구로 발견된 모순을 파일에 직접 수정하게 할 수도 있다. 그는 다른 개발자들도 자신의 앱에서 엔티티와 엣지를 찾아 지식 그래프를 만들고 도구로 노출하면 RAG의 한계를 넘어설 수 있다고 조언했다.

주요 인사이트

  • 생성 단위를 잘게 나누는 것이 품질을 좌우한다: 모델에 한 번에 맡기는 분량을 문단 수준으로 줄이면 일관성과 완성도가 크게 올라간다.
  • 도메인 구조를 먼저 설계하라: 이야기를 '시간선-장소-인물' 순으로 분해한 것처럼, 문제 영역의 핵심 요소와 그 우선순위를 정의하는 것이 프롬프트 엔지니어링보다 근본적인 지렛대가 된다.
  • RAG는 만능이 아니라 '입력 한도'라는 병목을 가진다: 프롬프트에 실을 수 있는 양이 유한하므로 관계가 복잡한 데이터에서는 검색만으로 부족하다.
  • 지식 그래프를 '도구'로 노출하는 방식이 핵심이다: 모델이 스스로 필요한 만큼 반복 질의하게 하면, 한 번에 다 넣는 RAG보다 훨씬 깊이 있는 맥락 확보가 가능하다.
  • 도구 호출은 읽기뿐 아니라 쓰기에도 쓸 수 있다: 모델이 모순을 찾아내고 원본을 직접 고치게 하면 사람이 일관성을 관리하는 부담이 줄어든다.

자주 묻는 질문

왜 AI에게 소설 한 챕터를 통째로 쓰게 하지 않았나요?

발표자는 여러 번의 시도 끝에, 분량을 크게 맡기면 최신 모델조차 그럴듯하지만 결이 어긋난 글을 내놓는다는 것을 확인했습니다. 그래서 AI가 안정적으로 잘 써내는 단위인 '한 문단'씩 생성하고, 그 문단에 필요한 맥락을 프로그램이 관리하도록 설계했습니다.

RAG(검색증강생성)의 한계는 무엇으로 설명됐나요?

임베딩과 코사인 유사도로 관련 문단을 찾아 프롬프트에 넣는 방식은 유용하지만, 프롬프트에 담을 수 있는 양이 한정돼 있습니다. 그래서 인물과 사건 관계가 복잡해지면 필요한 정보를 충분히 끌어오지 못한다고 설명했습니다.

지식 그래프는 RAG와 어떻게 다르게 동작하나요?

인물을 노드로, 상호작용을 엣지로 표현한 그래프를 모델에 '도구'로 노출하면, 모델이 필요한 만큼 여러 번 그래프를 질의할 수 있습니다. 한 번에 모든 것을 프롬프트에 넣는 대신 반복 호출로 깊은 맥락을 확보한다는 점이 단순 RAG와 다릅니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식