https://arxiv.org/abs/2509.01092
REFRAG: Rethinking RAG based Decoding
Large Language Models (LLMs) have demonstrated remarkable capabilities in leveraging extensive external knowledge to enhance responses in multi-turn and agentic applications, such as retrieval-augmented generation (RAG). However, processing long-context in
arxiv.org
https://github.com/facebookresearch/refrag
일단 Git도 있는데 지금은 접근 막아놨네요
검색을 통해 관련 있는 text를 가져오지만 질의와 관련있는 부분은 매우 적고, Attention 패턴에서 문제가 생긴다.
-> 지연 시간을 개선하기 위해 압축을 진행한다. 16배 정도에서 최적의 효과가 나타났으며 정확도 손실 없이 상당한 속도 향상을 보여준다.
검색된 문서의 토큰을 입력으로 사용하는 대신 임베딩을 통해 압축된 표현으로 디코더에 직접 제공한다 .
이는 입력 길이를 줄여 토큰 할당 효율성을 높이고, 청크 임베딩을 재사용하여 중복 계산을 제거하며 Attention 복잡도를 줄인다.

ㅇ? 읽어 볼수록 내 아이디어랑 똑같아서 지금 멍하긴 한데...
컨택스트(문서)를 인코더를 통과하여 embedding으로 만듬. 이 때 입력되는 문서(s토큰)는 내가 원하는 토큰(k토큰) 수 만큼 짤라서 인코더에 넣어 하나의 임베딩으로 만들고, 그 것을 디코더의 embedding 에 맞게 차원을 맞춰준다.
이렇게 되면 문서의 입력이(s / k)만큼만 들어가므로 입력 길이가 대략 k배 감소하여 지연시간과 메모리 사용량을 줄인다.
TTFT - 첫 토큰 생성 지연 시간
TTIT - 각 후속 토큰의 생성 시간
Throughput - 단위 시간당 생성 토큰 수

입력이 늘어날 수록 확실히 장점을 보이는 것을 볼 수 있다.
학습
- 복원 학습 - 인코더에 토큰 t개 넣고, dicoder에서 그대로 복구 하도록
이 때는 디코더는 얼리고, 인코더랑 projection layer만 학습 함
-> 이 동안 컨텍스트 메모리에 의존하도록 학습을 하게 되고, 이 학습으로 인 디코더가 정렬되면 CPT 시작
이제 여기서 바로 생성하도록 하는 것은 어렵다. - 청크 수를 늘려가며 1 ~ L개의 청크 임배딩을 받을 수 있도록 학습
- 선택적 토큰 압축을 도입하여 중요한 컨텍스트 청크는 압축하지 않도록 하여 정답 예측을 개선함
-> 어떤 청크를 원형으로 유지할지에 대해서는 다음 문단 예측의 퍼플렉시티를 음의 보상으로 삼는 RL 정책이 결정


