RAG (Retrieval-Augmented Generation) 애플리케이션은 외부 소스의 데이터를 LLM에 통합해서 간단한 질문에 답하는 데 아주 유용해요. 하지만 여러 관련 정보에 걸쳐서 연결해야 하는 복잡한 질문에는 어려움을 겪곤 하죠. RAG 애플리케이션은 이런 유형의 질문에 답하는 데 필요한 모든 정보를 쉽게 찾을 수 있도록 데이터를 저장하는 데이터베이스가 필요하거든요.
Knowledge Graph는 데이터를 Nodes 네트워크와 Nodes 간의 Relationships 형태로 저장하기 때문에 복잡하고 여러 부분으로 구성된 질문을 처리하는 데 딱 맞는 구조를 가지고 있어요. 이렇게 연결된 데이터 구조 덕분에 RAG 앱은 한 정보에서 다른 정보로 효율적으로 탐색하면서 모든 관련 정보에 접근할 수 있게 되죠. RAG와 Knowledge Graph를 결합하는 기술을 GraphRAG라고 부른답니다. GraphRAG에 대해 더 자세히 알고 싶다면 클릭!
이번 블로그 포스팅에서는 다음 내용들을 살펴볼 거예요:
- RAG 애플리케이션이 어떻게 작동하는지
- Knowledge Graph가 GraphRAG를 통해 검색을 어떻게 개선하는지
- 구조화된 그래프 데이터와 구조화되지 않은 텍스트를 결합하는 기술
- LLM을 사용해서 Knowledge Graph를 자동으로 생성하고 확장하는 방법
- LLM과 함께 Knowledge Graph를 사용할 때 자주 묻는 질문들
RAG 작동 방식
Retrieval-Augmented Generation (RAG)는 외부 데이터베이스에서 관련 정보를 검색하고, 이걸 생성된 결과에 통합해서 LLM 응답을 향상시키는 기술이에요.
RAG 프로세스는 간단해요. 사용자가 질문을 던지면, 똑똑한 검색 도구가 데이터베이스에서 관련 정보를 찾아내는 거죠.

여러분도 아마 "PDF와 Chatting" 같은 도구를 사용해 본 적 있을 텐데요, 이런 도구들은 제공된 문서에서 정보를 검색하는 데 사용되죠. 이런 도구들은 대부분 Vector Embedding 유사성 검색을 사용해서 사용자의 질문과 유사한 데이터가 포함된 텍스트 덩어리를 찾아낸답니다. 아래 다이어그램에서 보시는 것처럼 구현은 간단해요.

RAG 애플리케이션에서 Vector Similarity Search가 작동하는 방식
Retrieval-Augmented Generation (RAG)을 위해 문서를 준비하려면 일반적으로 다음과 같은 주요 단계를 따릅니다.
- 텍스트 청크: PDF 또는 기타 문서는 여러 청크로 분할돼요. 텍스트 청크의 크기와 텍스트 청크 사이에 겹치는 부분이 있는지 여부에 따라 다양한 전략을 사용할 수 있죠.
- 임베딩 생성: RAG 시스템은 텍스트 임베딩 모델을 사용해서 텍스트 청크의 Vector Embedding을 생성해요.
- 사용자 쿼리를 인코딩합니다: 시스템은 쿼리 시 사용자의 입력(질문)을 벡터로 인코딩하죠.
- 유사성 검색을 수행합니다: 시스템은 코사인과 같은 유사성 알고리즘을 적용해서 두 항목 간의 거리를 비교하는데요. 과 포함된 텍스트 덩어리 사이에서 의미상 가장 관련성이 높은 일치 항목을 찾는 거죠.
- 상위 일치 항목 검색: RAG 시스템은 가장 유사한 세 가지 문서를 반환해서, LLM에 컨텍스트를 제공하고 정확한 답변을 생성하는 능력을 향상시켜요.
이 유사성 검색 접근 방식은 Vector Search가 관련 텍스트 덩어리를 식별할 수 있을 때 꽤 잘 작동해요. 하지만 이 접근 방식은 컨텍스트가 여러 문서 또는 여러 텍스트 덩어리에 있는 경우 필요한 모든 정보를 제공하지 못할 수도 있어요. 예를 들어, 다음 질문을 생각해 보십시오.
이전 OpenAI 직원 중 자신의 회사를 시작한 사람이 있습니까?
이 질문은 두 가지 질문을 포함한다는 점에서 여러 부분으로 구성돼요.
- OpenAI의 전 직원은 누구입니까?
- 그들 중 자신의 회사를 시작한 사람이 있나요?

