AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

RAG 팁 – 장문 컨텍스트에서 효율적인 검색 증강 생성을 위한 5가지 기법

rag 시스템은 Gemini Pro, Claude Opus 같은 100만 토큰 컨텍스트 모델의 등장으로 새로운 국면을 맞았다. 단순히 더 긴 컨텍스트를 쑤셔 넣는 것만으로는 “Lost in the Middle” 문제와 비용 문제를 해결할 수 없다. 이 문서에서는 장문 컨텍스트 RAG를 실용적으로 구현하기 위한 5가지 기법을 정리한다.

1. 리랭킹(Reranking)으로 “Lost in the Middle” 해결

Stanford·UC Berkeley 연구에 따르면 LLM은 프롬프트 앞뒤의 정보에는 집중하지만 중간 부분은 놓치는 경향이 있다. 이를 해결하는 워크플로우:

  1. 검색: 벡터 DB에서 후보 20개 검색 (top-5 대신)
  2. 리랭킹: Cohere Rerank API나 Sentence-Transformers cross-encoder로 쿼리 대비 각 문서 점수 산정
  3. 재정렬: 상위 5개 선별
  4. 배치: 가장 관련성 높은 문서를 프롬프트 맨 앞, 두 번째로 관련성 높은 것을 맨 뒤, 나머지 셋은 중간에 배치
# Cohere Rerank 예시
import cohere

co = cohere.Client("your-api-key")
reranked = co.rerank(
    query=user_query,
    documents=top_20_candidates,
    top_n=5,
    model="rerank-v3.5"
)

2. 컨텍스트 캐싱(Context Caching)으로 비용 절감

정적 지식베이스를 사용하는 챗봇에서 매번 수십만 토큰을 재처리하는 것은 낭비다.

  • 캐시 생성: 대형 문서(예: 50만 토큰 매뉴얼)를 API에 업로드하고 TTL(time-to-live) 설정
  • 캐시 참조: 이후 쿼리에서 문서 전체 대신 캐시 ID + 사용자 질문만 전송
  • 효과: 입력 토큰 비용 절감 + 응답 지연 감소

Gemini API의 경우 cacheContent.create()로 구현. 정적 지식베이스 기반 챗봇에 특히 유효.

3. 메타데이터 필터링을 활용한 동적 컨텍스트 청킹

컨텍스트 윈도우가 커졌어도 관련성 없는 청크는 잡음이다. 구조화된 메타데이터로 검색 공간을 미리 좁힌다:

  • 지능형 청킹: 문서를 500–1000 토큰 단위로 분할 + 출처, 섹션 제목, 페이지 번호, 요약을 메타데이터로 부착
  • 2단계 검색: 1. 메타데이터 필터링: 날짜 범위, 문서 섹션 등으로 검색 공간 축소 2. 시맨틱 검색: 필터링된 후보 내에서만 유사도 검색

4. 하이브리드 검색(Hybrid Retrieval)

벡터 검색은 의미를 잡지만 정확한 키워드를 놓칠 수 있다. 특히 기술 문서에서 제품명, 오류 코드 같은 정확한 매칭이 중요할 때 하이브리드 검색이 유효하다:

  • 이중 검색: 벡터 DB(시맨틱 유사도) + 키워드 인덱스(Elasticsearch BM25)
  • Reciprocal Rank Fusion(RRF): 두 검색 결과를 합산해 양쪽에서 높은 점수를 받은 문서 우선순위화
  • 컨텍스트 구성: 융합된 결과에 리랭킹 원칙 적용

5. 쿼리 확장(Query Expansion)

사용자 쿼리와 문서에서 실제 사용된 표현 사이의 어휘 간극을 경량 LLM으로 해소한다:

사용자 쿼리: "화재 경보가 울리면 어떻게 해야 하나요?"

생성된 가상 질의:
- "화재 대피 집합 장소"
- "대피 절차 단계"
- "안전 프로토콜 경보"
- "비상구 위치"
- "소방 훈련 참석 정책"

이 가상 질의들과 원래 쿼리를 모두 사용해 더 넓고 관련성 높은 문서 세트를 검색한다.

기법 선택 가이드

상황추천 기법
검색 결과의 순서가 중요한 경우리랭킹
정적 지식베이스 + 반복 쿼리컨텍스트 캐싱
문서에 구조화된 메타데이터가 있는 경우메타데이터 필터링
정확한 키워드 매칭이 중요한 기술 문서하이브리드 검색
모호하거나 구어체 쿼리쿼리 확장

관련 문서

  • rag — RAG 기술 개요
  • lightrag — 지식 그래프 기반 GraphRAG

AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)