구조화되지 않은 데이터의 잠재력을 발굴해 보세요!
오늘날 데이터 중심 세상에서 엄청난 양의 정보가 텍스트 문서, 기사, 이메일, 소셜 미디어 게시물과 같은 구조화되지 않은 형태로 존재하고 있어요. 이런 소스들은 통찰력이 풍부하지만, 의미 있는 연결고리와 관계를 추출하는 건 복잡하고 시간이 많이 걸리는 일이었죠.
이번 블로그 포스팅에서는 LLM Knowledge Graph Builder를 살펴볼 거예요. 이 도구의 기능, 장점, 그리고 Large Language Model(LLM)과 Neo4j Graph Database의 결합된 힘을 활용해서 데이터 분석과 지식 발견을 어떻게 향상시키는지 알아볼게요. 개발자 가이드: Knowledge Graph를 구축하는 방법을 통해 빠르게 알아보는 것도 좋겠죠?
저희는 공개적으로 사용 가능한 정보를 바탕으로 기능들을 살펴보고, 이 도구의 일반적인 사용 사례를 기반으로 기능을 추론해 볼 거예요. 또한 공식 문서와 공개 GitHub 저장소도 참고할 거고요.
이번 포스팅은 다음 내용을 다루는 여러 파트로 구성된 시리즈의 첫 번째 글이에요.
- Knowledge Graph 추출
- GraphRAG 리트리버
구조화되지 않은 데이터의 문제와 LLM의 등장
구조화되지 않은 데이터는 미리 정의된 형식이 없기 때문에 기존 데이터베이스로는 효과적으로 처리하고 분석하기가 어렵죠. 키워드 검색 같은 방법은 피상적일 수 있고, 텍스트에 담긴 미묘한 관계와 더 깊은 의미를 놓칠 수도 있고요.
하지만 LLM의 등장으로 상황이 완전히 바뀌었어요. 텍스트와 코드로 구성된 방대한 데이터 세트로 훈련된 이 AI 모델들은 자연어를 이해하고, 객체를 추출하고, 관계를 식별하고, 맥락과 감정을 추론하는 놀라운 능력을 갖추게 되었거든요. LLM은 사람처럼 구조화되지 않은 텍스트를 효과적으로 "읽고" 이해해서 새로운 데이터 처리 및 분석 가능성을 열어준답니다.
LLM Knowledge Graph Builder: LLM과 Graph Database의 만남
Graph Database인 Neo4j는 상호 연결된 데이터를 저장하고 쿼리하는 데 아주 뛰어나요. 관계를 핵심 요소로 표현하기 때문에 데이터 내의 연결, 패턴, 네트워크를 탐색하는 데 이상적이죠. LLM Knowledge Graph Builder는 LLM의 강력한 기능을 사용해서 구조화되지 않은 텍스트에서 구조화된 정보를 추출한 다음, 새롭게 발견된 지식으로 Neo4j Graph Database를 채우는 처리, 시각화, 상호 작용 도구 역할을 한답니다.
Neo4j LLM Knowledge Graph Builder는 어떤 기능을 제공하나요?
LLM Knowledge Graph Builder는 온라인에서 신청하면 구조화되지 않은 텍스트를 Knowledge Graph로 변환해 줘요. 텍스트가 그래프로 변하는 마법같은 경험을 할 수 있다니까요!
OpenAI, Gemini, Llama 3, Diffbot, Claude Sonnet, Qwen 같은 LLM을 사용해서 PDF, 문서, 이미지, 웹 페이지, 심지어 YouTube 자막에서도 데이터를 추출할 수 있어요.
데이터 추출 과정을 거치면 문서는 문서 자체와 청크(chunk, 임베딩 포함)로 이루어진 어휘 그래프, 그리고 Neo4j 데이터베이스에 저장된 `Node`와 `Relationship`으로 이루어진 엔터티 그래프로 변환돼요. 여기서 중요한 건 **추출 스키마(extraction schema)**를 설정해서 추출 후 정리 작업을 적용할 수 있다는 점이에요.
다양한 Retrieval-Augmented Generation (RAG) 방식을 활용할 수 있는데, 예를 들어 GraphRAG, 벡터 검색, Text2Cypher 등을 이용해서 데이터에 대해 질문하고, 추출된 데이터가 어떻게 답변을 구성하는지 확인할 수 있어요.
프론트엔드는 React 애플리케이션이고, 백엔드는 Google Cloud Run에서 실행되는 Python FastAPI 애플리케이션이지만, Docker Compose를 사용해서 로컬 환경에 배포할 수도 있어요. 이 도구는 llm-graph-transformer module을 사용하고, Neo4j는 LangChain 및 GraphRAG 검색 같은 다른 LangChain 통합에 기여했답니다. 더 자세한 내용은 기능 문서를 참고해 주세요.
단계별 사용법
- LLM Knowledge Graph Builder를 열어 주세요.
- Neo4j AuraDB 인스턴스에 연결하세요.
- PDF, 문서, URL, 또는 S3/GCS 버킷을 제공하세요.
- 원하는 LLM을 선택해서 그래프를 구성하세요.
- 앱에서 Knowledge Graph를 시각화하세요.
- GraphRAG를 사용해서 데이터와 대화해 보세요.
- Neo4j Bloom을 열어서 더 자세하게 시각적으로 탐색해 보세요.
- 애플리케이션에서 구성된 Knowledge Graph를 사용하세요.