이런 유형의 질문에 대답하는 건 다중 홉 질의 응답 작업이에요. 하나의 질문은 여러 하위 질문으로 나눌 수 있고, 정확한 답변을 얻으려면 시스템이 여러 문서를 검색해야 하죠.
단순히 문서를 데이터베이스에 청킹하고 삽입한 다음 일반적인 벡터 유사성 검색을 사용하는 건 다중 홉 질문에 적합하지 않아요. 왜냐하면:
- 상위 N개 문서에 반복되는 정보: 제공된 문서가 질문에 완전히 답하는 데 필요한 모든 정보를 포함하고 있다고 보장할 수 없어요. 예를 들어 상위 3개의 유사한 문서에서 모두 "가 OpenAI에서 일했고 아마 회사를 설립했을 수도 있다"고 언급할 수 있죠. 동시에 창업자가 된 다른 전직 직원들은 모두 무시될 수 있고요.
- 누락된 참조 정보: 청크 크기에 따라 일부 청크에는 전체 컨텍스트 또는 텍스트에 언급된 엔터티에 대한 참조가 포함되지 않을 수 있어요. 청크를 겹쳐서 참조 누락 문제를 완화할 수 있지만, 참조가 다른 문서를 가리키는 경우 공동 참조 해결 또는 전처리 기술을 사용해야 할 수도 있죠.
- 검색된 문서의 이상적인 N개 수를 정의하기 어려움: 일부 질문에는 LLM의 정확성을 위해 더 많은 문서가 필요한 반면, 다른 상황에서는 문서 수가 많으면 소음(및 비용)만 증가할 뿐이에요.
경우에 따라 유사성 검색은 중복된 정보를 반환하지만, 검색된 정보의 K 수가 낮거나 임베딩 거리로 인해 다른 관련 정보가 무시되기도 해요.

