dev.Log

RAG 캐시 본문

인공지능

RAG 캐시

초코푸딩 2025. 11. 21. 09:12

RAG 엔진 만든거에 캐싱 기능을 추가해보려한다. 

캐시 종류 적용 단계 작동 방식
최종 응답 캐싱
(Response Caching)
생성(Generation) 후 사용자의 질문과 LLM이 생성한 최종 답변을 저장하고, 동일한 질문이 들어오면 LLM 호출 없이 저장된 답변을 반환합니다.
문서 검색 캐싱
(Retrieval Caching)
검색(Retrieval) 후 질문(쿼리)과 검색된 관련 문서 목록을 저장하고, 유사한 질문이 들어오면 검색 과정을 생략하고 저장된 문서를 LLM에 전달합니다.
시맨틱 캐싱
(Semantic Caching)
전체 파이프라인 단순히 문자열이 동일한지(Key-Value) 확인하는 것이 아니라, 질문과 저장된 쿼리 간의 의미적 유사성(Vector Embedding Distance)을 비교하여 유사한 질문에도 캐시된 결과를 재사용합니다. RAG 시스템에서 특히 중요합니다.
KV 캐시 활용
(KV Cache)
LLM 내부 검색된 문서를 LLM의 컨텍스트에 넣고 추론할 때, 해당 문서의 Key-Value(KV) 텐서를 캐시하여, 이후 요청에서 해당 문서가 다시 사용될 경우 토큰 처리 연산을 재수행하지 않고 캐시된 값을 재사용합니다. (예: RAGCache 논문에서 제안)

 

RAG 캐싱 외에도, **CAG (Cache-Augmented Generation)**라는 유사하지만 다른 접근 방식도 있습니다.

  • RAG (검색 증강 생성): 실시간으로 외부 지식을 검색하여 답변에 활용합니다. 최신 정보나 방대한 지식 기반에 적합하지만 지연 시간이 발생할 수 있습니다.
  • CAG (캐시 증강 생성): 제한된 크기의 중요하고 정적인 지식을 LLM의 확장된 컨텍스트 윈도우에 미리 로드(Preload)하고, 이 정보를 LLM의 KV 캐시 형태로 저장하여 검색 과정을 완전히 생략하고 빠른 추론만으로 답변을 생성합니다. 빈번하게 변경되지 않는 데이터셋(예: 매뉴얼, 교육 자료)에 낮은 지연 시간으로 응답이 필요한 경우에 유용합니다

이 비디오에서는 RAG 애플리케이션의 검색 성능을 최적화하기 위해 시맨틱 캐싱을 구현하는 방법을 자세히 설명합니다.

Super Fast RAG app with Semantic Cache (Optimized RAG) - YouTube

Comments