데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      OpenLab - 지식그래프, GraphRAG 구조화된 지식의 발견

      maider030 24.08.05
      6,341 7 2
      DEVOTEE 요약
      지식 그래프를 대형 언어 모델에 적용한 GraphRAG는 RAG의 한계를 극복하여 더 고차원적인 정보를 제공한다. GraphRAG는 Multi-hop reasoning과 Clustering을 통해 복잡한 추론과 전역적인 탐색을 효율적으로 수행한다. 하지만, 지식 그래프 구축의 어려움과 높은 추론 비용으로 인해 현재 광범위하게 활용되지는 않는다.
      DEVOTEE 추천 블로그

      본 포스트는 데보션 오픈랩 스터디에서 작성되었습니다.

      최근 미래 기술로서 지식 그래프와 이의 대형언어모델에 대한 적용에 관심이 많이 높아졌다는 것이 느껴졌었습니다.

      그래서, 이번 글에서는 대형 언어 모델에 지식 그래프를 적용한 GraphRAG에 대해 얘기를 해보려고 합니다.

      이번 포스팅에서는 특히 아래 내용에 대해서 다루려고 합니다.

      • GraphRAG의 배경 - 지식 그래프

      • GraphRAG가 나온 배경 - RAG의 한계

      • GraphRAG

        • Multi-hop reasoning

        • Global search


      Knowledge graph란 무엇일까?

      지식 그래프(knowledge graph)는 지식 베이스(knowledge base)로 만들어진 그래프입니다.

      지식 그래프는 개체, 이벤트, 상황 또는 추상적 개념과 같은 개체의 상호 연결된 설명을 저장하는 동시에 사용된 용어의 기본 의미 체계를 인코딩하는 데 자주 사용됩니다.

      좀 더 쉽게 얘기해볼까요.

      다음 밤하늘 그림에서 북극성은 무엇일까요?

      image.png

      왼쪽 그림에서는 북극성이 어떤 별인지 찾기 어렵습니다. 그러나, 오른쪽 그림에서 처럼 밤하늘에 별자리를 그리면(구조화), 북극성(지식)을 찾기 쉽습니다.

      지식 그래프는 지식 베이스에 단편적인 지식에 지식 간의 관계를 추가하여 구조적인 지식을 만든 것을 말합니다. 이는 개별적인 정보 조각들을 상호 연결하여, 정보의 의미와 맥락을 더 잘 이해할 수 있도록 돕는 방식입니다.

      밤하늘에서도 별들을 묶어 별자리를 만들면 방향과 절기 등을 알 수 있었듯, 지식 그래프는 지식의 관계를 구조화하여 더 풍부하고 유용한 정보를 제공합니다.



      GraphRAG가 나온 배경

      RAG의 등장

      RAG(Retrieval-Augmented Generation)는 사람이 머릿속에서 지식의 청크를 불러와 이를 기반으로 답변하는 방식을 모방한 기술입니다.

      최근 대형 언어 모델 기반의 기술들은 이를 이용해 지식 베이스에 쌓인 지식을 바탕으로 답변을 생성할 수 있게 되었습니다.

      RAG의 한계

      하지만 RAG에는 몇 가지 한계가 존재합니다.

      특히, RAG는 knowledge base에 저장된 지식들만을 불러올 수 있으며, 이러한 지식을 추론하거나 조합하여 더 높은 수준의 지식을 도출하는 데는 한계가 있었습니다.

      image.png

      Figure. RAG의 문제점. RAG의 Query가 ‘유통기한이 지난 음식 처리’와 ‘환불 규정’ 두 정보가 필요함에도 음식 처리에만 초점을 맞춰서 고객 환불 규정에 대한 정보는 가져오지 못함. (출처: velog)

      이와 같은 이유로, RAG는 특정한 종류의 질문이나 문제를 다루는 데 효과적이지만, 보다 복잡하고 심화된 지식 처리를 요구하는 상황에서는 한계를 드러냈습니다.


      사람이 하는 추론 (연역, 귀납, 귀추 등)도 RAG를 이용하는 대형언어모델한테는 어려운 작업이었습니다.

      단편적인 지식만 불러오는 RAG는 책을 요약해달라고 요청하거나, 두 책을 비교해달라고 부탁하거나 하는 것도 불가능했습니다.


      따라서, 이를 극복하기 위해서는 추가적인 기술 개발과 향상이 필요했습니다.

      image.png

      Figure. 왼쪽 - Global search 문제 (요약 등), 오른쪽 - Multi-hop 문제 (연역적 추론 등)


      GraphRAG의 등장

      Graphrag는 앞선 Rag의 문제를 Knowledg graph를 이용하여 해결하고자 했습니다.

      1. 연역 같은 추론 문제 → 지식 그래프 상 경로 탐색

      2. 요약 같은 전역적인 탐색 → 지식 그래프 상 클러스터링

      1. Knowledge graph에서 경로 탐색을 통한 추론 (Multi-hop)

      Knowledge Graph(KG)는 개체(entity)와 그 관계(relationship)를 구조화하여 저장하는 데이터베이스입니다.

      KG를 활용하면 단일 홉(single-hop) 정보뿐만 아니라 여러 홉(multi-hop)에 걸친 복잡한 관계도 탐색할 수 있습니다.

      이는 단순히 직접적으로 연결된 정보를 검색하는 것을 넘어, 연관된 여러 개체와 관계를 통해 보다 깊이 있는 정보를 얻을 수 있게 합니다.


      예를 들어, “A는 B의 친구이고, B는 C의 동료”라는 관계가 KG에 저장되어 있다면, KG는 A와 C 사이의 간접적인 연결을 통해 다중 홉 추론을 수행할 수 있습니다.

      이를 통해 사용자는 직접적인 관계뿐만 아니라 간접적인 관계를 통해서도 유용한 정보를 얻을 수 있습니다.


      Multi-hop 추론의 과정은 다음과 같이 진행됩니다:

      1. 출발점 설정: 초기 개체(또는 노드)를 설정합니다.

      2. 경로 탐색: 초기 개체에서 시작하여 여러 관계를 따라가면서 경로를 탐색합니다.

      3. 추론 및 응답 생성: 탐색된 경로를 기반으로 최종 개체(또는 노드)에 도달하고, 이 정보를 바탕으로 추론을 수행하여 사용자가 원하는 답변을 생성합니다.

      이러한 경로 탐색을 통한 Multi-hop 추론은 인공지능이 사람처럼 여러 지식을 종합하여 추론하며 새로운 지식을 만들어 복잡한 질의에도 응답할 수 있게 해줬습니다.

      Figure. 지식 그래프에서 경로 탐색을 통한 추론

      Figure. 지식 그래프에서 경로 탐색을 통한 추론


      2. Clustering을 이용한 Global search

      Clustering(군집화)은 데이터 포인트들을 유사한 특성을 기준으로 그룹화하는 기법입니다.

      Knowledge Graph에서 Clustering(Community Detection이라고도 함)을 활용하면, 방대한 양의 데이터 중에서 유사한 개체들을 그룹화하여 보다 효율적인 검색과 추론을 수행할 수 있습니다.


      Clustering을 이용한 Global Search의 과정은 다음과 같습니다:

      1. 데이터 전처리: Knowledge Graph의 개체와 관계를 벡터화하여 수치적으로 표현합니다.

      2. 클러스터링 알고리즘 적용: Leiden 알고리즘 같은 클러스터링 알고리즘을 적용하여 유사한 개체들을 군집화합니다.

      3. High level 지식 그래프 생성 : 군집은 새로운 개체가 됨으로서 High level의 Knowledge graph를 만듭니다.

      image.png

      Figure. 클러스터링을 이용한 다양한 수준의 지식 그래프 생성

      지식 그래프에서 위 과정을 반복하여 다양한 수준(level)의 지식 그래프를 생성하고,

      덕분에 GraphRAG는 질문에 대하여 적당한 수준의 지식 그래프에서 RAG를 수행하여 답변을 만듦으로서 다양한 수준의 질의에 답할 수 있었습니다.


      이 두 가지 방법을 결합함으로써, Graphrag는 기존 Rag의 한계를 극복하고, 보다 정교하고 효율적인 정보 검색 및 추론을 수행할 수 있습니다.

      Multi-hop 추론은 복잡한 관계를 통해 깊이 있는 정보를 제공하고, Clustering을 통한 Global Search는 요약과 같이 광범위한 영역에 대한 정보를 제공할 수 있습니다.



      결론

      지식 그래프는 지식 베이스에 관계를 추가하여 정보를 더욱 풍부하게 만들었고,

      지식 그래프가 RAG(Retrieval Augmented Generation)에 적용된 GraphRAG는 기존의 RAG보다 더 고차원적인 정보를 생성해낼 수 있었습니다.

      그러나 현재로서는 지식 그래프 구축이 어렵고, GraphRAG의 추론 비용이 높다는 점 때문에 광범위하게 활용되지는 않고 있습니다.

      그럼에도 불구하고, 미래에는 이러한 GraphRAG의 현실적인 문제들이 개선될 날이 올 것입니다.

      RAG의 한계에 대해 고민하고 계신 분들이나, 지식 그래프에 관심을 가지신 분들이라면, 전 다음과 같은 이야기를 드리겠습니다.

      혹시 별이 수놓은 밤하늘을 보면서 이야기를 한적이 있나요?

      밤하늘의 별자리를 보면서 그리스 신화를 얘기하셨나요, 아니면 혹시 견우와 직녀 이야기를 풀으셨나요.

      아마도, 별 하나를 갖고 풀 수 있던 지식과 이야기보다는, 여러 별을 별자리라는 그래프를 만들었을 때 더 풀 수 있는 에피소드가 많았겠죠.

      별자리를 보면 이야기를 풀었던 경험과 낭만이 있다면,,언젠간 우리가 만들 인공지능에게도 GraphRAG로 지식을 지식 그래프로 만들어 이야기를 풀 지혜를 줘보는 건 어떨까요?

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      maider030 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기