여러 청크나 문서에 걸쳐 정보를 연결해야 하는 다중 홉 질문에 답할 때 일반 벡터 유사성 검색이 부족하다는 건 분명해요. 청크 겹치기 또는 검색된 문서 수 조정과 같은 기술이 도움이 될 수 있지만, 콘텐츠를 격리된 텍스트 블록으로 처리하는 제한 사항을 근본적으로 해결하지는 않죠.
이러한 문제를 극복하려면 정보 조각 간의 관계를 표현하고 탐색할 수 있는 보다 구조화된 방법, 즉 엔터티, 이벤트 및 개념 전반에 걸쳐 "점을 연결"할 수 있는 방법이 필요해요. 바로 이럴 때 GraphRAG가 등장하는 거죠!
GraphRAG란 무엇일까요?
GraphRAG는 Knowledge Graph를 사용하여 LLM 생성 응답의 정확성, 컨텍스트 및 설명 가능성을 향상시키는 RAG(Retrieval-Augmented Generation) 기술이에요.
RAG 아키텍처는 언어 모델이 외부 데이터를 사용하여 간단한 질문에 대답하도록 돕는 데 매우 효과적이지만, 여러 주제를 포함하거나 여러 정보에 대한 추론이 필요한 더 복잡한 쿼리를 처리하는 데 어려움을 겪는 경우가 많아요. 이러한 제한은 주로 의미상 유사한 콘텐츠를 검색하는 전통적인 벡터 검색에 의존하기 때문이죠. 사실이 어떻게 연결되어 있는지에 대한 인식이 부족하기 때문이에요. 이로 인해 모델이 다중 홉 또는 다중 엔터티 질문을 지원하기가 어렵죠.
GraphRAG는 RAG와 Knowledge Graph를 결합한 기술이에요. Knowledge Graph는 실제 개체(예: 사람, 제품 또는 이벤트)와 그 관계를 나타내는 연결된 데이터 구조죠. GraphRAG는 문서, 도메인 또는 그래프 기반 구조를 탐색하도록 설계된 검색기와 같은 다양한 유형의 검색기를 사용하여 주어진 쿼리에 대해 가장 관련성이 높은 정보를 가져옴으로써 컨텍스트를 향상시켜요. 이렇게 더욱 연결된 컨텍스트를 통해 GraphRAG는 보다 정확하고 신뢰할 수 있으며 추적 가능한 결과를 생성할 수 있고, 이는 컨텍스트, 정확성 및 설명 가능성이 필수적인 기업 사용 사례에 대한 강력한 기반을 제공하죠.
필수 GraphRAG
Knowledge Graph를 통해 RAG의 잠재력을 최대한 활용해보세요! Manning에서 제공하는 최종 가이드를 지금 무료로 만나보세요.
GraphRAG 파이프라인
GraphRAG는 핵심 RAG 아키텍처를 따르고, 세 단계로 구성되어 있어요.
- 검색 (Retrieval): 시스템은 벡터 유사성, 구조화된 쿼리 또는 하이브리드 접근 방식과 같은 기술을 사용해서 외부 소스(문서, 데이터베이스 또는 Knowledge Graph)에서 관련 콘텐츠를 식별해요. 이러한 결과는 사용자 검색어와의 관련성을 기준으로 순위가 매겨지고 필터링되죠.
- 증강 (Augmentation): 검색된 정보는 작업별 지침 또는 상황별 신호와 함께 원래 쿼리와 결합돼요. 이렇게 증강된 프롬프트는 언어 모델에 대한 입력을 형성해서, 권위 있는 쿼리별 데이터에 대한 응답을 기반으로 하죠.
- 생성 (Generation): 언어 모델은 증강된 프롬프트를 기반으로 답변을 생성해요. 모델은 검색된 컨텍스트에서만 응답을 생성하기 때문에 출력이 더 정확하고 소스 자료에 맞춰 정렬되며, 투명성을 높이기 위해 원본 소스 또는 메타데이터에 대한 참조를 포함할 수 있어요.
이 프로세스는 검색과 추론을 통합하고 (언어 모델에서 기대하는 것처럼) 유창할 뿐만 아니라 사실에 기초하고 도메인을 인식하는 응답을 제공함으로써 모델의 성능을 향상시키는 데 도움이 돼요.
GraphRAG가 검색을 향상시키는 방법
GraphRAG 검색은 벡터, 전체 텍스트, 공간 또는 기타 유형의 검색으로 시작해서 Knowledge Graph에서 가장 관련성이 높은 정보를 찾을 수 있어요. 여기에서 관련 relationships를 따라 사용자의 쿼리에 응답하는 데 필요한 추가 컨텍스트를 수집하죠. 관련성을 높이기 위해 사용자와 작업의 컨텍스트가 고려돼요. 캡처된 모든 nodes, relationships 및 해당 properties는 증강 단계에서 컨텍스트로 반환되기 전에 필터링되고 순위가 매겨질 수 있어요.
이 접근 방식은 벡터 전용 RAG 시스템에 비해 몇 가지 주요 이점을 제공해요.
- 더 넓은 맥락: 그래프를 탐색하고 relationships를 따라가면 GraphRAG는 검색된 상위 청크에서 명시적으로 언급되지 않은 정보를 찾아낼 수 있어요.
- 작업 인식 관련성: 사용자 컨텍스트를 기반으로 필터링하고 순위를 지정하면 가장 관련성이 높은 데이터의 우선 순위를 지정하는 데 도움이 돼요.
- 설명 가능성 향상: GraphRAG는 검색된 조각이 어떻게 연결되어 있는지 캡처해서 생성된 응답 뒤에 있는 추론을 더 쉽게 추적할 수 있도록 해줘요.
- 더욱 풍부한 접지: 그래프 구조는 구조화된 신호, 구조화되지 않은 신호, 계산된 신호의 통합을 지원해서 보다 미묘하고 신뢰할 수 있는 출력을 가능하게 해요.
이러한 검색 개선 사항 덕분에 기존의 벡터 전용 RAG 접근 방식보다 더 정확하고 관련성이 높으면서 추적 가능한 응답을 생성하는 GraphRAG의 능력이 더욱 향상되는 거 같아요.

