반응형

우리는 RAG의 "블루 링크" 시대를 맞이하고 있습니다

저희가 GenAI를 사용해서 정말 유용한 작업을 하려면 의지할 수 없다고 해요. 오직 auto-regressive LLM만 사용해서 결정을 내릴 수는 없다는 거죠. 무슨 생각을 하시는지 알아요. "RAG가 답이다!", "Fine-tuning이 답이다!", "GPT-5가 답이다!" 라고 생각하시겠죠.

네, Vector 기반 RAG나 Fine-tuning 같은 기술이 도움이 될 수 있어요. 어떤 사용 사례에서는 충분할 수도 있겠죠. 하지만 이런 기술들이 모두 한계에 부딪히는 사용 사례들이 또 있다는 거예요. Vector 기반 RAG는 Fine-tuning과 마찬가지로 다양한 질문에 대한 정답을 맞힐 확률을 높여주긴 해요. 하지만 어떤 기술도 정답이라는 확신을 주지는 않죠. 종종 맥락, 색깔, 그리고 연결이 부족해요. 여러분은 그게 사실이라는 걸 알고 있잖아요. 게다가 이런 도구들은 왜 그런 특별한 결정을 내렸는지에 대한 단서를 많이 남기지 않아요.

2012년에 Google은 "Introducing the Knowledge Graph: Things, Not Strings"라는 상징적인 블로그 게시물을 통해 2세대 검색 엔진을 선보였어요.1 그들은 Knowledge Graph를 사용해서 정보를 정리하면 역량이 크게 향상될 수 있다는 것을 발견했어요. 모든 웹페이지의 문자열로 표시되는 것 외에도 things를 처리하는 역량이요. 저희는 오늘날 GenAI에서도 이와 똑같은 패턴이 펼쳐지는 것을 보고 있어요. 많은 GenAI 프로젝트가 한계점에 부딪히고 있어요. 결과의 품질은 사용 중인 솔루션이 things가 아닌 strings를 처리하고 있다는 사실에 따라 결정되는 거죠.

시간을 확 돌려서 오늘날, AI 엔지니어와 최첨단 학술 연구자들은 Google이 했던 것과 똑같은 것을 발견하고 있어요. 즉, 이 한계를 돌파하는 비결은 Knowledge Graph라는 거죠! 즉, 지식을 things로 가져와서 통계 기반 텍스트 기술과 혼합해서 사용하는 거예요. 이건 Vector index 외에 Knowledge Graph 호출을 제외하고는 다른 유형의 RAG와 똑같이 작동해요. 다른 말로 하면, GraphRAG인 거죠!

이 게시물은 GraphRAG를 포괄적이고 읽기 쉽게 다루기 위해 작성되었어요. 데이터에 대한 Knowledge Graph를 구축하고 이를 RAG에서 사용하면 몇 가지 강력한 이점을 얻을 수 있다는 것이 밝혀졌어요. 일반적인 Vector 전용 RAG를 사용해서 LLM에 문의할 수 있는 모든 질문에 대해 더 나은 답변을 제공한다는 것을 입증하는 강력한 연구가 있답니다.

그것만으로도 GraphRAG 채택의 큰 원동력이 될 거예요. 게다가 앱을 구축할 때 데이터가 표시되니까 개발이 더 쉬워지죠. 세 번째 주요 이점은 기계뿐만 아니라 사람도 그래프를 쉽게 이해하고 추론할 수 있다는 거예요. 따라서 GraphRAG를 사용해서 구축하는 것이 더 쉽고, 더 나은 결과를 제공하며, 설명 및 감사가 가능하다는 건데, 이는 많은 산업 분야에서 매우 중요한 기능이에요! 저는 GraphRAG가 Vector 전용 RAG를 포함하고 대부분의 사용 사례에서 기본 RAG 아키텍처로 등장할 거라고 믿어요. 이 게시물에서는 그 이유를 설명할게요.

잠깐, 그래프?

그래프라고 하면 다음과 같은 의미라는 점을 분명히 해두고 싶어요.

아니면 이런 모습일 수도 있구요:

A Game of Thrones graph.
왕좌의 게임 그래프 시각화, William Lyon 작성.

아니면 다음과 같을 수도 있겠네요:

음, 그러니까 인 거죠.

만약 여러분이 더 자세히 알아보고 싶다면, 그래프와 Knowledge Graph를 배우기 위해 Neo4j의 GraphAcademy나 Andrew Ng의 Deeplearning.ai 과정인 RAG에 대한 Knowledge Graph를 살펴보는 걸 추천드려요. 여기서는 정의에만 머물지 않고 그래프에 대한 기본적인 실무 지식을 전제로 계속 진행할게요.

위 그림을 이해하면 RAG 파이프라인의 일부로 기본적인 그래프 데이터(Graph Database에 저장된)를 `Query`하는 방법을 알 수 있을 거예요. 이게 바로 GraphRAG의 핵심 내용이랍니다.

두 가지 유형의 지식 표현: 벡터 및 그래프

