출처

Knowledge-Graph: 로컬 LLM으로 텍스트를 개념 그래프로 변환하는 오픈소스 프로젝트

개요

knowledge_graph는 PDF와 같은 텍스트 뭉치에서 개념과 개념 사이의 관계를 추출해 노드와 엣지로 구성된 지식 그래프를 생성하는 오픈소스 프로젝트입니다. 개체명 인식으로 개체를 추출하기보다, 문맥을 포함한 “개념”을 LLM으로 추출하는 방식을 사용합니다. 생성된 그래프는 그래프 기반 검색 증강 생성(GraphRAG/GRAG), 개념 중요도 분석, 커뮤니티 탐색 등에 활용할 수 있습니다. Mistral 7B OpenOrca와 Ollama를 사용해 그래프 생성 과정을 로컬에서 실행하는 것을 목표로 합니다.

핵심 포인트

  • 텍스트를 청크로 나눈 뒤 각 청크에서 LLM으로 개념 쌍과 의미적 관계를 추출합니다.
  • 개념이 같은 청크에 함께 등장하는 경우에도 문맥적 근접성에 따른 관계를 추가하고, 관계 유형별로 가중치 W1, W2를 부여합니다.
  • 여러 청크에서 반복되는 동일 개념 쌍은 하나의 엣지로 통합하며, 가중치를 합산하고 관계 목록을 결합합니다.
  • NER의 개체보다 문맥을 포함한 개념을 추출하는 것이 더 의미 있는 그래프를 만들 수 있다는 관점을 제시합니다.
  • NetworkX는 그래프 처리, Pyvis는 웹 기반 시각화, Pandas는 그래프 스키마 관리에 사용됩니다.
  • 노드의 차수와 커뮤니티를 계산해 시각화에서 노드 크기와 색상을 정할 수 있습니다.
  • 임베딩 기반 개념 중복 제거, 일반적 개념 및 이상치 필터링, 문맥적 근접성 계산 개선, 주제에서 하위 개념으로 이동하는 탐색 UI 등이 향후 과제로 제시되었습니다.

왜 중요한가

이 프로젝트는 벡터 검색 중심의 RAG와 다른 방식으로, 문서 안의 개념 간 연결을 검색과 분석에 활용하려는 구현 사례를 보여 줍니다. 모든 구성 요소를 로컬에서 실행하므로 외부 API 비용 없이 특정 문서의 개념 구조를 실험할 수 있다는 점도 특징입니다. 다만 원문에서 소개된 프로젝트는 완성된 제품이라기보다 개념 추출과 그래프 생성 방법을 실험하고 확장하기 위한 출발점으로 설명됩니다.

설치 및 구현 참고

Docker 환경에서 다음 명령으로 실행할 수 있으며, 실행 후 8888 포트의 Jupyter Notebook에 접속합니다.

git clone https://github.com/rahulnyk/knowledge_graph.git
cd knowledge_graph
docker build -t knowledge-graph .
docker run -p 8888:8888 knowledge-graph

핵심 구현은 저장소의 extract_graph.ipynb 노트북에 포함되어 있어 다른 문서에 적용할 때 수정해 사용할 수 있습니다.

원문 및 후속 링크

관련 위키

원문 보존 위치

원문 전체는 raw source: 2026-07-29-pytorchkr-topic-11448-knowledge-graph-llm-pdf-kgsource_url 및 HTML 원문과 함께 저장되어 있습니다.