GraphRAG의 검색 전략 및 그래프 구성
GraphRAG 검색은 정말 적응성이 뛰어나요. 도메인과 사용자가 찾으려는 특정 정보에 따라 달라지죠. 벡터 기반의 Semantic Search, 구조화된 그래프 쿼리(예: Text2Cypher) 또는 하이브리드 조합과 같은 다양한 검색 유형을 함께 조정할 수 있어요. 이러한 검색기는 순차적으로 실행되거나 에이전트 역할을 하는 LLM에 의해 동적으로 선택되어 필요한 정보가 수집될 때까지 매개변수를 전달하고 결과를 구체화할 수 있고요.
이처럼 유연한 아키텍처를 통해 GraphRAG는 고립된 사실뿐만 아니라 광범위한 관계 네트워크에서 도출된 연결된 상황별 통찰력을 보여줘서 정확성, 신뢰성 및 설명 가능성을 향상시킨답니다.
하지만 효과적인 검색은 잘 모델링된 Knowledge Graph에서 시작된다는 점! 이 기반을 구축하려면 다음 두 가지 주요 단계가 필요해요.
- : 관련 entity와 relationship을 정의하는 거죠.
- 그래프 생성 또는 계산: 구조화된 데이터를 가져오거나, 구조화되지 않은 소스에서 추출하거나, 계산된 신호로 강화하는 거예요.
이러한 단계를 반복적으로 거쳐 시간이 지남에 따라 그래프를 개선하면 진화하는 데이터 및 사용 사례에 맞춰 그래프를 유지할 수 있어요.
Knowledge Graph를 사용하여 LLM 응답을 기반으로 하는 이유
LLM은 유창하고 일관된 답변을 생성하는 데 탁월하지만 정확한 맥락이 없으면 오해의 소지가 있거나 잘못된 정보를 쉽게 생성할 수 있어요. 이는 사실성, 추적성 및 완전성이 중요한 기업 환경에서 특히 위험하죠. LLM을 사용하여 구축하는 경우 Retrieval-Augmented Generation(RAG)을 사용하면 사전 훈련에만 의존하는 대신 외부 데이터에서 응답을 가져올 수 있어요.
오늘날 대부분의 RAG 시스템은벡터 검색을 사용해서 사용자의 질문을 기반으로 의미적으로 유사한 문서를 찾아요. 이는 개별 사실을 검색하거나 텍스트 조각을 일치시키는 데 적합하죠. 하지만 목표가 표면으로 드러나는 것이, , 그리고설명할 수 있는답변이라면, 벡터 검색만으로는 부족할 수 있어요. 바로 이럴 때 Knowledge Graph가 등장하는 거죠! Knowledge Graph 기반 LLM은 구조화된 데이터와 명시적인 relationship에서 정보를 얻어요. 이들은 정보를 entity(사람, 회사, 개념 또는 이벤트) 네트워크와 이들 간의 연결로 구성하죠. 문서를 분리된 텍스트 덩어리로 취급하는 대신 해당 사실을 함께 연결하는 기본적인 의미와 맥락을 나타내는 거예요.