일반적인 RAG의 핵심인 벡터 검색은 텍스트 덩어리를 가져와 서면 자료의 후보 본문에서 개념적으로 유사한 텍스트를 반환해요. 이건 정말 신기하고 기본적인 검색에 아주 유용하죠.

이 작업을 수행할 때마다 생각하지 못할 수도 있는 것은 벡터의 모양이나 유사성 계산이 수행하는 작업인데요. 인간의 용어, 벡터 용어, 그래프 용어로 사과를 한번 살펴볼까요?

인간의 표현은 복잡하고 다차원적이며 종이에 완전히 담아낼 수 있는 것이 아니에요. 시적 허용을 허용하고 이 아름답고 유혹적인 그림이 모든 측면에서 사과를 나타낸다고 상상해 봅시다. 지각적인& 개념적 영광.

사과의 Vector Embedding2은 숫자의 배열, 즉 통계 영역의 구성 요소에요. Vector의 매력은 각각 해당 텍스트의 본질을 인코딩된 형식으로 포착한다는 점이죠. 하지만 Retrieval-Augmented Generation (RAG) 컨텍스트에서는 한 줌의 단어가 다른 단어와 얼마나 유사한지 식별해야 할 때만 가치가 있어요. 이를 수행하는 것은 유사성 계산(일명 벡터 수학)을 실행하고 일치 항목을 찾는 것만큼 간단하죠. 하지만 벡터 내부에 무엇이 있는지, 주변에 무엇이 있는지, 텍스트에 표현된 내용을 처리하고, 이러한 내용이 더 큰 맥락에 어떻게 적용되는지 이해하고 싶다면, 표현으로서의 벡터로는 그렇게 할 수 없어요.

이와 대조적으로 Knowledge Graph는 세계에 대한 선언적(AI 용어로 상징적) 표현이에요. 결과적으로 인간과 기계 모두 Knowledge Graph를 이해하고 추론할 수 있죠. 이건 나중에 다시 다루게 될 중요한 부분이에요. Knowledge Graph를 쿼리하고, 시각화하고, 주석을 달고, 수정하고, 늘릴 수도 있고요. Knowledge Graph는 세계 모델을 나타내는데3, 작업 중인 도메인을 나타내는 세계의 일부라고 생각하면 돼요.

GraphRAG vs 조각

경쟁은 아니에요 🙂 벡터 및 그래프 쿼리는 각각 RAG에 가치를 더해주죠. LlamaIndex의 창립자인 Jerry Liu가 지적했듯이, GraphRAG를 벡터를 포함한다고 생각하는 것이 도움이 될 거예요. 이는 텍스트의 단어를 기반으로 한 임베딩과의 유사성에만 의존하는 "벡터 전용 RAG"와는 다르다는 거죠.

기본적으로 GraphRAG는 검색 경로에 Knowledge Graph가 포함된 RAG에요. 아래에서 볼 수 있듯이 핵심 GraphRAG 패턴은 간단해요. 기본적으로 벡터를 사용하는 RAG와 동일한 아키텍처이지만4, Knowledge Graph가 추가된 형태라고 보면 돼요.

GraphRAG 패턴

여기서는 그래프 쿼리가 실행되는 것을 볼 수 있어요. 선택적으로 벡터 유사성 구성 요소를 포함할 수도 있고요. 그래프와 벡터를 서로 다른 데이터베이스에 별도로 저장하거나, 벡터 검색도 지원하는 Neo4j와 같은 Graph Database를 사용할 수도 있겠죠.

GraphRAG를 사용하는 일반적인 패턴 중 하나는 다음과 같아요.

  1. 초기 Node 세트를 찾으려면 벡터 또는 키워드 검색을 수행하세요.
  2. 관련 Node에 대한 정보를 다시 가져오려면 그래프를 탐색하세요.
  3. 선택적으로 PageRank와 같은 그래프 기반 순위 알고리즘을 사용하여 문서 순위를 다시 매겨보세요.

패턴은 사용 사례에 따라 달라지는데, 요즘 AI의 다른 모든 것과 마찬가지로 GraphRAG는 매주 새로운 발견이 등장하면서 무궁무진한 가능성을 보여주고 있어요. 앞으로 가장 흔하게 볼 수 있는 GraphRAG 패턴에 대해 블로그 포스팅을 할 예정이니 기대해주세요!

GraphRAG 수명 주기

GraphRAG를 사용하는 GenAI 애플리케이션은 시작 시 "그래프 생성" 단계가 추가되어 RAG 애플리케이션과 동일한 패턴을 따르게 돼요.

The GraphRAG lifecycle.

그래프를 만드는 과정은 문서를 청크(chunk)해서 벡터 데이터베이스에 로드하는 것과 비슷해요. 도구가 발전하면서 그래프 생성이 정말 쉬워졌답니다. 좋은 소식은 세 가지나 있어요.

  1. 그래프는 반복적인 성격이 강해요. "최소 실행 가능한 그래프(minimum viable graph)"로 시작해서 점점 확장해 나갈 수 있죠.
  2. 데이터가 Knowledge Graph에 들어가면 진화시키기가 정말 쉬워져요. 더 다양한 종류의 데이터를 추가해서 데이터 네트워크 효과를 누릴 수도 있고요. 데이터 품질을 높여서 애플리케이션 결과의 가치를 올릴 수도 있답니다.
  3. 스택(stack)의 이 부분이 빠르게 개선되고 있다는 점이에요. 즉, 도구가 점점 더 정교해짐에 따라 그래프 생성도 훨씬 더 쉬워질 거라는 거죠.

