기존 graph-based RAG 방법론들은 좋은 성능을 보여주지만 여전히 성장하는 외부 데이터를 제대로 다루지 못하고 있다는 한계점을 지적하며 새로운 RAG 방법론, EraRAG가 등장하게 되었습니다.

EraRAG는 기존의 graph-based RAG 방법론들이 아주 빠르게 데이터가 업데이트가 되는 상황에서 여전히 한계점이 있다는 점을 지적하며 외부 데이터가 업데이트될 때 처리되는 토큰의 개수와 소요 시간, 정확도 측면에서 기존의 방법론들보다 우수함을 보여주었습니다.

어떤 방법을 사용하여 더 빠르고 더 강력한 graph-based RAG 시스템을 만들 수 있었을까요?
EraRAG: Efficient and Incremental Retrieval Augmented Generation for Growing Corpora
by Huawei Hong Kong Research Center, Hong Kong; The Hong Kong University of Science and Technology, Hong Kong; The Chinese University of Hong Kong-Shenzhen, Shenzhen; The Chinese University of Hong Kong, Hong Kong; Hunan University, Changsha; WeBank, Shenzhen
기존 연구들의 한계점
기존 graph-based RAG 방법론들은 증가하는 외부 데이터를 효율적으로 처리하지 못함
제안방법
Hyperplane-based LSH를 활용하여 데이터를 분할한 후, 요약을 생성하여 인덱싱을 수행
사용자의 답변과 관련된 요약문을 기반으로 답변을 생성
References
- https://arxiv.org/pdf/2506.20963
- https://github.com/EverM0re/EraRAG-Official


Static update
1. Chunking: 입력 텍스트를 chunks로 나누고 vector embeddings 수행
2. Hashing: 각각의 vector를 n개의 randomly sampled hyperplanes에 투영시켜 n-bit binary hash code로 변환
- Hyperplane-based Locality-Sensitive Hashing(LSH)
주어진 vector와 n개의 hyperplane 간의 내적값의 부호를 이용하여 n-bit binary code를 생성
- Embedding vector의 angular proximity 보존 (높은 cosine 유사도 → 적은 bit 차이)
- Deterministic하며 고차원 embeddings에 대한 클러스터링 작업에 매우 효과적
3. Partitioning(1): Hamming distance를 기반으로 유사한 vectors를 같은 bucket으로 그룹화
4. Partitioning(2): Buckets를 segments로 변환
- Segments가 정해진 크기 범위 안에 속하도록, 작은 buckets는 합치고(hamming distance 활용), 큰 bucket은 2개로 나눔
5. Summarization: 각 segment마다, 포함된 chunks를 요약하여 새로운 chunk를 생성
6. 생성된 chunk를 기반으로 hasing, partitioning, summarization 프로세스를 재귀적으로 수행하여 multi-layered 그래프를 생성
- RAPTOR의 방법론을 활용
- 재귀적 요약 과정을 통해 상세한 내용과 포괄적인 내용에 관한 쿼리를 모두 처리할 수 있음
Dynamic update
1. 입력 텍스트를 chunks로 나누고 vector embeddings 수행
2. 기존과 동일한 hyperplanes에 embedding vector를 투영시켜 bucket에 넣고, segment로 변환
- 새로 생성되거나 변경된 segment에 대해서만 summary 생성 (localized updates)
Query processing

Collapsed graph search strategy 및 Adaptive retrieval strategy 활용
1. 사용자 쿼리와 가장 유사한 node에 대한 vector similarity search 수행
- Multi-level의 모든 nodes에 대하여 동일 가중치를 적용하여 검색
- 추가적으로, 사용자 쿼리가 세부적인 질문인지, 포괄적인 질문인지에 따라 chunk 비율 조절가능
2. 검색 결과를 기반으로 답변 생성
이러한 알고리즘을 통해 주요 graph-based RAG 방법론들보다 대체적으로 높은 답변 성능과 데이터 인덱싱 효율성을 얻을 수 있었습니다.


실질적으로는, 다음과 같이 디테일한 정보에 대한 질문 혹은 이유를 물어보는 포괄적인 질문에도 적절한 node를 활용하여 정답을 찾아낼 수 있었다고 합니다.

EraRAG는 효율적인 데이터 인덱싱과 더불어 답변의 성능까지 끌어올린 알고리즘입니다.
하지만, 아쉽게도 저자들이 해당 알고리즘에 대해 명시적으로 밝히진 않았지만 한계점들이 여전히 존재합니다.
1. LLM을 활용하여 summary를 생성하는 과정이 중첩되기 때문에, LLM으로 인한 에러가 누적됩니다.
- 특정 도메인에 대한 LLM의 이해도 부족
- 중요하지만 세부적인 정보가 제외 (특히, 반전이 있는 복잡한 reasoning에 취약)
2. 복합적인(complex) 사용자의 질문은 유사도 비교만으로 해결하기 어렵습니다.
- 근본적으로 vector embeddings 간의 유사도는 텍스트의 "유사성"을 대변하는 것이지 질문과 정답 간의 "관계성"을 나타내는 것이 아님
3. 답변의 레퍼런스를 명확히 알기 어렵습니다.
- 답변의 레퍼런스가 high-level layer에 존재할 경우, 이에 대한 원본 텍스트를 분류해 내기 어려움
또한, 벤치마크 상으론 괜찮은 결과를 보여주었음에도 신기할 정도로 많은 사람들의 관심을 받지 못하고 있습니다.
근본적으로 무언가 큰 문제가 있는 걸지도 모르겠



다음은 복잡한 쿼리에 답하기 위해 연쇄적인 추리를 활용한 ComoRAG에 대하여 알아보겠습니다.
등장한 지 일주일도 안 되는 시간에 github star 100개를 넘길 정도로 아주 인기 있는 graph-based RAG 알고리즘입니다.


그럼 다음 글에서 뵙죠!
'Engineering > RAG' 카테고리의 다른 글
| LightRAG (0) | 2025.08.21 |
|---|---|
| GraphRAG (0) | 2025.08.20 |
| Adaptive RAG (0) | 2025.08.19 |
| Retrieval Augmented Generation (RAG) (0) | 2025.08.19 |