비밀번호

커뮤니티2

  • 맑음속초6.0맑음북춘천6.0구름많음철원5.2맑음동두천7.5맑음파주6.4구름많음대관령0.4구름많음춘천6.9맑음백령도4.0맑음북강릉6.2구름많음강릉6.9맑음동해6.8맑음서울6.2맑음인천6.2구름많음원주4.8비울릉도4.1맑음수원6.8구름많음영월5.3구름많음충주5.8맑음서산6.4구름많음울진8.3흐림청주2.4연무대전5.4흐림추풍령2.0구름많음안동5.5구름많음상주5.3맑음포항9.8맑음군산5.8흐림대구7.3구름많음전주5.7맑음울산9.0맑음창원9.3연무광주6.3맑음부산9.9맑음통영10.3박무목포6.0맑음여수8.4연무흑산도8.1구름많음완도8.3구름많음고창6.1구름많음순천5.4구름많음홍성6.8구름많음서청주3.0흐림제주7.9구름많음고산7.6구름많음성산8.5맑음서귀포12.9구름많음진주8.8맑음강화6.4구름많음양평구름많음이천7.0구름많음인제5.4구름많음홍천5.5구름많음태백2.5구름많음정선군5.4구름많음제천4.7흐림보은1.9구름많음천안5.8맑음보령9.2맑음부여6.3구름많음금산3.5구름많음세종4.9맑음부안7.5흐림임실2.9구름많음정읍6.4흐림남원2.7흐림장수1.2구름많음고창군6.5구름많음영광군6.3맑음김해시10.2구름많음순창군4.2맑음북창원10.2맑음양산시11.2구름많음보성군8.6구름많음강진군7.0구름많음장흥6.8구름많음해남7.0구름많음고흥7.3구름많음의령군8.4흐림함양군5.2맑음광양시8.5구름많음진도군7.6맑음봉화4.9맑음영주6.1구름많음문경5.1맑음청송군5.3맑음영덕9.3구름많음의성7.9구름많음구미5.9구름많음영천8.0맑음경주시8.4흐림거창6.5구름많음합천9.4맑음밀양9.8구름많음산청7.0맑음거제8.6맑음남해9.7맑음북부산10.6
  • 2026.03.09(월)

데이터 엔지니어링데이터 엔지니어링

RAG? Vector RAG? Graph RAG?

Graph RAG는 RAG [ Retrieval Augmented Generation]의 방법입니다.

 

Screenshot 2024-06-26 at 12.32.58 PM.png

 

Graph RAG를 설명하기 전에 RAG가 무엇인지 간단하게 설명을 드리자면, 

최근 Chat GPT와 같이 대규모 언어 모델을 통한 서비스가 개발되고 있는데, 이 모델들의 단점은 학습되어 있는 정보를 바탕으로 결과를 나타낸다는 것입니다.

 

한 예로, 최근 발표된 gpt-4o의 모델은 2023년 10월 까지의 데이터를 사용하였다는 의미입니다.

최근에는 Chat GPT에 인터넷에서의 정보를 가져오는 기능이 포함되어 2023년 10월 이후의 데이터에 대한 정확도를 어느정도 확보 하였지만, 이 기능이 있기전 까지는 정확한 정보를 가져오는것이 불가능했습니다.

 

그렇기 때문에 각 특정분야에서는 대규모 언어모델을 자신들의 데이터로 학습하여 데이터에 대한 정보를 주입하는 방법을 사용했습니다. 그러나 이런 Fine-Tunning 방식은 데이터를 준비하고, 데이터의 품질 검사 및 학습에 소요되는 시간, 비용을 생각하면 소규모 조직에서는 득보다는 실이 많은 상황이 많습니다.

 

이런 방식을 최소화 하기 위해서, RAG라는 방법론이 2021년 Facebook AI를 통해 연구되었습니다.

https://arxiv.org/pdf/2005.11401

 

해당 방법은 다양한 문서들에 대해서 검색 및 색인을 할수 있도록 하며, 해당 문서는 대규모 언어모델과도 연동이 되어야 하는 방법입니다.

 

 

 RAG와 관련되어서 더 자세한 글은 여기에서 더 확인해보실수 있습니다.

 

그렇다면 Graph RAG는 무엇인가라면, 기존의 RAG는 문서의 Embedding Vector를 통해 Query와의 유사성을 연산하였다면, Graph RAG는 Knowledge Graph를 추가적으로 이용한다는 것입니다.

 

Knowledge Graph (지식 그래프)는 " (노드) - [관계] -> (노드) " 의 형태를 가지는 그래프입니다.

 

한 예시로, "플러스제로는 서울의 강남에 위치한 데이터 마케팅 회사입니다" 라는 문장에서

 

(플러스제로) - [위치해 있다] - (강남)

(플러스제로) - [일을 한다] - (데이터 마케팅)

(플러스제로) - [is] - (회사)

(강남) - [Entity] - (위치)

등등 다양한 정보를 그래프로 나타낼수 있습니다

소괄호  ( ) 안에 있는 단어는 명사 같은 노드를, 중괄호[ ] 는 노드끼리의 관계를 나타냅니다.

 

Screenshot 2024-06-26 at 12.18.30 PM.png

[이미지 출처 : Neo4j]

 

다양한 문서들에 대해서 이러한 Knowledge Graph를 만들게 되면 아래와 같이 데이터들의 관계를 나타낼수 있습니다.

 

visualisation.png

 

해당 그래프에는 문서의 노드와 관계 뿐만 아니라 문서 자체도 포함되어 있습니다.

 

이렇게 데이터화가 되었다면, Graph RAG는 Embedding Vector의 유사성 뿐만 아니라, Query에서 중요한 단어에 대해서 Graph Query를 통해 연관된 노드들과 관계를 찾아서 해당 정보를 가져옵니다.

 

1. Graph Query를 통해 나온 노드들의 연관관계와 2. Query의 embedding vector와 유사도가 높은 문서의 정보

를 바탕으로 대규모 언어모델은 사용자가 질의한 내용에 대해서 답변하도록 합니다.

 

Graph RAG방식은 문서와 질의의 유사성과 질의에 포함되어 있는 중요 단어 및 관계에 대한 정보를 더 잘 유추할수 있기에 기존의  Vector RAG보다 성능이 좋다는 연구가 있습니다.

 

Graph RAG에 대해 더 알고 싶으시다면,  2024년에 마이크로소프트에서 연구한 블로그를 한번 보시는것도 도움이 될수 있습니다.

 

감사합니다.

 

전체댓글0

검색결과는 총 26건 입니다.    글쓰기
1 2