이전 그림에 그래프 생성 단계를 추가하면 다음과 같은 파이프라인을 얻을 수 있어요.

나중에 그래프 생성에 대해 더 자세히 알아볼게요. 지금은 잠시 미뤄두고 GraphRAG의 장점에 대해 이야기해 봅시다.

왜 GraphRAG인가?

벡터 전용 RAG와 비교했을 때 GraphRAG에서 얻을 수 있는 이점은 크게 세 가지로 나눌 수 있어요.

  1. 더 높은 정확도와 더 완전한 답변 (런타임/프로덕션 혜택)
  2. Knowledge Graph를 만들고 나면 RAG 애플리케이션을 구축하고 유지 관리하는 게 더 쉬워져요 ( 혜택)
  3. 더 나은 설명력, 추적성, 그리고 액세스 제어 ( 혜택)

다음에서 더 자세히 살펴볼게요.

#1: 더 높은 정확성과 더 유용한 답변

GraphRAG에서 가장 먼저 눈에 띄는 장점은 바로 더 높은 품질의 응답이에요. 고객 사례도 늘고 있고, 학술 연구에서도 이를 뒷받침하고 있죠. 예를 들어, 데이터 카탈로그 회사인 Data.world는 2023년 말에 GraphRAG가 평균적으로 LLM 응답의 정확도를 3배 향상시켰다는 연구 결과를 발표했어요. 43가지 비즈니스 질문을 벤치마킹한 결과, Knowledge Graph를 기반으로 했을 때 응답 정확도가 훨씬 높아졌다는 것을 확인했죠.

A knowledge graph improved accuracy of LLM responses by 54.2%, an average of 3x.

최근에는 Microsoft에서 2024년 2월부터 연구 블로그 시리즈를 시작했는데요. 제목은 GraphRAG: 서술형 개인 데이터에 대한 LLM 발견 잠금 해제이고, 관련 연구 논문과 소프트웨어 릴리스도 함께 공개되었어요. 여기서 Microsoft는 Baseline RAG(즉, Vector Embedding)에 다음과 같은 두 가지 문제가 있다고 지적했어요.

  • Baseline RAG는 점을 연결하는 데 어려움을 겪어요. 질문에 답하기 위해 공유된 속성을 통해 서로 다른 정보 조각을 탐색하여 새로운 통합 통찰력을 제공해야 할 때 특히 그렇죠.
  • Baseline RAG는 대규모 데이터 컬렉션이나 단일 대규모 문서에 대한 요약된 의미 개념을 전체적으로 이해하도록 요청받을 때 제대로 작동하지 않아요.

Microsoft는 이렇게 밝혔어요.“LLM에서 생성된 Knowledge Graph를 활용하여,GraphRAG는 RAG의 '검색' 부분을 대폭 개선하여 관련성이 높은 콘텐츠로 컨텍스트 창을 채워 더 나은 답변을 제공하고 증거 출처를 포착해요. 또한, 한 바에 따르면 GraphRAG는 다른 접근 방식보다 26%에서 97% 더 적은 토큰을 필요로 해서 답변 제공이 더 좋을 뿐만 아니라 더 저렴하고 확장성도 뛰어나다고 해요.7.

정확성이라는 주제를 더 깊이 파고들면 단순히 대답이 맞는지 여부만 중요한 게 아니에요.대답이 중요한 거죠. 그리고 그 방법이 얼마나지도 중요해요. GraphRAG를 통해 사람들이 발견한 것은 답변이 더 정확할 뿐만 아니라 더 풍부하고 완전하며 유용하다는 점이에요. LinkedIn의 최근 논문 GraphRAG의 영향을 설명합니다.에서는 고객 서비스 애플리케이션에서 이에 대한 훌륭한 예를 보여주는데요. GraphRAG는 고객 서비스 질문에 대한 답변의 정확성과 풍부함(따라서 유용성)을 모두 개선하여 고객 서비스 팀의 문제별 해결 시간 중앙값을 28.6% 단축시켜 준다고 해요.8.

비슷한 예가 GenAI 워크숍에서도 나오는데요. Neo4j와 GCP, AWS, Microsoft 파트너가 강의를 진행하죠. SEC 서류 모음을 대상으로 하는 아래 샘플 Query는 Vector + GraphRAG를 사용할 때 가능한 답변과 Vector 전용 RAG를 사용할 때 얻을 수 있는 답변의 종류를 잘 보여준답니다.

