지금은마라톤중

[Paper review] Don’t Do RAG:When Cache-Augmented Generation is All You Need for Knowledge Tasks 본문

STUDY/Paper Review

[Paper review] Don’t Do RAG:When Cache-Augmented Generation is All You Need for Knowledge Tasks

Ojungii 2025. 1. 8. 12:51

Don’t Do RAG:
When Cache - Augmented Generation is All You Need for Knowledge Tasks

 

 

1. Introduction

Retrieval-Augmented Generation(RAG)은 외부 지식 소스를 검색해 거대 언어모델(LLM)과 결합함으로써 오픈 도메인 질문 및 특정 도메인 작업에 있어 강력한 성능을 보여왔습니다. 하지만 RAG는 실시간 검색과 같은 설계 특성으로 인해 여러 문제가 제기되고 있습니다.

 

 

RAG의 한계

  • Retrieval Latency: 실시간 검색으로 인해 응답 시간이 느려질 수 있습니다.
  • Retrieval Errors: 관련 문서를 정확히 선택하지 못할 경우 성능이 저하됩니다.
  • System Complexity: 검색 및 생성 모듈의 통합은 시스템 유지보수를 어렵게 만듭니다.

 

본 논문에서는 Cache-Augmented Generation(CAG)을 제안합니다. CAG는 LLM의 확장된 컨텍스트 윈도우를 활용해 문서를 사전에 적재하고, 이를 기반으로 추론합니다. 실시간 검색 단계 없이도 높은 성능을 유지하며, 응답 속도와 시스템 단순성을 확보할 수 있습니다.

 

 

논문의 기여

  • Retrieval-Free Long-Context Paradigm: 검색 없는 지식 통합을 제시.
  • 성능 비교: 다양한 실험을 통해 RAG를 능가하는 결과 입증.
  • 실용적 통찰: 특정 도메인 및 작업에서의 효율성을 강조.

 

Knowledge를 기준으로 위는 RAG의 구조, 아래는 CAG의 구조

 

 

2. Methodology

다시 말하면, CAG는 LLM의 Long-Context 처리 능력을 활용해, RAG에서 필요했던 실시간 검색 과정을 제거한 새로운 프레임워크입니다. 문서를 사전에 처리하고, 이를 KV Cache로 변환하여 추론 시 활용합니다.

 

CAG 단계

1) 외부 지식 사전 로드

- 문서 집합을 모델의 Context Window에 맞게 전처리

- 이를 Key-Value Cache로 생성

 

what is KV Cache?
KV는 Key-Value 쌍을 말합니다. 이때 KV는 트랜스포머 모델의 self-attention mechanism의 V,Q,K의 K,V와 같습니다. KV Cache 역시 트랜스포머의 인코더를 활용하여 KV Cache를 만듭니다.

 

 

2) 추론

- 사용자 질문과 사전 로드된 캐시를 결합해 응답 생성

- 실시간 검색 없이 빠른 응답 생성

3) 캐시 초기화

- 새로운 세션에서 효율성을 위해 캐시를 부분적으로 초기화

- ex)  추가된 토큰을 제거

 

 

3. Experiments

- 데이터셋 : SQuAD 1.0, HotPotQA (QA benchmark로 널리 쓰이는 데이터셋)

- 환경 : Tesla V100 32G × 8 GPUs, Llama 3.1 8B Instruction model, LlamaIndex Framework

- 비교 모델 : Sparse RAG(BM25 - 키워드 기반 검색), Dense RAG(OpenAI Indexes - 의미 기반 검색), CAG

- 비교 기준 : 정확도(BERTScore), 추론 시간

 

SQuAD는 단일 문서 답변, HotPotQA은 다중 문서 답변을 위한 데이터셋

참조 텍스트의 길이가 증가함에 따라 RAG의 정확한 검색처리가 어려워지는 점을 고려하여 LLM이 높은 퀄리티의 답변을 생성하는지 확인하기 위해 크기를 나누어 비교했습니다.

 

 

실험 결과

1) 정확도 비교

CAG는 모든 데이터셋 크기(Small, Medium, Large)에서 높은 성능을 보였습니다. 특히, 멀티 문서 처리에서 CAG의 성능을 더 잘 확인 할 수 있습니다. 

 

 

 

 

2) 추론 시간 비교

CAG의 활용이 생성 시간을 극적으로 줄임을 결과를 통해 확인할 수 있습니다. CAG의 활용 유무뿐 아니라 RAG와 비교했을 때도 더 빠른 성능을 보입니다.

 

 

4. Conclusion

Long context LLM이 발전함에 따라 전통적인 RAG 방식의 한계를 재검토해야합니다. 본 논문에서는 검색 단계의 latency 제거를 통해 효율성을 높이는 CAG를 강조하면서, 사전 로드의 효율성과 검색의 선택성을 결합하여 문맥 완전성과 유연성을 동시에 달성할 수 있습니다.

 


 

 

해당 논문은 2주 전에 나온 논문입니다. 비슷한 시기에 KV Cache를 활용한 논문들이 여러개 나온 것을 통해 KV Cache를 간과할 수는 없다고 생각합니다. 그럼에도 CAG는 Long-Context Window에 의존적인 한계가 존재한다고 생각합니다. 윈도우 크기에 따른 지역적 이해의 문제가 존재하고, 큰 윈도우일 때는 연산 효율이 떨어질 수 있을 것 입니다. 또한 CAG는 데이터의 업데이트와 수정 시 preloaded KV Cache를 다시 연산해야되기 때문에 RAG에 비해 동적 처리가 어렵습니다. 논문에서는 RAG와의 비교를 하였지만, 저는 RAG보단 fine-tuning을 대체할 수 있는 방법이라고 생각합니다. 그래서 RAG와 CAG의 Hybrid approach가 주목받을 수 있지 않을까 생각됩니다.

 

 

- 출처 : https://arxiv.org/abs/2412.15605

 

Don't Do RAG: When Cache-Augmented Generation is All You Need for Knowledge Tasks

Retrieval-augmented generation (RAG) has gained traction as a powerful approach for enhancing language models by integrating external knowledge sources. However, RAG introduces challenges such as retrieval latency, potential errors in document selection, a

arxiv.org

 

Comments