LightRAG
무엇인가
LightRAG는 텍스트 코퍼스를 지식 그래프와 벡터 인덱스로 동시에 색인하고, 질의 시 두 인덱스를 함께 조회해 답을 만드는 검색 증강 생성 프레임워크다. Python 라이브러리로 직접 호출하거나 HTTP API 서버로 띄워 쓴다. 삽입·질의·그래프 시각화를 위한 WebUI가 함께 배포된다. 그래프 기반 RAG 계열에 속한다.
어떻게 동작하나
인덱싱 단계에서 문서를 청크로 나눈다. 청킹 전략은 Fix, Recursive, Vector, Paragraph 네 가지 중에서 고른다. 각 청크에서 LLM이 엔티티와 관계를 추출하고(EXTRACT 역할), 별도 LLM이 검색용 키워드를 뽑는다(KEYWORDS 역할). 결과는 지식 그래프와 벡터 스토어에 나뉘어 저장된다. 질의는 키워드 추출, 그래프 탐색과 벡터 검색, 리랭킹, 답변 생성(QUERY 역할) 순으로 흐른다. 저장 계층은 KV·벡터·그래프·문서 상태 네 가지로 구분되며 PostgreSQL, MongoDB, Neo4j, Milvus, OpenSearch를 백엔드로 지정할 수 있다.
무엇과 다른가
벡터 전용 RAG는 질의와 가까운 청크만 회수하므로 문서 전체를 아우르는 질문에 약하다. LightRAG는 엔티티 수준의 국소 검색과 관계·키워드 수준의 전역 검색을 함께 수행한다. 문서를 삭제하면 지식 그래프를 자동으로 재생성해 인덱스가 낡은 상태로 남지 않게 한다. 질의 API가 답변과 함께 회수된 컨텍스트를 반환하므로 RAGAS 같은 평가 지표를 그대로 계산할 수 있다.
어떻게 쓰나
uv 또는 pip로 설치하고, PyPI 배포본이나 Docker Compose 스택으로 서버를 띄운다. 대화형 setup wizard가 .env와 필요할 때 docker-compose.final.yml을 생성한다. 임베딩·리랭킹·저장 백엔드는 Docker로 로컬 배포할 수 있다. Langfuse 트레이싱과 RAGAS 평가가 연동된다.
전제와 한계
LLM API 키와 임베딩 모델이 있어야 하며, EXTRACT·QUERY·KEYWORDS·VLM 네 역할에 서로 다른 LLM을 지정할 수 있다. docx의 smart_heading 파서는 spaCy 언어 모델(zh_core_web_sm, en_core_web_sm 3.8.0)을 별도로 설치해야 동작한다. 멀티모달 파싱은 MinerU 또는 Docling 서비스에 의존한다. 폐쇄망 배포는 별도 오프라인 가이드를 따른다.
관련 논문 4
유사 도구
- graphrag비정형 텍스트에서 LLM으로 개체와 관계를 추출해 지식 그래프 인덱스를 만들고, 그 그래프를 컨텍스트로 질의응답에 쓰는 Python CLI 파이프라인이다.
- PageIndex벡터 DB와 청킹 없이 문서를 계층적 트리 인덱스로 만들고, LLM이 그 트리를 추론으로 탐색해 근거 위치를 찾는 RAG 엔진이다.
- Hyper-Extract비정형 텍스트를 LLM으로 구조화해 그래프·하이퍼그래프·시공간 그래프로 추출하는 Python CLI다. 추출·검색·시각화를 한 명령으로 처리한다.
- deep-searcher사내 문서를 벡터 DB에 적재하고 LLM이 검색·평가·추론을 반복해 근거 있는 답변과 보고서를 만드는 Python 딥리서치 도구다.
- khoj개인 문서와 웹을 색인해 로컬·온라인 LLM으로 답을 얻는 셀프호스팅 AI 앱이다. 브라우저·Obsidian·Emacs·WhatsApp에서 접근하고 에이전트와 자동화를 만든다.
- kernel-memory여러 형식의 문서를 청크로 나눠 임베딩하고 벡터 인덱스에 저장해, 출처 인용과 함께 자연어로 답하는 RAG 파이프라인 서비스다.