무언가를 설명할 때, 차이점에 주목해 주세요. 예를 들어 "리튬 부족으로 영향을 받을 가능성이 있는 기업"을 설명하는 것과 "특정 회사"를 지목하는 건 다르죠. 시장 변화에 맞춰 포트폴리오를 재조정하려는 투자자나, 자연재해로 공급망을 재편하려는 회사라면 후자에 접근하는 게 훨씬 효과적일 거예요. 둘 다 맞는 답이지만, 두 번째가 훨씬 유용하다는 거죠.

23화 Jesus Barrasa의 Going Meta에서는 어휘 그래프를 시작으로 법률 문서 사용 사례를 활용한 또 다른 멋진 예시를 보여준답니다.

X-sphere를 꾸준히 관찰하고 LinkedIn에서 활동하는 분들은 연구실뿐만 아니라 실제 현장에서도 새로운 사례가 계속 나오고 있다는 걸 알게 될 거예요. Lettria의 Charles Borderie가 제공하는 를 한번 살펴볼까요? 10,000개의 금융 기사를 Knowledge Graph로 구축하는 LLM 기반 텍스트-그래프 파이프라인과 Vector Embedding 기반의 RAG를 비교한 GraphRAG 사례입니다:

Retriever-only approach vs. graph retriever approach.

보시다시피, GraphRAG를 사용하면 일반 RAG를 사용할 때보다 답변 품질이 눈에 띄게 향상되었을 뿐만 아니라 답변에 사용된 토큰 수도 1/3이나 줄었답니다.

마지막으로 소개할 만한 예시는 Writer예요. Writer는 최근 RAG 벤치마킹 보고서를 했는데, RobustQA 프레임워크를 기반으로 GraphRAG 기반 접근 방식을 경쟁력 있는 최고 수준의 도구들과 비교했다고 해요.9 GraphRAG는 86%라는 높은 점수를 받았는데, 이는 33%에서 76% 사이의 점수를 받은 경쟁 제품들과 비교했을 때 대기 시간은 비슷하거나 더 나으면서도 훨씬 향상된 결과라는 걸 알 수 있죠.

Evaluation of RAG approaches accuracy and response time.

매주 다양한 GenAI 애플리케이션을 통해 긍정적인 효과를 경험하는 고객들을 만나고 있어요. 특히 Knowledge Graph는 결과를 더 정확하고 유용하게 만들어서 GenAI의 가능성을 활짝 열어주는 것 같아요.

#2: 향상된 데이터 이해, 더 빠른 반복

Knowledge Graph는 개념적으로나 시각적으로나 정말 직관적이죠. 그래프를 탐색하다 보면 종종 새로운 통찰력이 떠오르곤 해요. 많은 사용자가 예상치 못하게 얻는 긍정적인 효과는 Knowledge Graph 구축에 투자한 후에 GenAI 애플리케이션을 예상치 못한 방식으로 구축하고 디버깅하는 데 도움이 된다는 점이에요. 데이터를 그래프로 보는 것이 애플리케이션의 기반이 되는 데이터의 생생한 그림을 그려주는 것과 관련이 있거든요. 그래프는 또한 데이터에 대한 답을 추적하고, 인과 관계까지 거슬러 올라갈 수 있는 연결 고리를 제공하기도 하고요.

위에서 언급한 리튬 노출 질문을 예로 들어볼게요. 벡터를 시각화하면 훨씬 더 많은 행과 열이 보이겠지만, 결과는 대략 다음과 같을 거예요.

데이터를 그래프로 다루면 벡터 표현으로는 불가능한 방식으로 데이터를 이해할 수 있다는 점, 정말 흥미롭죠?

다음은 LlamaIndex의 최근 웹 세미나10에서 발췌한 내용인데요, 벡터화된 청크(어휘 그래프)와 LLM 추출 엔터티(도메인 그래프)의 그래프를 추출하고 이 둘을 "MENTIONS" 관계로 연결하는 기능을 보여주고 있어요.

(비슷한 예시들을 찾아볼 수 있어요. 랭체인, Haystack, SpringAI, 그리고 more.)

이 다이어그램을 보면 데이터가 가지고 있는 풍부한 구조가 어떻게 새로운 개발 및 디버깅 가능성을 열어주는지 알 수 있을 거예요. 개별 데이터 조각은 그 가치를 그대로 유지하면서, 구조 자체가 애플리케이션에 더 많은 인텔리전스를 더해주는 추가적인 의미를 저장하고 전달하는 거죠.

단순히 시각화 때문만은 아니에요. 의미를 전달하고 저장하는 방식으로 데이터를 구조화하는 효과이기도 하죠. 한 유명 핀테크 개발자가 RAG 워크플로우에 Knowledge Graph를 도입한 것에 대해 이런 반응을 보였다고 해요.

Developer reaction to GraphRAG.

이 개발자의 반응은 답변이 정확하다는 걸 맹신하는 게 아니라, 검증한다는 테스트 중심 개발 가정과 딱 맞아떨어져요. 솔직히 말하면, 저는 완전히 불투명한 결정을 내리기 위해 제 자율권 100%를 SkyNet에 넘겨주는 건 좀 꺼려져요! 좀 더 현실적인 예를 들어보자면, AI에 익숙하지 않은 사람이라도 "애플, Inc."가 "애플 군단"에 매핑되면 안 되는 건 당연하잖아요. 결국 data가 GenAI 결정의 핵심 동력이기 때문에, 정확성을 평가하고 보장할 수 있는 시스템을 갖추는 게 정말 중요해요.