GraphRAG는 의미론적 유사성의 장점(벡터 검색을 통해)과 구조화되고 연결된 추론(그래프 `Query`를 통해)을 결합해서, LLM이 관련성이 높을 뿐만 아니라 더 풍부하고 깊이 있는 답변을 제공하고, 소스 데이터를 쉽게 추적할 수 있도록 도와줘요.
Neo4j의 그래프와 벡터 검색의 기본 통합은 이 모든 걸 정말 매끄럽게 만들어주죠. 개발자는 그래프를 탐색해서 관계를 추적하고, 메타데이터를 검색하고, 필터를 적용하고, 결과를 집계하는 동시에 `Node`에 포함된 구조화되지 않은 콘텐츠에 대한 액세스를 유지할 수 있어요.
이 접근 방식이 정말 강력한 이유 중 하나는 이미 잘 확립된 기술로 새로운 LLM 전략을 보완한다는 점이에요. 정보 추출 파이프라인은 꽤 오랫동안 사용되어 왔는데요. 구조화되지 않은 텍스트에서 구조화된 정보를 추출하는 프로세스로, 엔터티와 관계 형태로 나타나는 경우가 많죠. Knowledge Graph와 결합하면 각 문서를 개별적으로 처리할 수 있다는 장점이 있어요. Knowledge Graph가 구축되거나 강화되면 서로 다른 기록의 정보가 연결되거든요.
위의 예에서 첫 번째 문서는 *다리오*와 *다니엘라*가 *OpenAI*에서 일했다는 정보를 제공했고, 두 번째 문서는 그들의 *인류학* 시작 정보를 제공했어요. 각 기록은 개별적으로 처리되었지만, Knowledge Graph 표현은 여러 문서에 걸쳐 있는 질문에 쉽게 답할 수 있도록 *연결*해준답니다.
다중 홉 질문에 답하는 최신 LLM 접근 방식의 대부분은 `Query` 시 작업을 해결하는 데 중점을 두는 것 같아요. 사실, 데이터를 수집하기 전에 전처리하고 이를 Knowledge Graph에 연결하면 많은 멀티홉 질의응답 문제를 해결할 수 있어요. LLMs 또는 사용자 정의 텍스트 도메인 모델을 사용해서 정보 추출 파이프라인을 수행할 수 있죠.
다음 섹션에서는 Knowledge Graph의 예를 통해 이 접근 방식이 왜 그렇게 강력한지 한번 살펴볼게요.
- 일련의 사고 워크플로를 통해 도구와 데이터 소스 전반에 걸친 추론을 지원해요.
- 더 빠르고 효율적인 검색을 위해 데이터를 압축하고 요약해줘요.
- 더 풍부한 컨텍스트를 위해 구조화된 엔터티를 구조화되지 않은 콘텐츠와 연결해준답니다.
요약된 정보 저장소로서의 Knowledge Graph
LLM은 지나치게 길거나 혼란스러운 맥락 때문에 어려움을 겪는 경우가 많아요. 한 가지 해결책은 수집 중에 정보를 전처리하고 압축해서 모델이 `Query` 시 관련 정보만 받도록 하는 거죠. Knowledge Graph를 사용하면 주요 엔터티와 관계를 미리 캡처해서 이 방법을 사용할 수 있어요.
전체 문서나 큰 텍스트 덩어리를 삽입하는 대신, 누가 회사를 설립했는지, 어떤 제품이 이벤트와 관련되어 있는지 등 구조화된 사실을 추출해서 그래프로 표시할 수 있어요. 이는 중요한 의미를 유지하면서 검색하거나 프롬프트에 전달해야 하는 데이터의 양을 크게 줄여준답니다.
그래프는 여러 문서의 사실을 연결하므로 검색 중에 컨텍스트를 수동으로 연결할 필요가 없어요. `Relationship`이 알아서 다 해주니까요!
사고 사슬 흐름에서 Knowledge Graph 사용
LLM과 관련된 또 다른 흥미로운 발전은 생각의 연쇄 질문 대답, 특히 LLM 에이전트에요.
LLM 상담원은 질문을 여러 단계로 분리하고, 계획을 정의하고, 제공된 도구를 활용해서 답변을 생성할 수 있어요. 일반적으로 에이전트 도구는 에이전트가 추가 정보를 검색하기 위해 `Query`할 수 있는 API 또는 기술 자료로 구성되어 있죠.
같은 질문을 다시 생각해 볼게요.
Prosper Robotics 창립자에 대한 최신 뉴스는 무엇인가요?
이 예시에서는 LLM이 Knowledge Graph 구조를 사용해서 Prosper Robotics 창립자를 식별하고, 이걸 언급한 최근 기사를 검색하고 싶을 거예요.

