0 Abstract
📌 기존 RAG 시스템의 한계:
- 평면적 데이터 표현 사용, 맥락 인식 부족, 복잡한 상호의존성 포착 실패, 단편적인 답변 생성
📌 제안하는 해결책: LightRAG
- 주요 특징:
- 그래프 구조를 텍스트 색인과 검색 프로세스에 통합
- Dual-level 검색 시스템 도입
- Low-level
- High-level
- 핵심 기술:
- 그래프 구조와 벡터 표현 통합
- 효율적인 엔티티 및 관계 검색
- 증분 업데이트 알고리즘 구현
1 Instruction
기존 RAG시스템의 한계가 있다
- 첫째, 많은 방법들이 엔티티 간의 복잡한 관계를 이해하고 검색하는 능력을 제한하는 평면적인 데이터 표현에 의존
- 둘째, 이러한 시스템들은 종종 다양한 엔티티와 그들의 상호 관계에 걸친 맥락 인식이 부족하기 때문에, 사용자 쿼리에 답변을 못하는 경우가 있음. 사용자는 이러한 주제들 간의 복잡한 상호 의존성을 적절히 포착하지 못하는 단편적인 답변을 받을 수 있다.
- 더보기
예를 들어사용자가 "전기 자동차의 증가가 도시 대기질과 대중교통 인프라에 어떤 영향을 미치나요?"라고 물으면,
기존 RAG 방법들은 전기 자동차, 대기 오염, 대중교통 문제에 대한 별도의 문서들을 검색할 수 있지만,
일관된 응답으로 종합하는 데 어려움을 겪을 수 있다
전기 자동차 채택이 대기질을 어떻게 개선할 수 있는지, 이것이 다시 대중교통 계획에 어떤 영향을 미칠 수 있는지를 설명하지 못할수 있다
📌 제안하는 해결방안 : 그래프 구조 통합
- 엔티티 간 상호의존성 효과적 표현
- 관계에 대한 미묘한 이해 가능
- 다중 소스 정보의 일관된 통합
- 맥락이 풍부한 응답 생성
LightRAG의 주요 특징
- 그래프 기반 텍스트 색인 패러다임
- Dual-level 검색 프레임워크
- Low-level: 특정 엔티티와 관계에 대한 정확한 정보
- High-level: 더 넓은 주제와 테마 포괄
- 그래프 구조와 벡터 표현 통합
📌 해결해야 할 주요 과제
- 포괄적인 정보 검색
- 상호 의존적 엔티티의 전체 맥락 포착
- 모든 문서에서의 효과적인 정보 추출
- 향상된 검색 효율성
- 그래프 기반 지식 구조 검색 개선
- (응답 시간 단축)
- 새로운 데이터 적응
- 동적 환경에서의 시스템 관련성 유지
- 빠른 데이터 업데이트 처리
2. RETRIEVAL-AUGMENTED GENERATION
주요 구성요소:
- Retrieval Component (검색 구성요소)
- Generation Component (생성 구성요소)
수학적 정의 :
- $M = \{G, R = (\phi, \psi)\}$
- $M(q; D) = G(q, \psi(q; \hat{D}))$
- $\hat{D} = \phi(D)$
- $G$: 생성 모듈
- $R$: 검색 모듈
- $q$: 입력 쿼리
- $D$: 외부 데이터베이스
- $\phi$: 데이터 인덱서 : 외부 데이터베이스 D를 기반으로 특정 데이터 구조 $\hat{D}$를 구축하는 작업을 포함함
- $\psi$: 데이터 검색기 : 인덱싱된 데이터와 쿼리를 비교하여 관련 문서를 얻으며, 이를 "관련 문서"라고함
- ψ(·)를 통해 검색된 정보와 초기 쿼리 q를 활용하여 글로벌 정보를 효율적으로 추출, 생성 모델 G(·)는 맥락적으로 관련된 응답을 생성
3. THE LIGHTRAG ARCHITECTURE
3.1 GRAPH-BASED TEXT INDEXING
Graph-Enhanced Entity and Relationship Extraction :
- 문서를 더 작은 조각으로 분할함으로써 검색 시스템을 향상(관리하기 쉬워짐)
-> 전체 문서를 분석할 필요 없이 관련 정보를 빠르게 식별하고 접근할 수 있게 함. - LLM을 활용하여 다양한 엔티티(예: 이름, 날짜, 위치, 이벤트)와 이들 간의 관계를 식별하고 추출
-> 포괄적인 지식 그래프를 만드는 데 사용 - 이 그래프 생성 모듈을 공식적으로 다음과 같이 표현:
- $\hat{D} = (\hat{V}, \hat{E}) = Dedupe \circ Prof(V, E)\ \ \ \ V, E = \cup_{D_i \in D} Recog(D_i)$
- $\hat{V}$ : 중복 제거된 노드 집합
- $\hat{E}$ : 중복 제거된 엣지 집합
- Dedupe : Deduplicate
- Prof(V, E) : 추출된 엔티티와 관계에 대한 상세 정보 생성
- Recog : 각 문서에서 엔티티와 관계를 인식하는 함수 - 처리 순서 :
1. Recog($D_i$) : 각 문서에서 엔티티와 관계 추출
2. U : 모든 추출 결과 통합
3. Prof : 통합된 결과에 대한 프로파일링
4. Dedupe : 중복 제거
5. 최종 결과 : $\hat{D} = (\hat{V}, \hat{E})$ - $\hat{D}$는 생성된 지식 그래프를 나타냄.
이 데이터를 생성하기 위해, 텍스트 문서 $D_i$에 세 가지 주요 처리 단계를 적용(LLM을 사용)- 엔티티 및 관계 추출 R(·) - Recog: LLM을 사용하여 텍스트 데이터 내의 엔티티(노드)와 그들의 관계(엣지)를 추출
- 더보기
- 입력 텍스트: "심장전문의 김철수 교수는 서울대학교병원에서 심장병 환자들을 진료하고 있다."
추출되는 정보:
1) 엔티티:
- 사람: "김철수" (직업: 심장전문의, 직위: 교수)
- 조직: "서울대학교병원"
- 의료조건: "심장병"
2) 관계:
- "김철수 - 근무 - 서울대학교병원"
- "김철수 - 진료 - 심장병 환자"
- 더보기
- LLM Profiling을 통한 Key-Value 쌍 생성. P(·): LLM 기반 프로파일링 함수 P(·)를 사용하여 V의 각 엔티티 노드와 E의 관계 엣지에 대한 텍스트 key-value 쌍 (K, V)를 생성.
- 각 인덱스 키는 효율적인 검색을 가능하게 하는 단어나 짧은 구문이며, 해당하는 값은 텍스트 생성을 돕기 위해 외부 데이터에서 관련된 스니펫을 요약한 텍스트 단락
- 엔티티는 이름을 유일한 인덱스 키로 사용하는 반면, 관계는 여러 인덱스 키를 가질 수 있다.
-
더보기엔티티에 대한 Key-Value 생성
1) 엔티티: 삼성전자
Key: "삼성전자"
Value: "한국의 대표적인 전자기업으로, 스마트폰, 가전제품 등을 생산하는 글로벌 기업.
갤럭시 시리즈를 통해 스마트폰 시장에서 선도적 위치를 차지하고 있음."
2) 엔티티: 갤럭시
Key: "갤럭시"
Value: "삼성전자의 대표적인 스마트폰 브랜드로, 2024년 신형 모델이 출시되어
시장에서 높은 성과를 기록. 혁신적인 기술과 디자인으로 주목받는 제품군."
3) 엔티티: 스마트폰 시장
Key: "스마트폰_시장"
Value: "모바일 기기 산업의 핵심 시장으로, 다양한 제조사들이 경쟁하는 분야.
기술 혁신과 소비자 선호도에 따라 빠르게 변화하는 특성을 가짐."
관계에 대한 Key-Value 생성
1) 관계: 삼성전자의 갤럭시 출시
Keys: ["삼성_신제품", "갤럭시_출시", "스마트폰_런칭"]
Value: "삼성전자가 2024년 신형 갤럭시 스마트폰을 출시하여 시장에 선보임.
신제품은 최신 기술과 혁신적 기능을 탑재하여 주목을 받음."
2) 관계: 갤럭시의 시장 성과
Keys: ["갤럭시_실적", "스마트폰_매출", "시장_성과"]
Value: "신형 갤럭시는 스마트폰 시장에서 높은 매출을 기록하며 성공적인 시장 반응을 얻음.
제품의 혁신성과 브랜드 가치가 성과에 기여."
실제 사용 예시
질문: "2024년 갤럭시의 시장 성과는 어땠나요?"
프로세스:
1. "갤럭시_실적", "스마트폰_매출" 등의 키를 통해 관련 정보 검색
2. 관련된 Value들을 결합하여 답변 생성
3. 필요시 엔티티 정보(삼성전자, 갤럭시)를 추가하여 맥락 보완 - 그래프 연산 최적화를 위한 중복 제거. D(·): 원천 텍스트 $D_i$의 서로 다른 세그먼트에서 동일한 엔티티와 관계를 식별하고 병합하는 중복 제거 함수 D(·)를 구현(구체적인 방법에 대해서는 서술하지 않음)
- 엔티티 및 관계 추출 R(·) - Recog: LLM을 사용하여 텍스트 데이터 내의 엔티티(노드)와 그들의 관계(엣지)를 추출
- $\hat{D} = (\hat{V}, \hat{E}) = Dedupe \circ Prof(V, E)\ \ \ \ V, E = \cup_{D_i \in D} Recog(D_i)$
3.2 DUAL-LEVEL RETRIEVAL PARADIGM
상세한 레벨과 추상 레벨 모두에서 쿼리 키를 생성(Profiling 단계에서 생성)
- 상세한 쿼리: 세부사항을 묻는 쿼리, 특정 노드나 엣지와 관련된 정보의 정확한 검색이 필요 (예"'오만과 편견'을 누가 썼나요?")
- 추상 쿼리: 더 개념적이며, 더 넓은 주제, 요약, 또는 전반적인 테마를 포괄. (예 "인공지능이 현대 교육에 어떤 영향을 미치나요?")
두 가지 구분된 검색 전략을 사용 : 다양한 쿼리 유형을 수용하기 위해
- Low-Level 검색: 주로 특정 엔티티와 그들의 관련 속성이나 관계를 검색하는 데 중점. (세부사항 지향적)
- High-Level 검색: 더 넓은 주제와 전반적인 테마를 다룬다. 이 레벨의 쿼리는 여러 관련 엔티티와 관계에 걸쳐 정보를 집계하여, 특정 세부사항보다는 고차원적 개념과 요약에 대한 통찰을 제공
-
더보기예) Query : 전기 자동차의 증가가 도시 대기질과 대중교통 인프라에 어떤 영향을 미치나요?
-> 엔티티, 관계 추출
-> 엔티티(전기자동차, 대기질, 대중교통, 등...)
-> 관계(전기자동차가 대기질에 미치는 영향, ...)
키워드 생성 :
Low-level : 전기자동차, 대기질, 대중교통
High-level : 환경 영향, 도시 계획, 공중 보건, 지속가능성, 등..
효율적인 검색을 위한 그래프와 벡터 통합 : 검색 알고리즘이 로컬 및 글로벌 키워드를 모두 효과적으로 활용할 수 있게 하여 성능 높아짐
- (i) 쿼리 키워드 추출: 주어진 쿼리 q에 대해, 로컬 쿼리 키워드 $k^{(l)}$와 글로벌 쿼리 키워드 $k^{(g)}$ 모두를 추출.
- (ii) 키워드 매칭: 벡터 데이터베이스를 사용하여 로컬 쿼리 키워드를 후보 엔티티와 매칭하고, 글로벌 쿼리 키워드를 글로벌 키와 연결된 관계와 매칭
-> 벡터 데이터베이스를 사용하는 것으로 보아 - V,E,D등을 벡터화 한 것으로 추측 - (iii) 높은 관련성 통합: 검색된 그래프 요소들의 로컬 서브그래프 내의 이웃 노드들을 추가로 수집. 이 프로세스는 집합 ${v_i|v_i \in V \wedge (v_i \in N_v \vee v_i \in N_e)}$를 포함하며, 여기서 $N_v$와 $N_e$는 각각 검색된 노드 v와 엣지 e의 원-홉 이웃 노드들을 나타낸다.
( 논문에 의하면 1 hop만 하는것으로 보임)
더보기- V : 전체 그래프의 모든 노드 집합
- v_i : V의 각 개별 노드
- ∧ : "V에 속하면서"라는 조건
- N_v, N_e : Neighbor_v, Neighbor_e를 의미,
[전체 그래프 구조] : 고혈압이 첫 노드인 경우.
운동
↓
[예방]
↓
두통 ←[증상]--- 고혈압 ---[증상]→ 어지러움
|
[치료]
↓
혈압약
|
[관리]
|
저염식
- $N_v$ (직접 이웃):
- 고혈압 노드와 직접 연결된 노드들
- 결과: {두통, 어지러움, 혈압약}
- $N_e$ (관계/엣지로 연결된 이웃):
- "예방", "관리" 등의 관계를 통해 연결된 노드들
- 결과: {운동, 저염식}
이 dual-level 검색 패러다임은 키워드 매칭을 통해 관련 엔티티와 관계를 효율적으로 검색할 뿐만 아니라, 구성된 지식 그래프에서 관련 구조적 정보를 통합하여 결과의 포괄성을 향상.
3.3 RETRIEVAL-AUGMENTED ANSWER GENERATION
- 3.1, 3.2, 3.3 정리
1. 그래프 구축 (3.1절)
└── 텍스트를 그래프 데이터베이스로 변환 ($\hat{D}$ 생성)
├── 엔티티 추출
├── 관계 추출
└── 중복 제거 및 최적화
2. 검색 프로세스 (3.2절)
└── 쿼리 처리 및 관련 정보 검색
├── Low-level 검색 (specific entities)
├── High-level 검색 (broader themes)
└── 그래프-벡터 통합 검색
3. 답변 생성 (3.3절)
└── 최종 응답 생성 프로세스
├── 검색된 정보 구조화
└── LLM 기반 응답 생성 - 검색된 정보의 활용:
- 검색된 정보 ψ(q; $\hat{D}$)과 LLM을 사용,
- 이 데이터는 프로파일링 함수 P(·)에 의해 생성된 관련 엔티티와 관계로부터의 연결된 값 V로 구성.
- 여기에는 엔티티와 관계의 이름, 설명, 그리고 원본 텍스트의 발췌문이 포함.(아래 예시 참고)
-
더보기# 예시 쿼리: "자율주행 자동차의 안전 시스템은 어떻게 작동하나요?"
# 원본 텍스트 예시:
"테슬라의 자율주행 시스템은 8개의 카메라와 12개의 초음파 센서를 사용합니다.
라이다 센서는 물체까지의 거리를 측정하는 데 사용됩니다.
자율주행 차량은 AI 기반 충돌 방지 시스템을 통해 보행자를 감지합니다..."
# 3.1 그래프 구축 : 엔티티 추출
# 엔티티 추출:
- Entity1: 자율주행 시스템
속성: {유형: "기술", 목적: "차량 제어"}
- Entity2: 센서
속성: {종류: ["카메라", "초음파", "라이다"]}
- Entity3: 충돌 방지 시스템
속성: {유형: "안전", 기술: "AI"}
# 관계 추출:
- Relation1: (자율주행 시스템) -[사용]-> (센서)
- Relation2: (센서) -[감지]-> (물체/보행자)
- Relation3: (충돌 방지 시스템) -[포함]-> (자율주행 시스템)
# 3.2 검색 프로세스 :
# 쿼리에서 키워드 추출:
- Low-level 키워드: ["자율주행", "안전", "시스템"]
- High-level 키워드: ["차량 안전", "센서 기술"]
# 검색 결과:
- Low-level 검색:
* 자율주행 시스템
* 센서
* 충돌 방지 시스템
- High-level 검색:
* 안전 관련 시스템 간 관계
* 센서-안전 연관 정보
# 3.3 답변 생성 : 구조화
# 구조화된 정보:
{
"core_systems": {
"sensors": ["카메라", "초음파", "라이다"],
"processing": "AI 기반 처리",
"safety_features": ["충돌 방지", "물체 감지"]
},
"relationships": {
"sensor_safety": "센서 데이터 → AI 처리 → 안전 기능 작동",
"system_hierarchy": "자율주행 시스템 > 충돌 방지 > 센서 작동"
}
}
# 프로파일링 함수 P(·)가 수행하는 작업:
1. 엔티티 분류 및 그룹화
- 하드웨어 요소 (sensors)
- 처리 요소 (processing)
- 기능적 요소 (safety_features)
2. 관계 분석 및 계층화
- 시스템 간 상호작용
- 작동 순서 및 의존성
맥락 통합과 답변 생성: retreive한 엔티티들, 관계들, 원본 텍스트를 모아 LLM으로 하여금 종합적인 답변 생성.
3.4 COMPLEXITY ANALYSIS OF THE LIGHTRAG FRAMEWORK(생략)
4. Evaluation
- (RQ1): 생성 성능 측면에서 LightRAG는 기존 RAG 기준선 방법들과 어떻게 비교되는가?
- (RQ2): dual-level 검색과 그래프 기반 인덱싱은 어떻게 LightRAG의 생성 품질을 향상시키는가?
- (RQ3): LightRAG는 다양한 시나리오에서 어떤 구체적인 장점을 보여주는가?
- (RQ4): LightRAG와 관련된 비용은 무엇이며, 데이터 변화에 대한 적응성은 어떠한가?
4.1 실험 설정
평가 데이터 셋 : Agriculture, Legal, CS, Mixed
비교군 :
- Naive RAG (Gao et al., 2023): 코사인 유사도가 가장 높은 텍스트 청크 검색
- RQ-RAG (Chan et al., 2024): LLM을 활용하여 입력 쿼리를 여러 하위 쿼리로 분해, 하위 쿼리들은 재작성, 분해, 모호성 해소와 같은 명시적 기법을 활용하여 검색 정확도를 향상
- HyDE (Gao et al., 2022): 입력 쿼리를 기반으로 가상의 문서를 생성하기 위해 LLM을 사용. 이 생성된 문서는 관련 텍스트 청크를 검색하는 데 사용되며, 이후 최종 답변을 공식화하는 데 활용
- GraphRAG (Edge et al., 2024): LLM을 사용하여 텍스트에서 엔티티와 관계를 추출하여 노드와 엣지로 표현.
평가 방법(7.3.4) - GraphRag 평가 방법론 차용 :
- i) 포괄성: 답변이 질문의 모든 측면과 세부사항을 얼마나 철저하게 다루는가?
- ii) 다양성: 질문과 관련된 서로 다른 관점과 통찰을 제공하는 데 있어 답변이 얼마나 다양하고 풍부한가?
- iii) 임파워먼트: 답변이 독자가 주제를 이해하고 정보에 입각한 판단을 내리는 것을 얼마나 효과적으로 가능하게 하는가?
- iv) 전반적: 이 차원은 앞의 세 가지 기준에 걸친 누적 성능을 평가하여 전반적으로 가장 좋은 답변을 식별
- Pairwise 평가 : 두 답변을 직접 비교하고 각 기준에 대해 우수한 응답을 선택
4.2 Comparison of LightRAG with existing RAG Methods (RQ1)
- 대규모 코퍼스에서 우수함 : LightRAG와 GraphRAG 같은 그래프 기반 시스템이 기존 청크 기반 방법들보다 우수
데이터셋 크기가 클수록 성능 격차가 더 증가 - 다양성 측면 : Diversity 메트릭에서 LightRAG가 현저한 우위
Dual-level 검색 패러다임 덕분에 더 포괄적인 정보 검색 가능 - GraphRAG와의 비교 :
둘 다 그래프 기반이지만 LightRAG가 일관되게 우수(복잡한 언어 맥락 처리에서 더 효과적)
4.3 Ablation Studies(RQ2)
- Dual-Level 검색 패러다임 효과성 : 각각 하나의 모듈을 제거한뒤 평가
- Low-level로만 검색(-High) :
- 거의 모든 데이터셋, 메트릭에서 상당한 성능 하락 있음.
- 추측 : 특정 정보(엔티티)에 대해 과도하게 집중하여 그런것으로 추측. 포괄적인 통찰이 필요한 부분에서 정보 수집이 어려운 것으로 보임
- High-level로만 검색(-Low) :
- 특정 엔티티를 심도 있게 조사하는 능력이 감소하여, 상세한 답변 불가
- 원본 텍스트 제거 (-Origin) : 그래프 구조에서 추출된 정보만 사용
- 그래프 기반 인덱싱 프로세스 만으로도 핵심 정보 전달 가능(쿼리에 답변하기에 충분한 맥락 제공)
- 원본 텍스트는 노이즈를 유발할 수 있는 관련 없는 정보 포함.
- Low-level로만 검색(-High) :
4.4 CaseStudy(RQ3) (생략)
4.5 Model Cost and Adaptability Analysis (RQ4) (생략)
5. Related Work 생략
LightRAG예시
Graph 생성 예시
Keyword 추출 예시
RAG Evaluation 예시