#3: 거버넌스: 설명 가능성, 보안 등

GenAI 결정의 영향력이 클수록, 결정이 잘못됐을 때 책임을 져야 할 사람들을 설득해야 할 필요성이 커지죠. 그만큼 결정을 더해야 하니까요. 이를 위해서는 각 결정을 감사할 수 있는 능력이 필수적이에요. 그리고 올바른 결정에 대한 탄탄하고 반복 가능한 기록도 필요하고요. 하지만 그걸로는 충분하지 않아요. 결정을 내릴 때 그 근본적인 추론 과정을 설명할 수 있어야 해요.

LLM은 그 자체로는 이걸 잘 해내지 못해요. 물론 결정을 내리는 데 사용된 문서를 참고할 수는 있지만, 그게 결정 자체를 설명해주는 건 아니잖아요. LLM이 참고 자료를 막 지어낸다는 건 말할 필요도 없고요! 반면에 Knowledge Graph는 완전히 다른 수준에서 작동해서 GenAI 파이프라인 내부의 추론 논리를 훨씬 더 명확하게 만들고, 입력 내용을 훨씬 더 쉽게 설명할 수 있게 해줘요.

위에서 언급했던 예시를 계속 살펴볼까요? Lettria의 Charles는 10,000개의 금융 기사에서 추출한 엔터티로 Knowledge Graph를 만들고, 이걸 LLM과 함께 사용해서 GraphRAG를 구현했어요. 이게 어떻게 더 나은 답변을 제공하는지 확인했었죠. 이제 데이터를 한번 살펴볼게요.

데이터를 그래프로 보는 게 첫 번째 단계예요. 데이터는 탐색하고 쿼리할 수 있어야 하고, 시간이 지나면서 수정하고 업데이트할 수도 있어야 하고요. 거버넌스 측면에서 가장 큰 장점은 데이터의 "세계 모델"을 보고 감사하기가 훨씬 쉬워진다는 거예요. 그래프를 사용하면, 동일한 데이터의 벡터 버전을 보는 것보다 최종 결정에 책임을 져야 하는 사람이 그래프를 이해할 가능성이 훨씬 높아지죠. 품질 보증 측면에서도 Knowledge Graph에 데이터를 넣어두면 데이터에서 오류나 예상치 못한 문제점(좋든 싫든)을 찾아내고, 그 원인을 추적하기가 훨씬 쉬워져요. 게다가 그래프 안에 출처나 신뢰도 정보를 저장해두면, 계산뿐만 아니라 설명에도 활용할 수 있어요. 이건 똑같은 데이터의 벡터 버전만 볼 때는 불가능한 일이죠. 앞서 말씀드린 것처럼, 일반적인 사람은 물론이고, 평균 이상의 사람조차도 이해하기가 정말 어렵거든요.

Knowledge Graph는 보안과 개인 정보 보호를 크게 향상할 수도 있어요. 프로토타입을 만들 때는 크게 중요하지 않을 수 있지만, 실제 운영 환경에서는 정말 중요한 부분이죠. 은행이나 의료처럼 규제가 엄격한 기업에서는 특정 직원이 정보에 접근할 수 있는 권한이 그 사람의 역할에 따라 달라져야 해요. LLM이나 Vector Database는 역할에 맞춰 정보 접근 범위를 제한하는 좋은 방법이 없는데, Knowledge Graph 내의 권한 설정을 사용하면 특정 사용자의 데이터 접근 능력을 제어하고, 볼 수 없는 정보는 제외하는 방식으로 간단하게 처리할 수 있어요. 아래는 세분화된 접근 제어를 통해 Knowledge Graph에서 구현할 수 있는 간단한 보안 정책의 예시랍니다.

Knowledge Graph 생성

Knowledge Graph를 구축하려면 무엇이 필요한지 궁금해하는 분들이 많아요. 그 답을 이해하려면 먼저 GenAI 애플리케이션과 가장 관련 있는 두 가지 종류의 그래프를 알아야 해요.

  1. The 는 여러분의 애플리케이션과 관련된 세계 모델을 그래프로 표현한 것이에요. 간단한 예를 한번 살펴볼까요?
    The domain graph.
  2. The lexical graph12는 문서 구조의 그래프에요. 가장 기본적인 lexical graph에는 각 텍스트 덩어리에 대한 Node가 있죠.
    The lexical graph.

사람들은 청크와 문서 객체 (예: 테이블), 챕터, 섹션, 페이지 번호, 문서 이름/ID, 컬렉션, 소스 등 간의 Relationships를 포함하도록 이를 확장하는 경우가 많아요. 다음과 같이 도메인 그래프와 lexical graph를 결합할 수도 있죠.

Combining domain layer and lexical layer.

