이 글에서 설명하는 주요 내용은 GraphRAG = 지식 그래프(KG) + 대규모 언어 모델(LLM) 에 관한 것입니다.
먼저, LLM(대규모 언어 모델)에 대해 간단히 설명하자면, 이는 방대한 양의 텍스트 데이터를 학습해서 질문에 답하거나 글을 생성할 수 있는 인공지능(AI)입니다. 하지만 LLM은 가끔 정확한 사실을 모를 수 있고, 내부 작동 원리가 복잡해서 우리가 그 답이 어떻게 만들어졌는지 알기 어려운 경우도 있습니다. 이런 약점이 지식 그래프(KG)로 보완될 수 있습니다.
지식 그래프(KG)는 이름 그대로 지식이나 정보를 관계망으로 정리한 것입니다. 예를 들어, "스티브 잡스는 애플을 공동 창립했다" 같은 사실들이 그래프처럼 연결되어 저장됩니다. KG는 사실적인 정보를 체계적으로 저장하고, 이 정보가 어떻게 연결되는지 쉽게 이해할 수 있습니다.
이제, RAG(Retrieval-Augmented Generation)라는 개념을 알아보면, 이는 LLM이 응답을 생성하기 전에 필요한 정보를 먼저 검색해서 그 정보를 기반으로 답변을 생성하는 방식입니다. 예를 들어, 단순히 질문에 답하기 전에 관련된 자료를 찾아서 답변에 참고하는 것이죠.
그래서 최종적으로 GraphRAG는 RAG에서 검색하는 자료로 지식 그래프를 사용한다는 의미입니다.
즉, LLM이 답변을 생성하기 전에 지식 그래프에서 관련된 사실을 찾아 프롬프트에 추가해주는 방식입니다. 이를 통해 LLM은 단순히 큰 데이터를 바탕으로 답변하는 것이 아니라, 정확하고 맥락에 맞는 정보를 바탕으로 더 나은 답변을 제공할 수 있게 됩니다.
이 기술은 다양한 분야에서 사용될 수 있습니다. 예를 들어, 고객 서비스, 신약 개발, 규제 보고서 작성, 인재 채용, 법률 연구, 재산 자문 등에서 LLM과 지식 그래프를 결합하면 더 효율적이고 정확한 결과를 얻을 수 있습니다.
GraphRAG라는 기술이 최근 관심을 많이 받고 있습니다. 2024년 7월, Microsoft가 이 기술을 GitHub에서 사용할 수 있다고 발표한 이후에 사람들은 GraphRAG에 대해 더 많이 관심을 가지기 시작했습니다.
(참고로, GraphRAG 는 Microsoft만의 기술이 아닙니다. )
삼성도 2024년 7월에 RDFox라는 지식 그래프 관련 기업을 인수했습니다. 이 인수와 관련된 발표에서는 GraphRAG라는 단어가 직접 언급되지 않았지만, 지식 그래프(Knowledge Graph) 기술을 보유한 영국 스타트업을 인수를 한 것과, 기사 이후에
삼성전자의 대변인이 지식 그래프 기술을 AI와 결합하여 사용자 맞춤형 서비스를 제공할 계획을 밝힌 기사는 ZDNet Korea의 2024년 11월 6일자 기사입니다. (ZDNet)
이 기사에서 삼성리서치 글로벌 AI센터장 김대현 센터장은 "개인화 AI의 주요 기술 중 하나인 지식 그래프 기술을 개발하고 생성형 AI와 유기적으로 연결해 사용자 맞춤형 서비스를 지원할 계획"이라고 언급했습니다.
쉽게 말해, 두 거대 기업인 Microsoft와 삼성이 모두 지식 그래프와 관련된 기술, 특히 GraphRAG 같은 기술에 관심을 가지고 있고, 이것이 미래 AI 서비스의 중요한 부분이 될 것이라는 점을 시사하고 있다는 것입니다.
GraphRAG 기술에 대한 관심이 커진 이유 중 하나는, 이 기술이 지식 그래프와 생성형 AI(Generative AI)를 결합해 실질적인 문제를 해결하는 방식 때문입니다. 단순히 사람들의 관심이나 유행에서만 비롯된 것이 아니라, 실제로 복잡한 문제를 더 효율적으로 해결하는 데 도움을 주고 있다는 점이 중요한 포인트입니다.
예를 들어, LinkedIn에서는 GraphRAG를 활용해 고객 서비스를 개선했습니다. 고객 서비스에서 자주 받는 질문이나 해결해야 할 문제(티켓)가 많은데, 이 기술을 이용하면 과거에 비슷한 문제가 어떻게 해결되었는지 찾아서 AI에게 제공할 수 있습니다. 그러면 AI는 더 정확하고 신속하게 답변을 제공할 수 있게 됩니다.
이러한 변화 덕분에, LinkedIn에서 문제를 해결하는 데 걸리는 평균 시간이 40시간에서 15시간으로 단축되었습니다. 즉, GraphRAG를 사용함으로써 고객 서비스가 훨씬 빨라지고, 문제를 더 효과적으로 해결할 수 있게 된 것입니다.
GraphRAG를 구현하는 과정에서는 크게 데이터 준비, 데이터 관계 설정, 벡터 기반 검색 구현, 사용자 인터페이스 구축이라는 네 가지 주요 단계를 포함합니다. 아래는 각 단계의 개요입니다.
데이터 수집 및 정리: GraphRAG는 지식 그래프를 기반으로 검색 및 정보를 생성합니다. 이를 위해서는 의료 논문과 같은 도메인 데이터가 필요합니다. 데이터를 수집하고 이를 추론 가능한 포맷으로 정리해야 합니다. 일반적으로 RDF 파일 형식이 지식 그래프 구축에 적합합니다.
RDF 파일 준비: RDF (Resource Description Framework)는 데이터를 관계형 트리플로 표현한 파일 형식입니다. 논문, 의료용어, 저자, 발행일 등 데이터를 주체(subject)-서술어(predicate)-객체(object) 관계로 표현한 트리플을 준비합니다.
지식 그래프 구축: 수집한 데이터를 지식 그래프로 변환합니다. 여기서 지식 그래프는 논문 간의 관계, 논문과 의료 용어의 연결, 논문과 저자 또는 발행일의 연결 등을 정의한 네트워크입니다. 각 데이터 항목은 노드가 되고, 이들 간의 관계는 엣지(연결선)가 됩니다.
지식 그래프 쿼리 설정: 구축된 그래프에서 원하는 데이터를 추출하기 위한 쿼리 문을 작성합니다. SPARQL은 RDF 데이터를 질의하는 표준 언어(https://ko.wikipedia.org/wiki/SPARQL?utm_source=chatgpt.com)로, 이를 사용해 특정 논문에 대한 의료 용어나 요약본을 가져오거나 특정 키워드와 관련된 논문을 검색할 수 있습니다.
벡터 검색을 위한 벡터베이스 구축: 사용자가 제공한 텍스트 입력(예: 특정 질병명)에 대해 관련 논문을 빠르게 찾기 위해서는 텍스트 데이터를 벡터(숫자 벡터)로 변환해 저장해야 합니다. 벡터 데이터베이스를 사용해 논문 제목, 초록 등을 벡터로 변환한 후 저장합니다.
쿼리 벡터 생성 및 검색: 사용자가 검색어를 입력하면, 해당 텍스트도 벡터로 변환한 뒤 데이터베이스에서 가장 유사한 논문들을 찾습니다. 이 과정에서 논문 벡터와 검색어 벡터 간의 유사도 점수를 계산하여, 검색 결과를 제공합니다.
UI에서 검색 및 결과 표시: Streamlit과 같은 프레임워크를 사용해 사용자가 검색할 수 있는 인터페이스를 구축합니다. 여기서 사용자는 검색어 입력, 검색 결과 확인, 의료용어 확장 및 대체 이름 탐색, 선택한 용어 기반 필터링 등을 수행할 수 있습니다.
결과 필터링 및 요약: 검색된 논문 중 특정 의료용어를 포함하는 논문만을 필터링하여 표시하고, 이를 사용자가 선택한 후 최종적으로 여러 논문의 요약을 생성할 수 있도록 LLM (대형 언어 모델)을 활용한 텍스트 요약 기능을 제공합니다. 이를 통해 논문의 주요 내용을 요약해 쉽게 제공할 수 있습니다.
GraphRAG는 데이터의 복잡한 관계를 효과적으로 모델링하여 생성적 AI의 정확성을 향상시키는 전략입니다. 이 접근법은 벡터 기반 검색과 그래프 기반 검색을 결합하여, 단순한 의미론적 유사성 이상의 정교한 관계를 포착합니다. 이를 통해 복잡한 쿼리에 대한 정확한 답변을 제공하며, 특히 다중 단계의 추론이 필요한 질문에 강점을 보입니다.
앞으로 GraphRAG 는 AWS와 같은 클라우드 서비스 제공업체들이 GraphRAG를 지원함으로써, 기업들이 이 기술을 손쉽게 도입하고 활용할 수 있는 환경이 마련되고 있습니다.
그러나 GraphRAG의 성공적인 구현을 위해서는 데이터 모델링, 그래프 쿼리, 프롬프트 엔지니어링 등 다양한 기술적 역량이 필요합니다. 따라서 기업들은 이러한 기술을 습득하고, 지속적인 연구와 개발을 통해 GraphRAG의 효과를 극대화해야 할 것입니다. 또한, GraphRAG의 성능을 지속적으로 평가하고 개선하기 위해서는 실험과 벤치마킹이 필수적입니다.
결론적으로, GraphRAG 전략은 생성적 AI의 정확성과 신뢰성을 높이는 데 핵심적인 역할을 하며, 앞으로의 발전과 적용이 기대됩니다.