기사와 기사가 언급하는 엔터티 사이에 명시적인 연결이 없거나, 기사와 엔터티가 서로 다른 데이터베이스에 있다고 가정해 볼게요. 이 경우에는 일련의 사고 흐름을 사용하는 LLM 에이전트가 아주 유용할 거예요. 먼저 에이전트는 질문을 하위 질문으로 분리하죠.
- Prosper Robotics의 창립자는 누구인가요?
- 창립자에 대한 최신 소식은 무엇인가요?
이제 에이전트는 사용할 도구를 결정할 수 있어요. Knowledge Graph를 기반으로 한다고 가정하면, Prosper Robotics 창립자의 이름과 같은 구조화된 정보를 검색할 수 있다는 의미가 되죠.
에이전트는 Prosper Robotics의 창립자가 Shariq Hashme라는 사실을 알아냈어요. 이제 에이전트는 첫 번째 질문의 정보로 두 번째 질문을 다시 작성할 수 있죠.
- Shariq Hashme에 대한 최신 뉴스는 무엇인가요?
에이전트는 Knowledge Graph, Vector Database, API 등 다양한 도구를 사용해서 답변을 생성할 수 있어요. 구조화된 정보에 대한 액세스를 통해 LLM 애플리케이션은 집계, 필터링 또는 정렬이 필요한 분석 워크플로우를 수행할 수 있죠. 다음 질문을 한번 살펴볼까요?
- 1인 창업자가 있는 기업 중 가치가 가장 높은 기업은 어디일까요?
- 누가 가장 많은 회사를 설립했나요?
일반적인 벡터 유사성 검색은 구조화되지 않은 텍스트 데이터를 검색해서 데이터를 정렬하거나 집계하기 어렵기 때문에, 이러한 분석 질문에 대답하는 데 어려움을 겪을 수 있어요.
사고 사슬은 LLM의 추론 기능을 보여주지만, 여러 LLM 호출로 인해 응답 대기 시간이 길어질 수 있어서 가장 사용자 친화적인 기술은 아닐 수 있어요. 하지만 우리는 Knowledge Graph를 많은 사용 사례에 대한 사고 사슬 흐름에 통합하는 방법에 대해 더 많이 이해할 수 있게 되어서 정말 기뻐요.
LLM을 사용하여 Knowledge Graph를 생성하는 방법
구조화되지 않은 데이터를 구조화된 통찰력으로 전환하는 건 중요한 과제이지만, AI에서 가장 큰 기회 중 하나이기도 해요. 문서, 기록, 기타 원시 형식에 정말 많은 귀중한 정보가 존재하기 때문이죠. Neo4j의 LLM Knowledge Graph Builder와 함께라면, Large Language Model(LLM)은 이제 다음 용도로만 사용되는 게 아니에요. Knowledge Graph이지만, — 원시 텍스트에서 entity, relationship 및 의미를 자동으로 추출해서 연결된 그래프에 매핑하는 거죠.
이 섹션에서는 이게 내부적으로 어떻게 작동하는지 분석해볼게요.
LLM Knowledge Graph Builder는 무엇을 하나요?
Neo4j LLM Knowledge Graph Builder는 온라인 신청 구조화되지 않은 콘텐츠, PDF, 문서, URL, YouTube 스크립트 등을 Neo4j에 저장된 구조화된 Knowledge Graph로 변환해요. OpenAI, Gemini, Claude, Diffbot 등과 같은 LLM을 Neo4j의 그래프 기반 저장 및 검색 기능과 결합해서 이걸 수행하는 거죠.

다양한 Retrieval-Augmented Generation(RAG) 접근 방식을 사용할 수 있어요. (GraphRAG, 벡터, Text2Cypher) 데이터에 대해 질문하고 추출된 데이터가 답변을 구성하는 방식을 확인해 보세요. 프론트엔드는 React 애플리케이션이고 백엔드는 Google Cloud Run에서 실행되는 Python FastAPI 애플리케이션이지만, Docker Compose를 사용해서 로컬로 배포할 수도 있답니다. 이건 llm-graph-transformer 모듈 Neo4j는 LangChain 및 기타 LangChain 통합(예: GraphRAG 검색)에 기여했거든요. 자세한 내용은 기능 문서를 참고하세요.
작동 방식: 텍스트에서 그래프까지 8단계
- 업로드 소스는 그래프에 문서 `Node`로 저장돼요.
- 문서(`Type`)는 LangChain 로더로 로드돼요.
- 콘텐츠는 청크로 분할되죠.
- 청크는 그래프에 저장되며 고급 RAG 패턴을 위해 문서와 서로 연결돼요.
- 매우 유사한 청크는 SIMILAR `Relationship`(가중치 `Property` 포함)으로 연결되어 k-최근접 이웃 그래프를 만들어요.
- `Vector Embedding`은 청크와 벡터 `Index`에 계산되어 저장돼요.
- llm-graph-transformer 또는 diffbot-graph-transformer는 텍스트에서 엔터티와 `Relationship`을 추출해요.
- 엔터티와 해당 `Relationship`은 그래프에 저장되고 원래 청크에 연결되죠.