lexical graph를 만드는 것은 쉽고 주로 간단한 구문 분석 및 청킹 전략의 문제에요.13. 도메인 그래프의 경우 가져오는 데이터가 구조화된 소스에서 나오는지, 구조화되지 않은 텍스트에서 나오는지, 아니면 둘 다에서 나오는지에 따라 몇 가지 다른 경로가 있어요. 다행히 구조화되지 않은 데이터 소스에서 Knowledge Graph를 생성하는 도구가 빠르게 개선되고 있죠. 예를 들어, 새로운 Neo4j Knowledge Graph Builder는 PDF 문서, 웹 페이지, YouTube 클립, Wikipedia 기사를 가져와 자동으로 Knowledge Graph를 만들어요. 몇 개의 버튼을 클릭하는 것만큼 쉬우며, 입력 텍스트의 도메인 및 lexical graph를 모두 시각화(물론 Query)할 수 있어요. 강력하고 재미있으며 Knowledge Graph 작성에 대한 장벽을 크게 줄여주죠.

고객, 제품, 지역 등에 대한 데이터는 아마도 기업 내 어딘가에 구조화된 형태로 존재하며, 데이터가 있는 곳에서 직접 소스를 얻을 수 있어요. 관계형 데이터베이스에 있는 가장 일반적인 경우를 사용하면 표준을 사용할 수 있어요. 14는 관계-그래프 매핑에 대해 검증된 규칙을 따르죠.

Knowledge Graph 작업

Knowledge Graph가 있으면 GraphRAG를 수행하기 위한 프레임워크가 점점 더 많아지고 있어요. LlamaIndex Property Graph Index, Langchain의 Neo4j 통합 게다가 헤이스택의 그리고 다른 것들도요. 이 공간은 빠르게 움직이고 있지만 이제 우리는 프로그래밍 방식이 간단해지는 지점에 와 있어요.

그래프 구성 전면에서도 마찬가지에요. Neo4j Importer는 표 형식 데이터를 그래프로 매핑하고 가져오기 위한 그래픽 UI와 Neo4j의 새로운 v1이 있어요. LLM Knowledge Graph Builder는 위에서 언급했죠. 아래 그림은 Knowledge Graph를 구축하는 단계를 요약한 것이에요.

Automatically build a knowledge graph for GenAI.

또 다른 중요한 활용 사례는 사람이 사용하는 언어 질문을 Graph Database의 `쿼리`로 매핑하는 것이죠. Neo4j의 새로운 오픈 소스 도구인 네오컨버스는 그래프에 대한 Natural Language 쿼리를 돕기 위해 만들어졌어요. 이는 이 분야를 일반화하기 위한 첫 번째 중요한 단계라고 할 수 있죠.15

그래프를 시작하려면 약간의 노력과 학습이 필요하지만, 도구가 계속 개선되면서 점점 더 쉬워지고 있다는 희소식도 있어요!

결론: GraphRAG는 RAG의 자연스러운 다음 단계에요

LLM 및 벡터 기반 RAG가 제공하는 고유한 단어 기반 계산 및 언어 기술은 good 결과를 가져다 주죠. 하지만 꾸준히 great 결과를 얻으려면 문자열을 넘어서서 world model, 즉 word model이 필요해요. Google이 검색을 마스터하기 위해 단순한 텍스트 분석을 넘어 underneath the strings에 있는 기본적인 내용을 파악해야 한다는 것을 발견한 것처럼, AI 세계에서도 동일한 패턴이 나타나는 것을 볼 수 있어요. 바로 GraphRAG죠.

발전은 S-곡선 형태로 나타나요. 한 기술이 정점에 도달하면 다른 기술이 발전을 촉진하고 이를 뛰어넘죠. GenAI가 발전함에 따라 답변 품질이 중요한 용도로 사용되거나, 내부/외부 이해 관계자가 설명을 요구하거나, 개인 정보 보호 및 보안을 위해 데이터 액세스에 대한 세밀한 제어가 필요한 경우, 다음 GenAI 애플리케이션은 Knowledge Graph를 사용할 가능성이 매우 높아요.

The evolution of GenAI.

GraphRAG를 직접 경험해 볼 수 있어요!

GraphRAG로 한 단계 더 나아갈 준비가 되셨다면, Neo4j LLM Knowledge Graph Builder를 사용해 보세요. 이 간단한 웹 앱을 사용하면 PDF, 웹 페이지, YouTube 동영상과 같은 구조화되지 않은 텍스트 소스에서 몇 번의 클릭만으로 Knowledge Graph를 만들 수 있어요. GraphRAG의 성능을 직접 경험할 수 있는 완벽한 도구죠.

LLM Knowledge Graph Builder를 사용하면 다음과 같은 작업들을 할 수 있어요:

  • 무료 클라우드 기반 Neo4j 인스턴스에 연결하고, 좋아하는 텍스트 소스에서 그래프를 작성해 보세요.
  • 대화형 시각화를 통해 새로 생성된 Knowledge Graph를 탐색해 보세요.
  • 데이터와 대화하고 GraphRAG를 테스트해 보세요.
  • Knowledge Graph를 애플리케이션에 통합하고 새로운 통찰력을 얻어보세요.

