비밀번호

커뮤니티2

  • 맑음속초13.6맑음북춘천1.6맑음철원1.1맑음동두천3.4맑음파주2.4맑음대관령4.0맑음춘천1.9황사백령도10.9황사북강릉14.0맑음강릉11.5맑음동해13.3황사서울7.2황사인천7.9맑음원주3.9황사울릉도11.0맑음수원4.9맑음영월1.4맑음충주2.2맑음서산1.1맑음울진9.9황사청주5.1황사대전3.9맑음추풍령1.7황사안동4.7맑음상주5.0황사포항8.7맑음군산3.2황사대구8.1황사전주3.0황사울산8.3맑음창원11.4황사광주5.8맑음부산11.1맑음통영9.0황사목포7.1황사여수8.4황사흑산도6.7구름많음완도6.6구름많음고창1.8구름많음순천6.0황사홍성3.4맑음서청주1.8황사제주9.0구름많음고산9.8구름많음성산9.1흐림서귀포13.4구름많음진주7.8맑음강화6.4맑음양평3.6맑음이천3.6구름많음인제2.7맑음홍천2.9맑음태백4.7맑음정선군1.6맑음제천0.2맑음보은0.8맑음천안1.0맑음보령1.9맑음부여1.2맑음금산1.0맑음세종1.9구름많음부안3.0구름많음임실0.2구름많음정읍2.3구름많음남원1.5구름많음장수-0.6구름많음고창군2.5구름많음영광군3.5맑음김해시10.3구름많음순창군1.9구름많음북창원11.2구름많음양산시12.0맑음보성군6.2구름많음강진군6.0구름많음장흥4.3구름많음해남5.8맑음고흥3.1구름많음의령군3.4구름많음함양군1.0맑음광양시5.6구름많음진도군7.9맑음봉화2.2맑음영주4.0맑음문경3.3맑음청송군2.2맑음영덕7.7맑음의성2.3맑음구미5.0맑음영천6.6구름많음경주시8.5구름많음거창1.7구름많음합천4.1구름많음밀양10.5구름많음산청3.2맑음거제10.9맑음남해8.1구름많음북부산12.2
  • 2026.04.21(화)

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

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