LLM Knowledge Graph Builder의 주요 기능
LLM Knowledge Graph Builder는 구조화되지 않은 데이터에서 Knowledge Graph를 작성하는 프로세스를 단순화하도록 설계된 다양한 기능을 지원해요. 한번 살펴볼까요?
- 다중 모드 수집: PDF, HTML, 스크립트 등을 업로드하거나 URL 및 클라우드 버킷을 가리킬 수 있어요.
- `Schema` 구성: 사전 설정된 `Schema` 중에서 선택하거나, 기존 Neo4j `Schema`를 재사용하거나, LLM이 이를 동적으로 추론하도록 할 수 있죠.
- 통합 벡터 및 그래프 검색: 하이브리드 검색을 위해 `Vector Embedding`이 그래프 데이터와 함께 저장돼요.
- 시각화 및 채팅: 인앱 뷰어 또는 Neo4j Bloom을 통해 그래프를 탐색하고, GraphRAG를 사용해서 데이터와 채팅할 수 있어요!
: Neo4j Aura에서 호스팅된 버전을 사용하거나 Docker Compose를 사용하여 로컬로 배포할 수 있어요. - 추적 가능한 출력: 모든 그래프 요소는 완전한 설명을 위해 소스 텍스트 및 청크에 연결돼요.
Neo4j LLM Knowledge Graph Builder는 PDF, 스크립트, 웹페이지와 같은 구조화되지 않은 콘텐츠를 검색 강화 애플리케이션을 지원하는 구조화된 그래프로 변환하는 빠르고 유연한 방법을 제공해요.
엔터티 및 `Relationship` 추출을 자동화하면 수동 그래프 모델링을 줄이고 개발을 가속화하는 데 도움이 되죠. LLM과 그래프 기반 검색이 계속 발전함에 따라 이와 같은 도구를 사용하면 텍스트와 구조화된 데이터를 쿼리 가능한 단일 프레임워크에서 쉽게 결합하여 GraphRAG 이상에서 사용할 수 있다는 점, 정말 흥미롭죠?
LLM의 Knowledge Graph란 무엇일까요?
Knowledge Graph는 실제 엔터티와 이들 간의 관계를 구조적이고 연결된 형식으로 나타내는 것이에요. LLM과 함께 사용하면 Knowledge Graph가 자체 데이터에 모델을 기반으로 하여 구조화된 정보와 구조화되지 않은 정보를 모두 연결된 데이터 계층으로 구성하게 되죠. 이를 통해 더 깊고 정확하며 설명 가능한 AI 통찰력이 가능해진답니다.
LLM은 그래프를 생성할 수 있나요?
네, LLM은 구조화되지 않은 텍스트에서 엔터티와 관계를 추출해서 그래프 구조로 변환할 수 있어요. LLM 기반 Knowledge Graph 구성이라고도 하는 이 프로세스는 Neo4j Knowledge Graph Builder와 같은 도구를 사용해서 대규모로 그래프 작성을 자동화하는 데 사용된답니다.
Knowledge Graph의 목적은 무엇인가요?
Knowledge Graph의 목적은 콘텐츠와 맥락을 모두 포착하는 방식으로 데이터를 구성하고 의미 있는 관계를 통해 사람, 장소, 이벤트 및 기타 개체를 연결하는 것이에요. 이는 검색, 추천, 추론 및 GenAI 애플리케이션을 지원하는 데 아주 이상적이죠.
LLM 세계에서 GraphRAG란 무엇일까요?
GraphRAG는 전통적인 벡터 검색과 함께 또는 추가적으로 언어 모델 응답을 향상시키기 위해 Knowledge Graph를 통합한 Retrieval-Augmented Generation(RAG)이에요. 기본적인 벡터 기반 RAG와 달리 GraphRAG는 Semantic Search와 구조적 그래프 순회를 결합해요. 따라서 모델은 관련 사실뿐만 아니라 이들 사이의 관계에도 접근할 수 있게 되죠. 이렇게 하면 출력이 더 정확하고 완전하며 소스를 쉽게 추적할 수 있답니다.
RAG와 Knowledge Graph의 차이점은 무엇인가요?
GraphRAG는 Retrieval-Augmented Generation과 Knowledge Graph를 결합하여 언어 모델이 연결되고 구조화된 컨텍스트에 액세스할 수 있도록 해줘요. 기본 RAG 기술은 벡터 검색을 사용하여 관련 정보의 분리된 부분을 검색하는 반면, GraphRAG는 Knowledge Graph를 활용하여 사실이 어떻게 연결되어 있는지 이해하는 데 도움을 준답니다.
Knowledge Graph는 엔터티와 해당 관계로 구성된 구조화된 데이터 표현이므로 정보를 보다 정확하게 검색하고 변환할 수 있어요. 이 구조는 모델이 정보 공간을 보다 지능적으로 탐색하여 보다 정확하고 설명 가능한 답변을 생성하는 데 도움이 되죠. 이 접근 방식에서 Knowledge Graph는 단순한 데이터 저장소가 아니에요. 이는 모델의 추론을 더욱 확실하고 투명하게 만드는 의미론적 백본이라고 할 수 있답니다.
다중 홉 추론을 위한 GraphRAG
RAG 애플리케이션은 정확한 답변을 생성하기 위해 여러 소스에서 정보를 검색해야 하는 경우가 많아요. 텍스트 요약은 어려울 수 있지만 정보를 그래프 형식으로 표현하면 여러 가지 이점이 있답니다.
각 문서를 개별적으로 처리하고 이를 Knowledge Graph로 연결함으로써 정보의 구조화된 표현을 구성할 수 있어요. 이 접근 방식을 사용하면 상호 연결된 문서를 더 쉽게 탐색하고 탐색할 수 있으므로 다중 홉 추론을 통해 복잡한 쿼리에 응답할 수 있게 되죠. 수집 단계에서 Knowledge Graph를 구성하면 쿼리 시 작업 부하도 줄어들어 대기 시간이 향상된답니다.
새로운 버전에서 이 프로젝트에 대한 문서를 읽어보세요.GitHub 저장소.
Knowledge Graph를 사용하여 더욱 스마트한 LLM 애플리케이션을 구축하는 방법에 대해 자세히 알아보려면 이 블로그 시리즈의 다른 게시물을 확인해 보세요.
- GraphRAG란 무엇입니까?
- LLM Knowledge Graph Builder: 백엔드 아키텍처 및 API 개요
- 비디오: LLM 및 Neo4j를 사용하여 Knowledge Graph 구축
- GraphRAG 패턴 카탈로그
- Enterprise GenAI용 데이터베이스 선택
- Neo4j GraphRAG Python 패키지
- LangChain 라이브러리, Neo4j 벡터 인덱스에 대한 완벽한 지원 추가
- Neo4j로 Large Language Model 활용
- 구조화되지 않은 텍스트에서 Knowledge Graph 구성
- Knowledge Graph를 사용하여 RAG 애플리케이션 구현
- 개발자 가이드: Knowledge Graph 구축 방법
- 채팅GPT
- gpt
에이치시스템즈의 LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.
'Ontology & Knowledge Graph' 카테고리의 다른 글
| 지식 그래프의 미래: 구조적 검색과 시맨틱 검색은 하나가 될 것인가? (1) | 2026.07.12 |
|---|---|
| Elasticsearch와 Neo4j로 지식 그래프 검색 마스터하기 (1) | 2026.07.12 |
| 지식 그래프 & LLM: 실시간 그래프 분석으로 똑똑하게! (1) | 2026.07.11 |
| Llama 3.1, NVIDIA NIM, LangChain으로 지식 그래프 기반 Agent 구축하기 (0) | 2026.07.11 |
| Graph used right & built fast: Neo4j at HackwithBay 3.0 (1) | 2026.07.11 |