시작하려면, 무료 AuraDB 인스턴스를 가동하고 Knowledge Graph를 구축해 보세요. Neo4j LLM Knowledge Graph Builder에 대해 자세히 알아보고 가이드 투어를 받을 수 있어요. 에서 확인하세요!

감사의 말

이번 포스팅에는 정말 많은 분들이 참여해 주셨어요. 여기에 인용된 많은 사례와 같이 자신의 학습 내용, 저술 및 코드를 공유하는 모든 분들께 감사를 표하고 계속해서 그렇게 하도록 격려하고 싶어요. 우리 모두가 배우는 것은 공동체로서 공유하는 것이니까요.

또한 GraphRAG의 중요성을 인식하고 게시물 자체를 검토하고 댓글을 달 수 있도록 시간을 아낌없이 제공해주신 많은 분들께 감사의 말씀을 전하고 싶어요. 많은 경우에 이것은 그들의 세계에 나타나는 사례를 통해 알려졌죠.

모든 사람의 이름을 밝히기보다는 일반적으로 '그래프 세계'라고 생각하는 것 이외의 사람들을 몇 명 언급하고 싶어요. 우리는 GraphRAG를 중요한 트렌드일 뿐만 아니라 두 세계 간의 융합으로 함께 보고 있어요.

이 모든 것을 마치고 다음을 포함하여 여러분 모두에게 깊은 감사를 드립니다. (성순으로):

  • 해리슨 체이스, 대표이사 랭체인
  • 알리 고디시, 대표이사 데이터브릭스
  • 로드 존슨, SpringSource의 투자자이자 설립자
  • 도우웨 키엘라, 대표이사 상황별 AI RAG의 공동 발명가이자
  • 크리스티나 리, FPV 벤처
  • 제리 리우, 대표이사 라마인덱스
  • 오웬 로버트슨, 주요한, DTS
  • 밀로스 루시치, 대표이사 / 건초더미

보충자료: 추가 자료

이 주제에 관해 많은 글이 작성되었으며 매일 새로운 통찰력과 사례가 등장하고 있어요. 포괄적인 목록을 제공할 수는 없지만, 더 자세히 알아보고 싶은 경우 확인할 수 있는 특히 좋은 몇 가지 항목은 다음과 같아요.

  • The RAG에 대한 Knowledge Graph에 대한 DeepLearning.AI 단기 과정 시작하는 데 60분이면 충분해요.
  • The GraphRAG 생태계 도구. 다음을 사용하여 YouTube, 즐겨찾는 PDF 또는 Wikipedia 페이지의 비디오에서 데이터와 개념에 대한 Knowledge Graph를 만드는 데 몇 분만 투자하세요. LLM Knowledge Graph Builder. 아직 Aura Free 인스턴스가 없다면 직접 인스턴스를 생성할 수 있어요. Knowledge Graph Builder를 사용해 보세요.
  • GraphRAG 패턴 카탈로그.
  • GraphRAG 디스코드에 참여하세요.
  • Tomaz Bratanic의 "Neo4j 및 LangChain을 사용하여 '로컬에서 글로벌로' GraphRAG 구현: 그래프 구성" 포스팅에서는 Microsoft의 GraphRAG 작업을 Neo4j + Langchain 파이프라인에 통합하는 방법을 다루고 있어요.
  • Tomaz Bratanic의 다른 블로그 포스팅들도 정말 굉장하니 한번 살펴보세요!
  • 오디오 자료도 몇 가지 추천해 드릴게요:
    • Data Exchange 팟캐스트 에피소드 "그래프로 AI 강화" (2024년 6월 27일)에서는 Ben과 제가 이 포스팅의 자료 등에 대해 이야기 나눴답니다.
    • 2024년 7월 4일 ThursdAI 팟캐스트 1주년 기념 에피소드에서는 Emile Eifrem이 주도하는 GraphRAG 관련 내용을 집중적으로 다루고 있어요.
  • 딜로이트(Deloitte)의 논문 "지식이 풍부한 생성 AI를 통한 책임 있는 기업 결정" (부제: *엔터프라이즈급 생성 AI에 Knowledge Graph를 통합하는 것이 왜 필수적인가요?*)도 참고해 보세요.
  • Jesus Barrasa의 "메타로 나아가다" 시리즈는 27개의 비디오로 구성되어 있으며, 각 비디오는 GraphRAG의 다양한 측면이나 사례를 다루고 있어요.
  • Leann Chen의 학습 동영상 중 "RAG를 위한 더 나은 Knowledge Graph가 필요합니다"와 "Neo4j Knowledge Graph로 고급 RAG 챗봇 구축"도 유용할 거예요.
  • LlamaIndex의 6부작 번개 강좌 "Property Graph 소개"도 추천합니다.
  • GraphStuff.fm 팟캐스트도 있어요. Jennifer Reif, Andreas Kollegger, Alison Cossette, Jason Koo가 진행하고 있답니다.
  • 마지막으로, 상사에게 GraphRAG의 필요성을 설득하고 싶다면 생성 AI를 위한 Gartner의 2024년 임팩트 레이더를 참고하세요. 현재 가장 관련성이 높은 GenAI 기술의 중심에 Knowledge Graph를 위치시키고 있다는 사실!

