Retrieval-Augmented Generation (RAG) 시스템의 효율성을 극대화하기 위한 새로운 문맥 압축 방법론인 xRAG를 제안합니다. 핵심은 검색된 긴 문서의 전체 텍스트를 LLM에 입력하는 대신, 해당 문서를 대표하는 **단 하나의 임베딩 벡터(embedding vector)**만을 사용하여 LLM이 정보를 활용하도록 만드는 것입니다.
논문 개요
xRAG는 RAG를 위한 혁신적인 문맥 압축 기술입니다. 기존 RAG가 검색된 문서 텍스트를 프롬프트에 길게 이어 붙여 비용이 비쌌던 문제를 해결합니다. 문서를 대표하는 고차원 벡터인 ‘임베딩’을 마치 이미지나 음성처럼 다른 종류의 데이터(Modality)로 취급하고, 이를 LLM이 직접 이해할 수 있도록 ‘모달리티 퓨전’ 접근법을 사용합니다.
이를 통해 문서 텍스트 없이 단 하나의 특수 토큰으로 문맥을 압축하면서도, 기존 RAG와 대등하거나 더 나은 성능을 보이고, 추론 계산량(FLOPs)은 3.5배 이상 줄이는 데 성공했습니다.
A.1.1) 기존 RAG의 문제점
RAG는 LLM의 지식을 외부 데이터베이스로 확장하여 최신 정보나 특정 도메인 지식에 대한 답변 능력을 높이는 강력한 기술입니다. 하지만 다음과 같은 명확한 한계가 있습니다.
- 높은 추론 비용: 검색된 문서(보통 수백 개의 토큰)를 사용자의 질문과 함께 LLM에 입력하기 때문에, 입력 시퀀스가 매우 길어집니다. 이는 GPU 메모리 사용량과 계산량을 크게 증가시켜 추론 속도를 저하시킵니다.
- 컨텍스트 길이 제한: LLM은 한 번에 처리할 수 있는 토큰의 수(컨텍스트 창)에 제한이 있습니다. 여러 개의 문서를 참고해야 할 경우, 이 길이를 쉽게 초과할 수 있습니다.