어떻게 작동하나요?
- 업로드된 소스는 그래프에 문서 `Node`로 저장돼요.
- 문서(유형)는 LangChain loader로 로드돼요.
- 콘텐츠는 청크(chunk)로 분할돼요.
- 청크는 그래프에 저장되고, 고급 RAG 패턴을 위해 문서와 연결돼요.
- 매우 유사한 청크는 SIMILAR `Relationship`(가중치 속성 포함)으로 연결되는데, 이는 k-Nearest Neighbors 그래프 알고리즘에 사용돼요.
- 임베딩은 청크와 Vector Index를 계산하고 저장해요.
- llm-graph-transformer 또는 diffbot-graph-transformer는 텍스트에서 엔터티와 `Relationship`을 추출해요.
- 엔터티와 해당 `Relationship`은 그래프에 저장되고, 원래 청크에 연결돼요.

주요 특징
데이터 수집
이 애플리케이션은 PDF 문서, 웹 페이지, YouTube 스크립트 등 다양한 데이터 소스를 지원해요. 사용자는 이러한 문서를 직접 업로드하거나 S3/GCS 버킷에 대한 URL 또는 링크를 제공할 수 있죠. 덕분에 다양한 유형의 구조화되지 않은 데이터를 수집할 수 있어요.
엔터티 인식 및 그래프 구성
OpenAI, Gemini, Diffbot 등과 같은 고급 LLM을 사용해서 애플리케이션은 수집된 텍스트에서 엔터티와 관계를 식별하고 추출해요. 이렇게 추출된 엔터티와 관계는 Neo4j의 그래프 기능을 사용해서 그래프 형식으로 변환되죠. 그래프는 항목을 나타내는 Node와 항목 간의 관계를 나타내는 Edge로 구성돼요.
구성 및 사용자 정의
사용자는 추출 Schema를 구성해서 그래프 구성 프로세스를 맞춤화할 수 있어요. 사전 정의된 Schema를 선택하거나, Neo4j 데이터베이스의 기존 Schema를 사용하거나, LLM이 제공된 텍스트를 기반으로 Schema를 제안하도록 설정할 수도 있죠. 이러한 수준의 맞춤 설정을 통해 Knowledge Graph는 사용자의 요구사항에 딱 맞게 구성될 거예요.
시각화 및 상호작용
이 애플리케이션은 생성된 Knowledge Graph를 시각화하기 위한 직관적인 웹 인터페이스를 제공해요. 사용자는 정보가 추출된 엔터티, 해당 관계 및 문서를 볼 수 있죠. 또한 시각적 탐색 및 그래프 데이터와의 상호작용을 위해 설계된 도구인 Neo4j Bloom을 사용해서 그래프를 탐색할 수도 있어요.
기술적 토대
– 전면 및 후면 끝: 애플리케이션은 Google Cloud Run에서 실행되는 React 프런트 엔드와 Python FastAPI 백엔드를 사용해요. Docker Compose를 사용해서 로컬로 배포할 수도 있고요.
– LangChain 통합: 이 애플리케이션은 Neo4j가 LangChain에 제공한 llm-graph-transformer 모듈을 사용해서 텍스트를 그래프 구조로 쉽게 변환해요.
– 저장 및 쿼리: Knowledge Graph는 Neo4j 데이터베이스에 저장되어 복잡한 데이터 네트워크를 효율적으로 처리하고 Neo4j의 선언적 그래프 쿼리 언어인 Cypher를 통해 강력한 쿼리 기능을 제공해요.
RAG 챗봇 사용
GraphRAG 채팅은 LLM Knowledge Graph 빌더의 핵심 구성 요소로, 사용자가 Natural Language 쿼리를 통해 Knowledge Graph와 상호 작용할 수 있도록 해줘요.
검색 프로세스
사용자가 질문을 하면 애플리케이션은 Neo4j Vector Index를 사용해서 가장 관련성이 높은 텍스트 덩어리와 연결된 엔터티를 최대 2홉 깊이까지 검색해요. 텍스트와 그래프 컨텍스트가 모두 결합되죠.
맥락을 풍부하게 하기 위해 채팅 기록도 요약돼요. 그런 다음 이 모든 정보는 제공된 컨텍스트와 요소를 기반으로 응답을 생성하는 사용자 정의 Prompt를 통해 선택한 LLM 모델로 전송돼요.
투명성과 설명 가능성
LLM Knowledge Graph 빌더의 뛰어난 기능은 답변 생성 방식에 대한 투명성을 제공하는 기능이에요. 사용자는 질문에 답변하는 데 사용된 문서, 엔터티 및 텍스트 덩어리의 특정 섹션을 볼 수 있으므로 프로세스를 더욱 신뢰할 수 있고 이해하기 쉽게 만들 수 있죠. 그 일환으로 Ragas를 사용하여 다양한 답변을 검증하는 평가 메커니즘도 있어요.
GraphRAG 검색 접근 방식
LangChain 프레임워크와 통합된 LLM Knowledge Graph 빌더는 RAG 애플리케이션의 정확성과 기능을 향상시키는 데 중요한 여러 가지 정교한 검색기를 제공해요. 아래에서 검색기 유형과 기능을 확인해 보세요.
그래프 리트리버
그래프 검색기는 LLM Knowledge Graph 빌더의 핵심 구성 요소예요. Neo4j Graph Database에 저장된 구조화된 데이터를 활용해서 관련 정보를 검색하죠.
- : 그래프 검색기는 사람, 조직, 위치 등 입력에서 관련 엔터티를 식별하는 것부터 시작해요. LLM은 텍스트에서 이러한 항목을 추출하죠.
- : 엔터티가 식별되면 검색기는 Cypher 쿼리를 사용해서 이러한 엔터티 주변을 검색해요. 여기에는 식별된 Node의 직간접적인 Relationship을 가져오는 작업이 포함되는데, 이는 더 포괄적인 컨텍스트를 제공하는 데 도움이 돼요.
하이브리드 리트리버
하이브리드 리트리버는 구조화되지 않은 데이터 검색과 구조화된 데이터 검색의 장점을 결합한 방식이에요.
벡터 및 전체 텍스트 인덱스: 이 검색기는 Vector Embedding 및 전체 텍스트 Index를 사용해서 구조화되지 않은 텍스트 데이터를 검색해요. 그런 다음 이 정보를 Knowledge Graph에서 수집된 데이터와 결합해서 더욱 강력한 검색 프로세스를 보장하죠.
Neo4j 벡터 리트리버
이 검색기는 Neo4j의 Vector Indexing 기능을 사용해서 유사성 점수를 기반으로 문서를 검색해요.
: 사용자는 search_k(검색할 문서 수) 및 score_threshold 같은 매개변수를 조정해서 검색 프로세스를 Fine-tuning할 수 있어요. 이렇게 하면 가장 관련성이 높은 문서만 검색되어서 LLM에 전달되죠.
글로벌 커뮤니티 및 지역 법인 리트리버
마이크로소프트는 "로컬에서 글로벌로 — 쿼리 중심 요약 GraphRAG"라는 논문을 작년에 발표했어요. 클러스터링 알고리즘을 실행하면 밀접하게 관련된 항목의 클러스터가 식별되고, 해당 콘텐츠는 LLM에 의해 커뮤니티 요약 Node로 요약돼요.
그 요약은 글로벌 리트리버에서 문서에 대한 일반적인 질문에 답변하는 데 사용돼요. LLM Knowledge Graph Builder에서는 그래프 데이터 과학이 활성화된 Neo4j 인스턴스(GDS, AuraDS, Neo4j Sandbox가 포함된 Aura Pro 또는 자체 호스팅)에 연결된 경우 동일한 클러스터링 알고리즘을 사용해서 이를 구현했어요. 이 인스턴스는 앱 상단에 표시될 거예요.
추출된 커뮤니티는 문서의 그래프 시각화에도 표시된답니다.
로컬 및 글로벌 검색기(다른 검색기와 마찬가지로) 모두 답변을 생성하는 데 사용된 검색된 상황별 그래프 데이터(커뮤니티, 엔터티, 청크)를 표시해서 설명 가능성을 지원해요.
다중 리트리버
표시된 대로 병렬로 실행되는 하나 이상의 검색기를 선택해서 질문에 대한 답변을 생성하고 답변 결과 간에 전환할 수 있어요.
리트리버 평가
병렬 검색기 평가의 한 가지 이유는 검색기 전반에 걸쳐 평가 측정항목을 생성하고 이를 사용자에게 표시하는 기능이 추가되었기 때문이에요.
저희는 Ragas 프레임워크를 사용하고 있고, 향후 블로그 게시물에서 평가에 대해 더 자세히 알아볼 예정이에요.
배포 및 구성
Neo4j LLM Knowledge Graph Builder는 온라인으로 접속할 수 있어요. 좀 더 세밀한 제어와 커스터마이징을 원한다면 로컬에 배포해서 로컬 LLM 모델을 사용할 수도 있답니다.
온라인 지원
여러분은 Neo4j 웹사이트에서 바로 애플리케이션에 접속할 수 있어요. Neo4j Aura 인스턴스에 연결해서 로컬 설정 없이도 Knowledge Graph 구축을 시작할 수 있죠.
로컬 배포
로컬 배포를 선호한다면, GitHub 저장소에서 애플리케이션을 복제할 수 있어요 (최신 버전은 DEV 브랜치를 사용하세요). 설정을 위해 Docker Compose를 사용해서 프론트엔드 및 백엔드 구성 요소를 모두 실행해야 해요.
로컬 배포에 대한 자세한 지침은 애플리케이션 설명서에서 확인할 수 있습니다.
요약
Neo4j LLM Knowledge Graph Builder는 LLM과 Graph Database의 강력한 기능을 활용해서 구조화되지 않은 데이터에 숨겨진 엄청난 잠재력을 활용하는 중요한 단계를 보여줘요.
텍스트를 상호 연결된 지식으로 자동 변환함으로써, 조직은 더 깊은 통찰력을 얻고, 더 많은 정보에 입각한 결정을 내리고, 구조화되지 않은 풍부한 정보를 활용하는 지능형 애플리케이션을 구축할 수 있어요.
LLM이 계속 발전하고 Neo4j의 Graph Database 기능이 확장됨에 따라, LLM Knowledge Graph Builder 및 유사한 도구가 데이터 분석 및 지식 발견의 미래에서 점점 더 중요한 역할을 할 거라고 기대할 수 있겠죠?
공식 릴리스에 대한 최신 정보를 얻으려면 , 그리고 GitHub 저장소를 살펴보세요. LLM Knowledge Graph Builder에 대한 자세한 내용은 Neo4j 공식 웹사이트 blog, 소셜 미디어 채널 등을 주목해주세요.
이 게시물의 댓글과 GitHub issues를 사용해서 피드백을 공유하고 애플리케이션을 개선할 수 있는 방법을 알려주세요.
다음 내용에 대해 자세히 알아볼 수도 있어요: LLM으로 Knowledge Graph 구축 (Graph Academy에서 제공).
LLM과 Graph Database의 결합은 정말 강력한 힘이에요. Neo4j는 데이터 기반 통찰력의 흥미롭고 새로운 시대를 선도할 수 있는 전략적 위치에 있다고 생각해요.
초보자를 위한 GraphRAG
연결된 데이터를 기반으로 복잡한 질문에 답할 수 있는 GraphRAG 애플리케이션을 구축해보세요. 세 가지 주요 검색 패턴을 알아볼까요?
- GraphRAG
- Retrieval-Augmented Generation
- 구조화되지 않은 데이터
에이치시스템즈의 LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.
'Ontology & Knowledge Graph' 카테고리의 다른 글
| 마하바라타 2.0: 두루마리에서 음파로 (4부) (0) | 2026.07.19 |
|---|---|
| 머신러닝, 그래프, 그리고 가짜 뉴스 팬데믹 (1부) (1) | 2026.07.18 |
| LLM 지식 그래프 빌더, 2025년 첫 번째 릴리스! (1) | 2026.07.18 |
| LLM Knowledge Graph Builder 백엔드 아키텍처 및 API 개요 (1) | 2026.07.17 |
| LlamaParse로 문서에서 Knowledge Graph 만들기 (0) | 2026.07.17 |