1 이 블로그 포스팅을 읽고 Google의 웹 검색 여정이 GenAI에서 현재 일어나고 있는 일과 얼마나 유사한지 확인해 보세요.

2주의: 이 숫자는 실제로 사과를 나타낼 수도 있고 아닐 수도 있어요. Vector와 그래프의 주요 차이점 중 하나를 보여주는 알기 어려운 예시랍니다.

3나중에 "Knowledge Graph 생성" 섹션에서 설명하겠지만, "도메인 그래프"와는 다른 또 다른 종류의 Knowledge Graph가 등장하고 있으며 그 유용성이 입증되었어요. 이것은 월드 모델 대신에 Vector 청크와 이들이 서로 어떻게 관련되는지, 그리고 그 주변의 문서 구조(표/그림/페이지/문서/컬렉션/저자 등)에 대한 그래프인 "어휘 그래프"랍니다.

4 물론, 현실 세계에서는 포괄적인 단일 단계로 나타나는 게 아니라, 자체 단계와 논리 세트를 따르는 에이전트 파이프라인의 일부로 나타나는 경우가 많죠. 그런데 이건 Graph도 마찬가지예요. 이런 작업이 복잡해짐에 따라, 코드가 아닌 Graph Database에서 워크플로우와 규칙을 캡처하는 걸 볼 수도 있을 거예요. 하지만 아직 거기까지는 아니고, 지금 이야기할 주제와는 조금 다르네요.

5 Knowledge Graph가 이미 준비되어 있다면 이 작업이 시작되는 거예요. 물론 공짜는 아니지만, 최신 기술 덕분에 얼마나 접근하기 쉬워졌는지 놀라실 거예요. 워낙 기초적인 내용이라 Knowledge Graph 구축 과학 및 기술에 대한 섹션을 뒤에 따로 준비했어요.

6 Knowledge Graph는 시스템 간 데이터 흐름 방식을 캡처하는 시스템/출처/데이터 계보 그래프 등 다른 형태의 추적성에도 도움이 될 수 있어요. 그리고 해결된 엔터티 추적과 같은 다른 AI 이점도 제공할 수 있죠. 하지만 지금은 GraphRAG에 집중해야 하니, 일단 넘어가도록 할게요.

7 좀 더 자세히 알아보고, 실제로 작동하는 코드를 직접 보고 싶다면, 제 동료인 Tomaz Bratanic의 게시물을 추천드려요. Neo4j 및 LangChain을 사용하여 '로컬에서 글로벌로' GraphRAG 구현: 그래프 구성인데, Microsoft의 작업을 한 단계 더 발전시켜 Neo4j + Langchain 파이프라인에 통합했답니다.

8 논문 자체에는 GraphRAG와 벡터 전용 RAG 접근 방식에 대한 더 자세한 비교가 나와 있는데, GraphRAG는 MRR에서 답변을 77.6% 향상시키고, BLEU 기준선보다 0.32 높았다고 해요.

9 공교롭게도 Neo4j로 구동된다는 사실!

10 새로운 기능을 소개하는 멋진 웹 세미나도 있어요(2024년 5월경). Property Graph Index에는 텍스트를 그래프로 변환하는 내장 메소드가 포함되어 있답니다.

11 우리 모두 "영향력"이 뭘 의미하는지는 알고 있겠지만, 간단히 설명하자면 잘못된 답변이 건강 및 인간 안전, 사회 및 공정성, 평판 또는 높은 금전적 영향에 영향을 미칠 수 있는 모든 결정이 여기에 포함돼요. 정부 규제에 속하거나 규정 준수에 영향을 미칠 수 있는 모든 결정도 당연히 포함되겠죠.

12 여기서 "어휘적"이라는 단어는 개별 단어를 의미할 뿐만 아니라, 더 넓게는 (사전 정의에서 알 수 있듯이) "언어의 단어 또는 어휘와 관련된" 것을 의미해요. 즉, 단어 본문과 그 관계 영역에 있는 모든 것을 포함하는 거죠.

13 이 작업을 수행하는 몇 가지 라이브러리를 특별한 순서 없이 나열해볼게요. Docs2KG, Diffbot, GLiNER, spaCy, Numind, NetOwl® 그리고 (특히 엔터티 해결에 강점을 가진) Senzing이 있어요.

14 선택한 관계형 데이터베이스에 대한 직접 연결을 지원하는 이 도구의 새 버전이 2024년 하반기에 출시될 예정이라고 하네요.

15 NeoConverse와 LLM GraphBUilder는 모두 성장하는 GraphRAG 생태계 도구의 일부이고, Neo4j에서 만들었어요.

  • GraphRAG
  • RAG

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

반응형

+ Recent posts