- w/o Retrieval (검색 미사용): LLM이 “Motel 6”라는 정답을 몰라 “Marriott International”이라는 오답을 생성합니다.
- RAG (일반 검색 증강): Motel 6에 대한 긴 문서(약 175 토큰)를 프롬프트에 추가하자 정답을 맞춥니다. 하지만 입력이 10배 이상 길어졌습니다.
- xRAG (제안 기법): 긴 문서 대신 단 하나의 특수 토큰 [X]를 추가했는데도 정확히 “Motel 6”라는 정답을 맞춥니다.
A.1.2) xRAG: 제안된 방법론
xRAG는 이 문제를 ‘모달리티 퓨전(Modality Fusion)‘이라는 관점에서 해결합니다. 문서 임베딩을 LLM이 이해할 수 있는 언어적 표현으로 변환하는 것이 핵심입니다.
A.1.2.1) 아키텍처
xRAG의 구조는 다음과 같습니다.
- Retriever (검색기): 사용자의 질문에 가장 관련 있는 문서를 검색하고, 해당 문서의 임베딩 벡터 E를 반환합니다. 이 부분은 기존의 사전 훈련된 모델을 그대로 사용하며, **훈련 중에 고정(frozen)**됩니다.
- Projector (프로젝터): 이 논문에서 제안하는 핵심 모듈입니다. 문서 임베딩 E를 입력받아 LLM의 단어 임베딩 공간과 동일한 차원의 벡터로 변환하는 작은 2계층 MLP(Multi-Layer Perceptron)입니다. 훈련되는 유일한 부분이며, 전체 모델 파라미터의 0.1% 미만을 차지합니다.
- Language Model (LLM): 기존의 LLM을 그대로 사용하며, **훈련 중에 고정(frozen)**됩니다. Projector를 통해 변환된 문서 벡터와 사용자의 질문을 함께 입력받아 답변을 생성합니다.
A.1.2.2) 2단계 훈련 전략
LLM이 생소한 문서 임베딩 벡터를 이해하도록 만들기 위해, 저자들은 2단계 훈련 전략을 고안했습니다.
- 1단계: Paraphrase Pre-training (의역 사전훈련)
- 목표: Projector가 변환한 벡터 W(E)가 원본 문서 텍스트 D와 동일한 의미를 갖도록 학습시킵니다.
- 방법: LLM에게 W(E)가 포함된 프롬프트(예: “배경: [X] 이 텍스트는 다음과 같이 의역할 수 있습니다:“)를 주고, 원본 문서 D를 생성하도록 훈련합니다. 이를 통해 LLM은 [X] 토큰이 실제 어떤 텍스트 내용을 담고 있는지 학습하게 됩니다.
- 2단계: Context-aware Instruction Tuning (문맥 인지 명령어 튜닝)
-
목표: 실제 질의응답(QA), 요약 등 구체적인 태스크에서 W(E)를 효과적으로 사용하도록 미세조정합니다.
-
방법: 두 가지 손실 함수(loss function)를 함께 사용합니다.
- Language Modeling Loss (Lnll): 주어진 문맥 W(E)과 질문을 바탕으로 올바른 정답을 생성하도록 학습합니다. (표준적인 지도학습)
- Self-Distillation Loss (Lkl): xRAG 모델의 답변 확률 분포가, 압축되지 않은 전체 문서 텍스트를 본 일반 RAG 모델의 답변 확률 분포와 최대한 유사해지도록 학습합니다. 이는 일종의 “모범 답안 따라하기”로, xRAG가 더 견고하고 안정적으로 작동하도록 돕습니다.
-
A.1.3) 주요 실험 결과 및 분석
A.1.3.1) 성능 비교 (Table 1)
xRAG는 6개의 지식 집약적 벤치마크에서 뛰어난 성능을 보였습니다.
- 압도적 효율성: 평균 175.1 토큰 길이의 문서를 단 1개의 토큰으로 압축했습니다.
- 경쟁력 있는 성능: 다른 압축 기법(LLMLingua)을 크게 능가했으며, 압축하지 않은 일반 RAG와 대등하거나, Mixtral-8x7B 모델에서는 오히려 더 좋은 성능을 기록했습니다. (RAG 대비 +1.7%p)
- 이는 극단적인 압축률에도 불구하고 정보 손실이 거의 없음을 의미합니다.
A.1.3.2) 계산 효율성 (Table 2)
xRAG는 일반 RAG에 비해 훨씬 효율적입니다.
- 추론 시간 (CUDA Time): 평균 1.64배 빠름
- 계산량 (GFLOPs): 평균 3.53배 적게 사용
A.1.3.3) 견고성 분석 (Resilience & Boost Rate)
RAG 시스템은 때로 관련 없거나 오해의 소지가 있는 문서를 검색해 오히려 성능이 떨어지는 경우가 있습니다. 저자들은 이를 측정하기 위해 새로운 지표를 도입했습니다.
- Resilience Rate (회복률): 검색 없이도 정답이었던 문제를 검색 후에도 계속 정답으로 맞추는 비율.
- xRAG는 **평균 84.9%**로, 일반 RAG(78.9%)보다 훨씬 높았습니다. 이는 xRAG가 잘못된 정보에 덜 흔들리고 견고하다는 것을 의미합니다.
- Boost Rate (향상률): 검색 없이는 틀렸지만 검색 덕분에 정답을 맞추게 된 비율.

위 내용은 xRAG의 견고성을 보여주는 좋은 예시입니다. 질문에 대해 오해의 소지가 있는 문서가 검색되었을 때,
- RAG: 문서에 있는 잘못된 정보(“Bill Saluga”)를 그대로 답변합니다.
- xRAG: 잘못된 문맥 정보에 의존하지 않고, LLM이 원래 가진 지식을 활용해 정답(“Groucho Marx”)을 생성합니다.
A.1.4) 결론 및 의의
xRAG는 RAG를 ‘멀티모달’ 문제로 재해석하여, 문서의 텍스트가 아닌 임베딩 자체를 LLM이 직접 활용하게 하는 새로운 패러다임을 제시했습니다.
- 혁신적인 압축: 단일 토큰으로 문맥을 극단적으로 압축하여 RAG 시스템의 추론 비용을 획기적으로 절감했습니다.
- 성능과 효율의 양립: 압축하지 않은 RAG와 대등한 성능을 유지하면서 효율성을 크게 높였습니다.
- 견고성 향상: 잘못된 검색 결과에 대한 강인함을 보여주어, 실제 서비스 환경에서 RAG 시스템의 신뢰도를 높일 수 있는 가능성을 열었습니다.