성능이 좋다..... ㅠㅠㅠㅠㅠ
| 문제 상황 | • RAG는 검색 문단을 길게 붙이지만, 질의와 직접 관련된 문단은 소수 → 블록 대각선형 희소 어텐션 발생 • 긴 문맥은 KV 캐시 메모리↑ · TTFT(첫 토큰 지연)↑ · 처리량↓로 실사용 병목 |
| 방법론 | • Compress → Sense → Expand: 컨텍스트를 k-토큰 청크로 나눠 경량 인코더로 청크 임베딩을 만들고, 투영층으로 디코더 토큰 임베딩 차원에 맞춰 직접 디코더 입력으로 사용 ⇒ 입력 길이 ≃ k배 단축 • Compress-anywhere: 접두부뿐 아니라 임의 위치 압축해도 오토리그레시브(인과성) 유지 → 멀티턴/요약에도 적용 • 선택적 압축(RL): 경량 정책이 중요 청크만 토큰으로 확장(나머지는 임베딩 유지) |
| 실험 | • 학습 데이터: SlimPajama 중 Book/ArXiv만 선별 20B 토큰(50/50) — 장문 중심 세팅 • 베이스라인: LLaMA-2-7B 축으로 통일(공정 비교), CEPE/REPLUG/LLaMA-32K 포함 • 평가: PPL(log)·TTFT/TTIT/Throughput, s+o=4096(기본), s∈{4096, 8192, 16384}(확장), RAG·멀티턴·요약 |
| 결과 | • TTFT 가속: s=16384에서 k=16 → 16.53×(캐시)/8.59×(비캐시), k=32 → 최대 32.99× • Throughput: 최대 6.78×(CEPE 대비도 우수) • 품질: k=16에서 CEPE 대비 평균 9.3% PPL 개선, k=32에서 CEPE와 유사 • 컨텍스트 확장: LLM 창 16× 확장 시나리오 시연 |
| 기여 | • 디코더 파라미터·아키텍처 무변경으로 지연·메모리 대폭 절감하는 새 디코딩 메커니즘 • 청크 임베딩을 직접 디코더 입력으로 사용 → 입력 길이 단축, 사전계산 임베딩 재사용, 어텐션 복잡도: 토큰 수가 아닌 청크 수 기준 • Compress-anywhere + RL 선택적 확장: 멀티턴/요약 등 일반 장문 과업 지원, 동일 지연에서 더 많은 문맥을 효과적으로 소비 |
| 한계·주의 | • 압축률(k) 과대 시 성능 저하: 어블레이션에서 고압축률·커리큘럼/재구성 부재 시 품질 악화 → 커리큘럼·재구성 단계 필수 • 정책(RL) 학습 단계가 추가(시스템 구성 복잡도 증가, 그러나 경량) • 비교·일반화 범위: 주로 LLaMA-2-7B 기준으로 검증 → 다른 디코더/도메인엔 재학습·튜닝 필요 |
REFRAG: Rethinking RAG-based Decoding — 한글 요약 (체계적·상세)
한 눈에 보는 요약
- 문제: RAG에서 긴 문맥을 디코딩할 때 TTFT·메모리(KV 캐시)·처리량이 급격히 악화됨. 대부분의 검색 문단이 질의와 약하게 연관되어 블록 대각선(attention) 희소성이 생기는데, 기존 방법은 이 구조를 제대로 활용하지 못함.
- 핵심 아이디어 (REFRAG): 검색으로 얻은 문단을 토큰이 아닌 ‘청크 임베딩’(encoder로 압축) 형태로 디코더에 직접 주입하고, 필요한 청크만 RL 정책으로 선택적 확장(토큰으로 복원)하는 “compress-sense-expand” 디코딩 프레임워크. 모델 아키텍처나 디코더 파라미터 변경 없이 적용됨.
- 효과: 이론적으로 TTFT·처리량 최대 k²배 가속 가능(긴 문맥), 실험적으로 TTFT 최대 32.99×(k=32), 처리량 최대 6.78× 가속을 달성하면서 퍼플렉시티·정확도 손실 없음.
- 적용 범위: **임의 위치 압축(compress-anywhere)**을 지원해 다중 턴·요약 등 RAG 이외의 장기 문맥 작업에도 적용 가능.
1) 무엇을 해결하나? (Problem)
- RAG에서는 재순위·중복 제거로 인해 문단 간 상호작용이 희박→ 대부분의 cross-attention이 ‘0’에 가깝다. 그럼에도 전체 토큰에 대해 KV 캐시를 만들고 연산하는 것은 낭비.
- 긴 컨텍스트는 KV 캐시 메모리 선형 증가, TTFT는 문맥 길이에 따라 급증, 처리량 저하라는 시스템 병목을 일으킴.
2) 어떻게 풀었나? (Method — “Compress, Sense, Expand”)
2.1 모델 구성
- 디코더: 기존 LLM (예: LLaMA 계열).
- 라이트웨이트 인코더: 예: RoBERTa로 s개의 문맥 토큰을 길이 k의 청크 L = s/k로 분할 후 각 청크 임베딩 (c_i) 산출 → 투영층 (ϕ)로 디코더 토큰 임베딩 차원으로 사상 (e^{cnk}_i = ϕ(c_i)).
- 입력: 질의 토큰 임베딩 ({e_1,\dots,e_q}) + 청크 임베딩들 ({e^{cnk}_1,\dots,e^{cnk}_L}) → 디코더가 답변 생성. 입력 길이가 ≈ k배 단축되어 KV 캐시·연산량이 크게 감소.
2.2 Continual Pre-Training (CPT) + 재구성(Alignment) + 커리큘럼
- CPT 과제: 앞의 (s)토큰을 보고 다음 (o)토큰(“다음 문단”)을 예측하여 인코더-디코더 정렬.
- 재구성(Alignment) 단계: 디코더 동결하고 인코더+투영층만 학습, 입력 (x_{1:s}) 를 그대로 복원하도록 하여 정보 보존·사상 일치 유도. 이후 디코더 해동해 CPT 진행. 성공에 필수로 확인됨(어블레이션).
- 커리큘럼 러닝: (k)가 커질수록 조합 폭이 (V^k)로 폭증→ 난이도를 점증식으로 배치(단일 청크 → 다청크). 이 역시 성공에 중요.
2.3 선택적 압축(Selective Compression; RL)
- 동기: 모든 청크를 임베딩으로 대체하면 빠르지만, 핵심 청크는 원토큰 그대로 주는 편이 정확도에 유리.
- 정책: 두 층 트랜스포머로 된 경량 정책 네트워크가 청크 임베딩들을 입력으로 받아 **T′개 청크를 ‘토큰으로 확장’**하도록 순차적으로 선택(Pointer-style 마스킹). 보상은 다음 문단 예측 log-perplexity의 음수. PPO(클리핑) + GRPO-style baseline으로 안정화. 오토리그레시브 구조 유지 및 임의 위치에서 압축/확장 가능.
3) 왜 효과적인가? (이론 · 시스템 해석)
- 이론: 짧은 문맥에서는 TTFT·처리량 ≈ k×, 긴 문맥에서는 **TTFT·처리량 ≈ k²×**까지 가속 가능. KV 캐시 메모리는 ≈ k× 절감.
- 직관: 토큰 단위가 아니라 청크 단위로 self/cross-attention 계산, 주어진 블록-대각선 희소성을 자연스럽게 활용.
4) 실험 (셋업·벤치마크·결과)
4.1 셋업
- 사전학습 데이터: SlimPajama 중 Book/ArXiv 도메인만 사용, 총 20B 토큰(각 50%). 장문 데이터 중심 선택.
- 베이스라인: LLaMA-2-7B 기반 비교(이전 연구와 공정 비교 목적).
4.2 언어모델 퍼플렉시티(비RAG, 긴 문맥)
- 표 2(대표): REFRAG(8/16/32) 가 CEPE 보다 고르게 낮은 log-PPL(↓)을 보이며, LLaMA-No-Context/REPLUG 대비 개선.
- 가속 효과(Figure 2): k=16, s=16384에서 TTFT 16.53×(캐시)/8.59×(비캐시), 처리량 최대 6.78×, k=32에서 TTFT 32.99×.
4.3 RAG (강/약 랭커 시나리오)
- 같은 #passages(동일 회수) 조건에선 LLaMA와 유사(약한 리트리버에선 소폭 우위), 동일 지연시간(입력 길이) 조건에선 REFRAG가 유의미하게 상회. 즉 동일 레이턴시에서 더 많은 문맥을 effectively 소비.
4.4 선택적 압축의 이점
- 동일 압축률(예: 8×)이라도, “REFRAG16 + RL 선택” > “REFRAG8(고정)”: RL 정책이 중요한 청크를 토큰으로 남겨 품질을 견인.
5) 기존 방법과의 차별점
- CEPE: 프리픽스 한정(인과성 파괴)으로 멀티턴·요약 불리, 토큰 압축 부재로 디코딩 지연 해소 한계. REFRAG는 임의 위치 압축·사전 계산 청크 임베딩 재사용·선택적 확장을 지원.
- Compressive Transformer/Prompt Compression: KV 캐시 압축만 하거나(속도 개선 제한), 순차 요약/토큰 프루닝으로 사전 계산·임의 위치 사용이 어렵다. REFRAG는 사전 계산 가능한 청크 임베딩을 프롬프트 어디에나 배치 가능.
6) 결과 표 (핵심만)
항목 REFRAG 요점| 아키텍처 변화 | 디코더 무변경, 인코더+투영층만 추가 |
| 입력 대체 | 토큰 대신 청크 임베딩 주입, 필요 시 RL로 토큰 확장 |
| 이론 가속 | 짧은 s: ≈k×, 긴 s: ≈k²×(TTFT·Throughput) |
| 실험 가속 | k=16: TTFT 16.53×, k=32: TTFT 32.99× |
| 품질 | CEPE 대비 동급/우수한 log-PPL, RAG에선 동일 레이턴시 조건 우위 |
| 범용성 | 임의 위치 압축 → 멀티턴/요약 등 장문 작업에 적용 |
7) 단계별(Step-by-Step) 학습 레시피
- 재구성 정렬(Alignment)
- 디코더 고정, 인코더+투영층만 학습. (x_{1:s}) → (x_{1:s}) 복원. 커리큘럼으로 단일 청크 → 다청크 점증.
- CPT(다음 문단 예측)
- 디코더 해동, (x_{1:s})로 (x_{s+1:s+o}) 예측. 인코더-디코더 정렬 강화.
- 선택적 압축 사전학습
- 임의 위치에 혼합 입력(청크 임베딩/토큰) 노출, p 비율만 토큰 유지하도록 랜덤 샘플링해 혼합 입력 처리 능력 습득.
- RL 정책 학습(확장 결정)
- 두 층 트랜스포머 정책 (\pi_\theta), PPO(클리핑)+GRPO-baseline. 보상= (-)log-PPL. 순차 선택으로 오토리그레션 보존.
- SFT(다운스트림 적응)
- RAG/멀티턴/요약 등 태스크별 지도 미세조정. (메서드 개요 참조)
8) 장점 · 한계 · 주의점
장점
- 대규모 가속(특히 긴 s에서 k² 근사)과 메모리 절감을 아키텍처 무변경으로 달성.
- 사전 계산 임베딩 재사용으로 반복 질의에 유리(웹 규모 RAG).
- 임의 위치 압축으로 멀티턴/요약 등 광범위 적용.
한계/주의
- 인코더 품질·k 선택에 민감: k가 너무 크면 임베딩 정보 손실↑ → 재구성·커리큘럼이 필수.
- 정책 학습 비용: RL 정책은 추가 학습 단계가 필요(다만 경량).
- 베이스라인·모델 종속성: 본 논문은 주로 LLaMA-2-7B 기반 비교에 초점을 맞춤. 다른 기반으로 일반화 시 재학습 필요.
9) 실험자 관점 적용 가이드(HEGA/임베딩->생성 하이브리드와의 접점)
- 엔코더/디코더 분할: 기존 생성 LLM을 디코더로 두고, 별도 인코더+투영층을 추가해 문맥을 청크 임베딩으로 전처리. (HEGA의 “임베딩 단계→생성 단계” 분할과 상응)
- 사전 계산 파이프라인: 리트리버(FAISS 등) 뒤에 청크 임베딩 캐시를 구축해 TTFT 단축.
- 정렬 학습: 재구성→CPT 커리큘럼을 반드시 적용해 투영층·디코더 적응을 확보.
- 선택적 확장: 정책 네트워크로 “질의-청크” 중요도를 판단해 토큰 확장 대상을 소수만 선택. (초기엔 perplexity-desc 휴리스틱으로 워밍업 후 RL 전환 가능)
- k·p 튜닝: 목표 지연시간/메모리 예산에 맞춰 압축률 k와 토큰 확장 비율 p를 그리드/밴드잇 탐색.
10) 비교·재현을 위한 체크리스트
- 데이터: SlimPajama Book/ArXiv 20B(50/50).
- 베이스라인 표준화: LLaMA-2-7B 기반 비교(CEPE/REPLUG 포함).
- 핵심 지표: TTFT, TTIT, Throughput, log-PPL; RAG는 동일 레이턴시 vs 동일 #passages 두 축 모두 보고.
11) 결론
REFRAG는 청크 임베딩 기반 디코딩 + RL 선택적 확장으로 **장문 컨텍스트의 근본 병목(TTFT·KV 캐시·처리량)**을 풀어, 동일/낮은 지연시간에서 더 높은 성능을 가능하게 한다. 아키텍처 무변경·임의 위치 압축·사전 계산 재사용이 실용성을 높이며, 특히 RAG와 멀티턴 응용에서 두드러진다.
부록: 자주 묻는 포인트
- 왜 CEPE보다 빠른가? CEPE는 프리픽스 전처리에 제약, KV 투영 추가 연산으로 TTIT 악화. REFRAG는 사전 계산 임베딩과 임의 위치 압축으로 디코딩 병목을 직접 제거.
- RL이 꼭 필요한가? 고정 압축률 대비, RL-선택이 같은 압축률에서도 더 낮은 PPL/더 높은 태스크 성능을 보임.
원문: REFRAG: Rethinking RAG based Decoding (Oct 14, 2025). 주요 수치·주장들은 본문과 표/그림에 근거함.
아래 내용은 업로드하신 REFRAG 논문 본문(및 부록)의 관련 연구 정리와, 그 비교를 통해 도출한 **장점·단점(주의점)**입니다. 모든 비교 포인트는 논문에 명시된 기술적 주장과 실험 결과에 근거했습니다.
관련 연구 맵 & REFRAG의 위치
분류 대표 방법 핵심 아이디어 REFRAG와의 차이/한계(논문 근거)| RAG: 프롬프트 접두부 결합 | REPLUG, 단순 전처리/앙상블 | 검색 문단을 프롬프트에 그대로 연결해 생성 | 디코더에서 압축 없음→ 긴 컨텍스트 시 KV 캐시·TTFT 병목 지속. REFRAG는 문단을 청크 임베딩으로 압축해 디코더 입력 길이를 k배 줄임. |
| Fusion-in-Decoder(FiD) | Izacard & Grave (2021) | 각 문단을 인코더로 병렬 처리 후 디코더가 결합 | 교차-문서 어텐션 제거로 일부 가속이나, 디코더 측 압축 부재로 추가 지연 완화 한계. |
| 긴 문맥 효율화(일반) | Longformer/Performer/압축 어텐션 | 어텐션 복잡도 축소 | 메모리(KV) 문제 미해결인 경우 다수이며, RAG 특유의 희소 구조(블록 대각선)까지는 활용하지 못함. REFRAG는 RAG의 희소·블록 구조를 청크 단위 표현으로 직접 활용. |
| StreamingLLM 등 | Attention sink | KV 캐시 메모리 절감 | 프리필(프롬프트 주입) 단계 TTFT는 줄이지 못함. REFRAG는 TTFT 자체를 큰 폭으로 단축. |
| CEPE | Yen et al., 2024 | 컨텍스트 토큰을 토큰 임베딩으로 투영해 크로스-어텐션 | 프리픽스(접두부) 한정이라 멀티턴/요약 등 임의 위치 압축 불가, KV 투영 추가 연산으로 TTIT에서 불리. REFRAG는 compress-anywhere(인과성 유지) + 토큰 자체 압축으로 TTFT/처리량 우위. |
| Compressive Transformer 계열 | Rae et al., 2020 등 | KV 캐시 압축으로 메모리 절감 | TTFT 개선 없음, 사전 계산/재사용 어려움, from-scratch 학습 필요. REFRAG는 사전 계산 가능한 청크 임베딩을 그대로 디코더 입력으로 사용. |
| PCC(동시 연구) | Dai et al., 2025 | 과거 컨텍스트를 요약 임베딩 메모리로 저장·조회 | 프리픽스 한정·임의 위치 확장/접기 불가. REFRAG는 임의 위치 압축/확장을 지원. |
RAG 컨텍스트의 희소·블록 대각선 구조와 중복/중요도 편차를 활용해, 토큰 대신 ‘청크 임베딩’을 디코더에 직접 주입하는 점이 REFRAG의 핵심 차별점입니다. 이로써 입력 길이가 ≃k배 단축되어 KV 캐시·어텐션 연산·TTFT를 근본적으로 줄입니다.
REFRAG의 장점(논문 근거)
- 아키텍처 무변경·낮은 통합 비용
디코더 구조나 파라미터를 바꾸지 않고, 경량 인코더+투영층만 추가해 동작합니다. - Compress-anywhere(인과성 유지) → 멀티턴/요약 등 광범위 적용
접두부 한정이 아닌 임의 위치 압축을 지원해, 멀티턴 RAG·요약처럼 컨텍스트가 중간·후반에 생기는 작업에도 사용됩니다. - TTFT·처리량 대폭 개선(이론 k~k², 실험 최대 32.99×/6.78×)
짧은 s에서는 ≈k×, 긴 s에서는 ≈k²× 가속이 가능(이론). 실험적으로 TTFT 16.53×(k=16, s=16384)/32.99×(k=32), Throughput 최대 6.78×. - 동일 레이턴시에서 더 많은 문맥 소비 → 성능 이득
강/약 리트리버 모두에서 동일 #passages 조건은 LLaMA와 유사(약한 리트리버에선 소폭 우위), 동일 지연시간(예: 8 passages vs 1 passage)에서는 REFRAG가 유의미한 성능 향상. - 선택적 압축(RL)로 ‘중요 청크만 토큰 확장’
같은 압축률에서도 RL 정책 > 휴리스틱/랜덤. (Perplexity-desc/asc/Random 대비 RL이 더 낮은 log-PPL) - 사전 계산 임베딩 재사용
리트리버 단계에서 이미 계산한 청크 임베딩을 재사용함으로써 중복 계산을 줄이고 TTFT를 낮춥니다.
REFRAG의 단점·주의점(논문 근거 및 한계 범위)
- 압축률(k) 상한·정보 손실 민감성
압축률이 커질수록 성능 저하가 발생하며, k=64는 과도(성능 급락). 실용적 상한을 고려해 튜닝이 필요합니다. - 정책(RL) 학습 단계가 추가
선택적 압축은 순차 선택 RL 정책을 학습해 청크 확장 대상을 고릅니다(보상: 다음 문단 PPL 기반). 학습 절차 추가는 불가피합니다. - 비교·재현 범위의 제한
주요 비교는 LLaMA-2-7B 기반 표준화 세팅에서 수행되었습니다(공정 비교 목적). 다른 디코더·도메인으로의 일반화에는 추가 학습이 필요할 수 있습니다. - CEPE 대비 TTIT 우위지만, 구조적 선택의 트레이드오프 존재
CEPE는 프리픽스 한정이고 추가 투영 연산 때문에 TTIT가 LLaMA보다 악화될 수 있습니다. REFRAG는 이를 피하지만, 인코더 계산(캐시 없을 때)은 남습니다(다만 경량·병렬 처리). - 데이터 편향 가능성
사전학습은 SlimPajama(Book/ArXiv) 20B로, 장문 중심 도메인에 최적화되어 있습니다. 다른 도메인(짧은 문장 중심 과제 등) 전이에선 재적응이 유리할 수 있습니다. - 엔코더 규모의 한계적 이득
디코더(7B→13B) 확장은 손실 크게 감소시키지만, RoBERTa-Base→Large 인코더 확장 효과는 제한적(CPT 데이터 한정 시 특히). 인코더는 과대해도 이득이 작을 수 있음.
핵심 비교 포인트 (요약)
- CEPE vs REFRAG: CEPE는 접두부 전처리로 범용성 제한·TTIT 악화 사례, REFRAG는 임의 위치 압축 + 토큰 압축으로 TTFT·처리량 우위 및 멀티턴/요약 호환.
- FiD/단순 접두 결합 vs REFRAG: FiD/REPLUG은 디코더 입력 길이 자체를 줄이지 못해 KV/TTFT 병목이 남음. REFRAG는 청크 임베딩 입력으로 이를 직접 해소.
- Compressive Transformer/StreamingLLM vs REFRAG: 전자는 메모리 절감 위주(혹은 프리필 TTFT 미개선). REFRAG는 TTFT 그 자체의 대폭 단축을 목표로 설계.
실험적 근거(핵심 지표)
- TTFT/Throughput: k=16에서 TTFT 16.53×, k=32에서 TTFT 32.99×, Throughput 최대 6.78×. CEPE 대비 TTFT 3.75× 개선 사례 보고.
- RAG 성능(동일 레이턴시): (8 passages vs 1 passage 등) 평균 +1.22~1.93% 향상.
- 선택적 압축: RL 정책이 휴리스틱/랜덤 대비 더 낮은 log-PPL.
실무적 제안(연구 확장 관점)
- k, p(확장 비율) 탐색: 목표 지연시간·메모리 예산에 맞춰 k(압축률), p(토큰 확장 비율)을 그리드/밴딧식으로 튜닝. (k가 과대하면 성능 급락)
- 정렬→CPT→SFT 순서: 인코더–디코더 정렬(CPT) 후 다운스트림 SFT를 적용해 혼합 입력(임베딩+토큰)에 적응.
- 정책 학습: 초기엔 perplexity 기반 휴리스틱으로 워밍업 후 RL 정책으로 전환(논문은 RL 정책 정식 학습).
필요하시면, 위 표를 실험 설계 체크리스트(데이터셋, 압축률 후보, RL/휴리스틱 비교, 동일 레이턴시·동일 #passages의 2축 평가 지표) 형태로 재구성해 드리겠습니다.
좋아요. 업로드하신 REFRAG 논문을 바탕으로, 방법론(Architecture + 학습 레시피 + 선택적 압축/RL) 전체를 전문가 수준에서 단계별로 풀어쓸게요. 중간중간 수식·절차·예시를 함께 넣어 이해를 돕겠습니다.
1) 큰 그림: Compress → Sense → Expand
문제 배경
RAG 컨텍스트는 다수의 문단이 결합되지만, 실제 질의와 강하게 연관된 문단은 소수라 블록 대각선 형태의 희소 어텐션이 나타납니다. 그럼에도 모든 토큰을 디코더에 풀로 넣어 KV 캐시/어텐션을 계산하는 건 낭비입니다. REFRAG는 이 구조를 활용해 토큰 대신 ‘청크 임베딩’을 디코더 입력으로 쓰고, 꼭 필요한 청크만 **정책(RL)**으로 토큰으로 “펼쳐” 사용합니다. 이렇게 해서 TTFT·메모리·처리량을 대폭 줄이되 성능은 유지합니다.
2) 모델 아키텍처(입력·표현·디코딩)
2.1 구성 요소와 표기
- 디코더 (M_{dec}): 기존 LLM(예: LLaMA).
- 경량 인코더 (M_{enc}): 로버타 등.
- 입력 토큰을 질의 q개 + 컨텍스트 s개로 나누고, 컨텍스트를 길이 k 토큰씩 묶어 L := s/k 청크로 만듭니다. 각 청크 (C_i)를 인코더로 통과시켜 청크 임베딩 (c_i = M_{enc}(C_i))을 만들고, 투영층 (\phi)로 디코더 토큰 임베딩 차원에 맞춰 (e^{cnk}_i = \phi(c_i)) 로 매핑합니다. 최종 디코더 입력은
[
{e_1,\ldots,e_q,\ e^{cnk}_1,\ldots,e^{cnk}_L}
]
이며 답변 (y\sim M_{dec}(\cdot))를 생성합니다. 이렇게 하면 디코더 입력 길이가 ≃k배 단축되어 KV 캐시/어텐션 비용이 줄어듭니다.
2.2 Compress-anywhere (인과성 보존)
중요한 점은 압축을 접두부(prefix)만이 아니라 임의 위치에서 적용해도 오토리그레시브(인과) 구조가 깨지지 않도록 설계되었다는 것입니다. 따라서 멀티턴·요약 같은 작업에도 동일하게 적용됩니다.
3) 학습 레시피(정렬 → CPT → SFT)
REFRAG는 디코더를 바꾸지 않는 대신, 인코더+투영층과 디코더 간 의미 공간을 정렬하고 혼합 입력(토큰+청크 임베딩) 을 처리할 수 있게 단계적으로 학습합니다. 전체 큰 흐름은 아래와 같습니다.
3.1 재구성(Alignment) 단계 — 디코더 동결
- 목표: 인코더가 k토큰 정보를 압축하되 정보 손실을 최소화하고, 투영층 (\phi)가 청크 임베딩을 디코더 토큰 공간으로 정확히 사상하도록 정렬.
- 방법: 입력의 앞 s토큰 (x_{1:s})를 인코더에 넣고, 디코더를 동결한 상태에서 (x_{1:s})를 그대로 복원하도록 인코더+투영층만 학습합니다. 이렇게 해야 모델이 파라메트릭 기억보다 컨텍스트 메모리를 활용하도록 유도됩니다. 어블레이션에서 필수적임이 확인됩니다.
커리큘럼 러닝
- 이유: k가 커질수록 가능한 토큰 조합 수가 (V^k) 로 폭증하므로, 한 번에 긴 k를 맞추기 어렵습니다.
- 전략: 단일/짧은 청크 → 다청크/긴 청크로 난이도를 점증시켜 학습합니다. 없으면 재구성 성능 급락(어블레이션).
3.2 Continual Pre-training(CPT) — 다음 문단 예측(NPP)
- 목표: 압축된 컨텍스트로도 원래 디코더와 유사한 생성을 하도록 인코더–디코더를 정렬.
- 방법: 앞의 s토큰으로 다음 o토큰 (x_{s+1:s+o})을 예측하는 다음 문단 예측 과제로 인코더+디코더를 공동 학습합니다(재구성 후 디코더 해제).
3.3 SFT — 다운스트림 적응
CPT 이후, RAG/멀티턴 대화/요약 등 태스크별 지도 미세조정으로 실사용 적합성을 마무리합니다.
4) 선택적 압축(Selective Compression)과 RL 정책
동기: 모든 청크를 임베딩으로만 넣으면 빠르지만, 정답에 결정적인 소수 청크는 원 토큰으로 남기는 편이 더 정확할 수 있습니다. REFRAG는 혼합 입력(토큰+청크 임베딩) 을 자연스럽게 처리하도록 사전학습한 뒤, **어떤 청크를 토큰으로 “펼칠지”**를 경량 정책으로 학습합니다.
4.1 혼합 입력 사전학습
- 컨텍스트 (s) 토큰을 (L) 청크로 나눈 뒤, 임의의 (T' = pL)개 청크만 토큰 상태로 남기고(나머지는 임베딩) 디코더가 혼합 입력을 처리하도록 CPT를 연장합니다. 이렇게 해야 임의 위치에서의 압축/확장이 가능해집니다.
4.2 입력 배치와 목표
- 선택된 인덱스 집합 (l={l_j}{j=1}^{T'})에 대해, 입력 시퀀스 (E(x,l))는 **선택된 청크는 토큰들 ({e{ki},\dots,e_{ki+k-1}})**, 선택되지 않은 청크는 청크 임베딩 (e^{cnk}_i) 로 구성합니다. 이 입력으로 (x_{s+1:s+o}) 를 예측합니다. 인과성 보존, 접두부 외 임의 위치에서도 동작합니다.
4.3 정책 네트워크와 학습
- 정책: 두 층 트랜스포머 (g_\theta)가 청크 임베딩 ({c_i})를 입력받아 각 청크 로짓 (s_i)를 산출하고, 포인터 네트워크식 마스킹으로 이미 선택된 청크는 제외하면서 순차적으로 (T')개를 뽑습니다. (\pi_\theta(l_t=i) \propto \exp(s_i - n_i)).
- 목표/보상: PPO(클리핑) 형태의 목적함수로 안정화하고, GRPO 스타일의 그룹 보상 정규화로 분산을 줄입니다. 보상은 다음 문단의 음의 log-perplexity로 정의합니다(낮을수록 좋음).
- 효과: 같은 압축률에서도 RL 정책으로 선택적 확장을 하면, 고정 압축률 모델(예: REFRAG8 full) 보다 더 낮은 log-PPL을 보였습니다(다수 데이터셋에서).
5) 이론·시스템 관점: 왜 빨라지는가
- 입력 길이 축소: 토큰 대신 청크 임베딩으로 대체하면 디코더 입력 길이가 ≃ k배 줄어 KV 캐시 메모리/어텐션 비용이 감소합니다. 긴 컨텍스트일수록 이득이 커져 **TTFT·Throughput이 최대 (k^2)×**까지 가속됩니다(이론).
- 경험적 검증: (s=16384), (k=16)에서 TTFT 16.53×(캐시)/8.59×(비캐시), (k=32)에서 TTFT 32.99×. Throughput 최대 6.78×. CEPE 대비 TTIT도 유리(CEPE는 추가 투영 계산으로 TTIT 저하).
또한 압축 임베딩 사전계산/재사용이 가능하여 웹 규모 RAG에서 TTFT를 구조적으로 낮춤. 컨텍스트 창도 16× 확장 가능하다고 보고합니다.
6) 손에 잡히는 절차(예시 포함)
6.1 추론 파이프라인(의사코드)
- 질의/컨텍스트 준비: 질의 (x_{1:q}), 컨텍스트 (x_{q+1:q+s}).
- 청크화: 컨텍스트를 길이 (k)로 잘라 ({C_i}_{i=1}^L).
- 인코딩: 각 (C_i) → (c_i=M_{enc}(C_i)) → (\phi(c_i)=e^{cnk}_i). (사전계산/캐시 가능)
- 선택적 확장:
- 정책 (\pi_\theta) 가 ({c_i})를 보고 중요 청크 인덱스 (l={l_j}_{j=1}^{T'}) 선택. (순차, 마스킹)
- (i\in l)이면 원 토큰들 ({e_{k*i},\dots}), (i\notin l)이면 (e^{cnk}_i) 사용 → (E(x,l)) 구성.
- 디코딩: (M_{dec}(E(x,l)))로 생성. 오토리그레시브 보존, 임의 위치 압축 허용.
6.2 이해를 위한 미니 예시
- 세팅: (s=1024), (k=16) ⇒ (L=64) 청크, 질의는 “Who is the President of USA?”(논문 Figure 1 예시).
- 컨텍스트: 일부 문단엔 “Donald Trump is the President…” 같은 오류 문장이 섞여 있고(검색 잔재), 최신 문단엔 “He assumed office on Jan 20, 2025…” 같은 정답 단서가 있음(예시 텍스트).
- 진행:
- 사전계산: 64개 청크를 인코더→청크 임베딩 64개로 변환·캐시.
- 정책 선택: 정책 (\pi_\theta)가 최종 답에 영향이 큰 5개(예: 최신 취임 정보가 든 청크 등)를 토큰으로 확장하고, 나머지 59개는 임베딩으로 유지.
- 디코딩: 디코더 입력은 질의 토큰 + (5×k=80 토큰) + 59 임베딩. 입력 길이가 ≃k배 축소되어 TTFT/메모리 절감. 동시에 핵심 정보는 토큰 그대로라 정확도 유지/향상. (선택적 압축이 고정 압축보다 log-PPL 유리)
7) 요약 체크리스트(실험/재현 포인트)
- 정렬-학습 레시피: (1) 재구성(디코더 동결) → (2) CPT(NPP) → (3) 혼합 입력 사전학습 → (4) RL 정책 → (5) SFT. 각 단계는 어블레이션으로 중요성이 확인됨.
- 정책 학습: PPO 클리핑 + GRPO 베이스라인, 보상은 −log-PPL(next o). 포인터식 마스킹으로 중복 선택 방지.
- 복잡도/성능: 이론상 짧은 s → ≃k×, 긴 s → ≃k²× 가속. 실험상 TTFT 최대 32.99×, Throughput 최대 6.78×.
마무리 한 줄
REFRAG의 방법론 핵심은 **“토큰 대신 청크 임베딩으로 디코딩하되, 꼭 필요한 청크만 토큰으로 확장”**하는 compress-anywhere 프레임워크이며, 이를 재구성→CPT→RL의 단계적 학습으로 안정화·일반화했다는 점입니다. 이 구조가 RAG의 희소·블록 대각선 어텐션을 직접 겨냥하여 TTFT/메모리/처리량의 병목을 근본적으로 줄입니다.
좋아요. 업로드하신 REFRAG: Rethinking RAG-based Decoding 논문을 바탕으로, 결과·결론·한계·기여를 연구자 관점에서 체계적으로 정리했습니다. (모든 수치·주장은 본문 인용 근거에 기반합니다.)
결과(Experiments)
1) 평가 설정(요약)
- 학습 데이터: SlimPajama 중 Book/ArXiv만 선별, 총 20B 토큰(50/50) 로 구성하여 장문 중심 세팅을 구축.
- 평가 데이터: Book/ArXiv(홀드아웃), PG19, Proof-Pile로 일반화 확인.
- 베이스라인: LLaMA-2-7B 기반으로 통일(공정 비교), LLaMA-Full/32K, CEPE, REPLUG 포함. 각 샘플은 (T{=}4096), (s{=}2048)/(o{=}2048) 설정에서 log-PPL 측정.
2) 핵심 정량 결과
- 지연·처리량(LLM 추론 지표)
- TTFT 가속(이론): 짧은 컨텍스트에서 ≃k×, 긴 컨텍스트에서 **≃k²×**까지(Throughput도 동일 경향).
- TTFT 가속(경험): (s{=}16384)에서 k=16 → 16.53×(캐시), 8.59×(비캐시), k=32 → 32.99×; Throughput 최대 6.78×.
- 언어모델 품질(log-PPL)
- k=16에서 CEPE 대비 평균 9.3% 개선(4개 데이터셋 평균), k=32에서는 CEPE와 유사한 품질 유지.
- REFRAG-8/16은 대부분의 설정에서 다른 베이스라인 상회하면서도 CEPE보다 낮은 지연을 달성.
- 컨텍스트 확장·일반화
- 학습은 (s{+}o{=}6144)였지만, (s\in{4096,8192,16384})로 늘려도 REFRAG-8/16 우수성 유지. 원 LLaMA-2-7B(4k 창)를 청크 임베딩으로 외삽해 더 긴 컨텍스트를 처리.
3) RAG 조건 실험(강/약 리트리버)
- 동일 #passages(동일 회수)에서는 LLaMA와 유사, 약한 리트리버에서는 소폭 우위.
- 동일 지연시간(입력 길이) 조건에서는 REFRAG가 유의미하게 상회(더 많은 정보를 같은 레이턴시 안에 ‘효율적으로’ 소비).
4) 선택적 압축(RL) 이득 & 어블레이션
- RL 정책의 효과: 같은 유효 압축률이라도 **“REFRAG16+RL(선택적 확장)” > “REFRAG8(고정)”**을 다수 데이터셋/컨텍스트에서 확인.
- 선택 전략 비교: RL이 perplexity-desc/asc/랜덤 휴리스틱보다 일관되게 우수.
- 커리큘럼/재구성의 필요성:
- 커리큘럼이 없으면 재구성 성능 크게 악화.
- 재구성 사전학습 없이 CPT로 직행하면 성능 열세 → 재구성이 CPT 성공에 중요.
결론(Conclusion)
- REFRAG는 RAG 문맥의 희소·블록 대각선 어텐션 구조를 활용해 **압축(청크 임베딩) → 감지 → 확장(RL)**의 디코딩 프레임워크를 제안, 메모리와 지연(특히 TTFT)을 크게 절감하면서 품질을 유지/향상시킵니다. 디코더 아키텍처 변경 없이 적용 가능하고, 임의 위치 압축(compress-anywhere) 으로 멀티턴·요약 등 장문 작업에도 확장됩니다.
한계(제약·주의점)
- 압축률 상한
- 압축률이 커질수록(특히 k=64) 성능 하락이 뚜렷 → 실용적 상한 고려 필요.
- 정책 학습 단계 추가
- 선택적 압축을 위해 경량 RL 정책을 학습·유지해야 하며, 이는 시스템 관점에서 추가 단계임(다만 모델은 경량).
- 비교·일반화 범위
- 주된 비교는 LLaMA-2-7B 축에서 수행(공정 비교 목적) → 다른 디코더/도메인 적용 시 재학습/튜닝이 요구될 수 있음.
- 인코더 규모 이득의 한계
- 디코더(7B→13B) 증대는 손실 대폭 감소지만, RoBERTa-Base→Large 증대 이득은 상대적으로 제한적(특히 CPT 한정 데이터일 때).
기여(Contributions)
- 아키텍처 무변경·낮은 통합 비용: 디코더 구조·파라미터 변경 없이 지연·메모리를 절감하는 신규 디코딩 메커니즘 제안.
- 청크 임베딩 기반 디코딩: 검색 문단 토큰 대신 사전 계산된 청크 임베딩을 디코더 입력으로 직접 주입 →
① 입력 길이 단축, ② 사전 계산량 재사용, ③ 어텐션 복잡도: 토큰 수가 아닌 청크 수 기준으로 제곱 스케일. - Compress-anywhere & 인과성 보존: 접두부 한정 없이 임의 위치에서 압축/확장 가능(멀티턴·요약 등 일반 장문 과업 지원).
- 선택적 압축(RL): 경량 정책으로 중요 청크만 토큰으로 확장하여 같은 압축률에서도 품질 우위.
- 대규모 가속 및 실제 유용성: TTFT 최대 30.85–32.99×, CEPE 대비 3.75× 가속을 시연하면서 품질 손실 없음; 긴 컨텍스트 16× 확장 시나리오도 지원.
한 장 요약(숫자 위주)
- TTFT: (k{=}16)에서 16.53×, (k{=}32)에서 32.99×(LLaMA 기준), CEPE 대비 3.75×. Throughput 최대 6.78×.
- 품질(log-PPL): k=16에서 CEPE 대비 +9.3%(↓), k=32에서 CEPE와 유사.
- RAG: 동일 #passages ≈ 유사(약한 리트리버에선 소폭 우위), 동일 지연시간에서 REFRAG 우세.
필요하시면 위 내용을 LaTeX 표/슬라이드용 요약표로 재구성해 드릴게요.
좋은 포인트예요! 핵심은 둘 다 “입력 길이 감소”에서 출발하지만, 강조점이 다릅니다.
- ① 입력 길이 단축(토큰 예산/메모리 관점)
컨텍스트를 토큰 대신 청크 임베딩으로 대체하면 디코더로 들어가는 포지션 수 자체가 ≃k배 줄어듭니다. 그래서 KV 캐시 메모리, 프롬프트 프리필 비용, (생성 단계에서) 이전 포지션에 대한 접근 비용이 줄어들고, 고정 컨텍스트 창 내 토큰 예산 배분(= token allocation) 도 여유로워집니다. 논문이 ①에서 말하는 건 이 “정적인 길이/예산” 효과예요. - ③ 주의 복잡도(스케일링 법칙 관점)
프리필(첫 토큰 전 계산)에서 **어텐션은 s×s 연산(≈O(s²))**이 핵심 병목인데, REFRAG는 “토큰 수 s”가 아니라 “청크 수 L(=s/k)”를 단위로 보게 만들어 어텐션의 지배항이 O(L²)=O((s/k)²) 로 바뀝니다. 즉, “길이가 줄었다”를 넘어서 복잡도 스케일링의 기준 자체를 ‘토큰→청크’로 바꿨다는 점을 분리해 강조한 게 ③입니다. 그래서 긴 문맥일수록 이론적으로 k²배까지 TTFT가 줄 수 있다고 설명하는 거죠.
요약하면, ①은 “얼마나 짧아졌나(길이·메모리·토큰 예산)”, **③은 “왜 k²까지 가속 가능한가(연산의 스케일링 법칙)”**를 구분해 말한 겁니다. 서로 연결돼 있지만 같은 문장을 반복한 건 아니에요.
직관용 미니 예시
- 원래 컨텍스트 길이 (s=16{,}384), 청크 크기 (k=16) → 청크 수 (L = s/k = 1{,}024)
- 프리필 단계 어텐션 지배항: 대략 ∝ (s^2) → ((16{,}384)^2)
- REFRAG 후: ∝ (L^2 = (s/k)^2 = (1{,}024)^2)
- 이론상 비율 = ( (s^2) / (s/k)^2 = k^2 = 256× ) (상수항·MLP·입출력 오버헤드 때문에 실측은 더 작음)
실험에선 (s{=}16{,}384, k{=}16)에서 TTFT 16.53×(캐시)/8.59×(비캐시), (k{=}32)에선 **최대 32.99×**를 보고합니다. 즉 이론상 k²에 근접하는 방향으로 실제 속도 향상이 나타나지만, 상수·비어텐션 연산(MLP 등)과 일부 토큰이 그대로 남는 영향 때문에 완전한 k²까지는 안 나옵니다.
한 줄 정리
- 맞아요, ①→③로 인과관계가 이어집니다. 다만 ①은 “입력 길이 축소가 주는 실용 이득(메모리/토큰 예산/TTIT까지)”이고, ③은 “어텐션 복잡도의 기준을 ‘토큰→청크’로 바꿔서 긴 문맥에서 k² 스케일의 이득이 가능하다”는 이론적 근거를 강조한 항목입니다.