본문 바로가기

AI

[ AI/MCP ] REFRAG: RAG

개인적으로 MCP는 아직도 LLMs에 가장 화두이다.
LLMs 자체의 지식은 언제 업데이트 전까지 한계를 갖고 있기 때문이다.

하지만 MCP를 활용해 외부에서 데이터를 갖고 올 경우 단순하게 외부대 데이터 99 : 내부 데이터 1로 분석을 시작하면 당연히 외부데이터 가중치가 많이 적용된다. 그런데 만약 필요한 데이터를 제거하고 거기다 속도까지 더 빨리 가져온다면?

나아가 메모리에 한계가 있는데, 불필요한 데이터 덩어리가 함께 LLMs 전달된다면?

 

이번 논문에서는 기존 MCP의 기술적 한계를 바탕으로 데이터의 편집(?) 알고리즘을 변경함으로써,
더 빠르고 더 효율적인 데이터 처리를 할 수 있다고 한다.

 

"RAG 과정에서 일어나는 계산의 대부분은 사실 불필요하다."

긴 컨텍스트 처리의 문제점

긴 컨텍스트 입력은 LLM 시스템에 두 가지 주요한 부정적 영향

1. 시스템 지연 시간 (Latency):
입력 컨텍스트가 길어질수록 LLM이 처리해야 할 정보의 양이 기하급수적으로 증가합니다.
이는 첫 번째 토큰이 생성되기까지의 시간(Time-to-First-Token, TTFT)을 포함한 전체 응답 시간을 크게 지연시키는 직접적인 원인이 됩니다.

2. 메모리 요구량 (Memory Demand):
LLM은 디코딩 과정에서 이전 토큰들의 계산 결과를 키-값(KV) 캐시라는 메모리 공간에 저장합니다.
컨텍스트가 길어지면 이 캐시에 필요한 메모리 용량이 막대하게 증가하여 시스템의 전체 처리량을 심각하게 저하시킵니다.

 

 

핵심 원인 : 주의 패턴 (Attention Patterns):

검색된 각 구절은 다양성을 확보하거나 중복을 제거하는 과정에서 서로 낮은 의미적 유사성(low semantic similarity)을 보이는 경향이 있습니다. 이로 인해 LLM의 어텐션(attention) 메커니즘은 관련 있는 정보 블록에만 집중하는 '블록 대각선 주의 패턴(block-diagonal attention patterns)'을 나타냅니다. 이는 어텐션 계산이 각 문서 블록 내부에서만 집중적으로 일어나고, 서로 다른 블록 간에는 거의 상호작용이 없음을 의미합니다. 결과적으로 LLM은 컨텍스트의 대부분 영역에 대해 불필요한 계산을 수행하며 막대한 연산 자원을 낭비하고 있습니다.

 

REFRAG의 발견: 핵심만 빠르게 훑어보는 기술

예를 들어 서사가 있다면 책 더미 전체를 무작정 읽는 대신,
먼저 각 책의 목차와 색인을 빠르게 훑어보고 질문과 가장 관련 있는 핵심 단락 몇 개만 정확히 찾아냅니다.

REFRAG 기술의 출발점은 바로 이 한 가지 발견이었습니다.

이 발견을 바탕으로, REFRAG는 '압축(Compress), 감지(Sense), 확장(Expand)'이라는 3단계의 효율적인 정보 처리 프로세스

1. 압축 (Compress): 똑똑한 사서가 책 본문을 전부 읽지 않고 목차와 요약만 훑어보듯, REFRAG는 AI에게 전체 문서 뭉치를 그대로 주는 대신 핵심 정보만 간추린 '요약본'을 먼저 만듭니다. 이 단계에서부터 불필요한 정보는 과감히 뒤로 밀려납니다.

문맥 토큰을 고정 길이 청크로 분할: 검색된 문서들(context tokens)을 c개의 청크로 나누며, 각 청크는 l개의 토큰으로 구성됩니다
인코더 모델 사용: 경량 인코더(예: RoBERTa)가 각 청크를 처리하여 단일 청크 임베딩으로 압축합니다
프로젝션 레이어: 청크 임베딩을 디코더의 토큰 임베딩 차원에 맞게 변환합니다

결과: 원래 수천 개의 토큰을 수십 개의 청크 임베딩으로 압축 (예: 압축률 r=16이면 16배 압축)

 

2. 감지 (Sense): 사서가 훑어본 요약 내용을 바탕으로 질문 답변에 결정적인 정보가 담긴 '단 몇 페이지'를 정확하게 감지해내듯, REFRAG는 압축된 정보 속에서 답변 생성에 반드시 필요한 핵심 데이터 조각을 정확히 식별합니다.

3. 확장 (Expand): 사서가 찾아낸 핵심 페이지만 집중적으로 읽고 완전한 답변을 만들어내듯, REFRAG는 감지된 핵심 데이터 조각만을 활용하여 최종 답변을 생성합니다. 이로써 정답과 무관한 정보를 처리하는 데 드는 모든 계산을 완전히 건너뜁니다.

혼합 입력 처리: 디코더가 압축된 청크 임베딩과 원본 토큰을 혼합하여 처리합니다

압축된 청크 i: 청크 임베딩 e_i 사용
확장된 청크 j: 원본 토큰들 {t_j1, t_j2, ..., t_jl} 사용

 

 

결론

REFRAG는 압축률 16배(r=16)로 TTFT를 30.85배 가속화하며, 이전 연구 대비 3.75배 개선된 성능을 보입니다. 또한 perplexity 손실 없이 LLM의 문맥 크기를 16배 확장할 수 있습니다

 

개인적인 생각으론, 외부에서 데이터를 수집해와도 전반적으로 연결이 되지 않는다는 것.

따라서, 키워드와 유사도가 높은 블록/압축된 청크만을 사용한다는 것이 유의미한 결과

나아가 그것을 

 

 

https://arxiv.org/abs/2509.01092

728x90