Naive RAG의 문제점

 

 


Advanced RAG

Evolution of RAG-based Systems: Naive RAG, Advanced RAG & Modular RAG | DrJulija's Notebook

🔹 Pre-Retrieval (검색 전 최적화)

목표: 좋은 인덱스와 데이터 구조 만들기

  • 데이터 품질 개선: 불필요한 정보 제거, 모호성 해결, 사실성 검증, 최신화
  • 인덱스 구조 최적화: 적절한 청크 크기, 그래프 구조 활용
  • 메타데이터 추가: 날짜, 챕터, 목적 등 메타데이터 삽입 → 검색 필터링 강화
  • 청크 최적화: 너무 크거나 작은 청크는 비효율적 → 문서 특성에 맞게 조정

주요 기법

  • 슬라이딩 윈도우: 청크 간 겹침으로 맥락 유지
  • 오토 머징 검색(Auto-Merging Retrieval): 작은 블록 검색 후 관련 블록 합쳐 제공
  • 추상 임베딩(Abstract Embedding): 문서 요약(abstract) 기반 검색
  • 메타데이터 필터링: 메타데이터 활용해 검색 정밀도↑
  • 그래프 인덱싱: 엔티티와 관계를 그래프로 표현해 연관성 강화

🔹 Retrieval (검색 단계 최적화)

목표: 쿼리와 문서 청크의 의미 공간 정렬

  • 도메인 지식 파인튜닝: 도메인 특화 데이터셋으로 임베딩 모델 개선
  • 유사도 측정 최적화: 쿼리–청크 벡터 간 거리 계산 방식 선택

대표 유사도 지표

  • 코사인 유사도(Cosine Similarity)
  • 유클리드 거리(Euclidean Distance, L2)
  • 내적(Dot Product)
  • L2 제곱 거리(L2 Squared Distance)
  • 맨해튼 거리(Manhattan Distance)

🔹 Post-Retrieval (검색 후 최적화)

목표: 불필요한 문서 제거하고, LLM이 효율적으로 활용하게 만들기

  • 리랭킹(Reranking): 검색된 청크를 재정렬해 Top-K 관련성 높은 것만 사용
  • 프롬프트 압축(Prompt Compression): 불필요한 맥락 제거, 요약을 통해 LLM에 전달할 컨텍스트 길이 축소

Modular RAG

개념:
Modular RAG는 Advanced RAG의 다양한 기법과 모듈을 조합해 전체 RAG 시스템의 성능을 높이는 표준적 패러다임.
각 모듈이 특정 기능을 담당하여 유연하고 확장성 있는 RAG 파이프라인을 구성할 수 있음.

 

📊 Modular RAG 정리표

단계  핵심 모듈  주요 기능
Indexing Chunk Optimization 작은/큰 청크 최적화, 주변 문맥 포함
  Structural Organization 문서를 섹션·단락·표 단위로 계층적 구조화, 지식 그래프 활용
  Metadata 활용 카테고리, 날짜, 목적 등 메타데이터 기반 인덱싱
Pre-Retrieval Query Transformation 질문을 변형·재작성 (HyDE, 역-HyDE 등)
  Query Expansion 원 쿼리를 여러 서브쿼리로 확장
  Query Construction Text-to-SQL, Text-to-Cypher로 구조적 쿼리 생성
Retrieval Retriever Fine-Tuning (FT) LLM·도메인 데이터 기반 학습, Positive/Negative pair 훈련
  Retriever Source 다양화 문장, 청크, 문서, 엔티티, 서브그래프 단위 검색
  Retriever Selection 임베딩, 키워드, 하이브리드 검색 조합
Post-Retrieval Rerank 다양한 문서 유형(Code, Table 포함) 재정렬
  Compression 긴 프롬프트 요약, 불필요한 정보 제거
  Selection LLM이 중요한 청크만 선택
Generation Generator FT 대규모 LLM 파인튜닝, 외부 지식 결합
  Verification 사실 검증, 위키·지식 그래프 참조, 개인정보/헛소리 탐지
Extra Modules Routing 쿼리 성격 분석 후 적절한 파이프라인 분기 (요약 vs 검색 등)
  Orchestration 쿼리 → 판단(Judge) → 검색/생성 → 출력 흐름 제어
  Scheduling 필요 시 재검색을 반복하여 최적 결과 확보
  Knowledge Guide 지식 그래프 기반 추론 경로를 따라 검색 및 생성

한 줄 요약:
Modular RAG는 검색, 메모리, 퓨전, 라우팅 같은 모듈을 조합해 상황에 맞게 작동하는 유연한 RAG 시스템으로, 오늘날 RAG 애플리케이션의 표준 구조가 되었다.


Agentic RAG

 

1. 정의 🤖

  • 즉, LLM이 스스로 검색 전략을 결정하고, 필요한 경우 반복적으로 검색-추론-생성을 수행합니다. Agentic RAG는 LLM이 검색 전략을 스스로 설계하고 반복적으로 실행·검증하는 능동형 RAG로, 복잡한 질문과 불완전한 데이터 환경에서 특히 강력합니다.

2. 기존 RAG와의 차이 

구분 Naive/Advanced/Modular RAG Agentic RAG
역할 단순히 검색된 문서를 LLM 입력에 넣고 답변 생성 LLM이 검색과 reasoning을 주도적으로 제어
검색 방식 고정된 Retriever, 정해진 파이프라인 LLM이 "추가 검색 필요/필요 없음"을 판단
추론(Reasoning) 주어진 문서 범위 내에서만 답 생성 "계획 → 실행 → 검증" 루프를 통해 점진적 추론
강점 빠르고 단순 복잡한 질문에도 다단계 추론 가능, 더 정확한 답변

3. 핵심 아이디어

  • 계획(Planning): LLM이 쿼리를 분석해 "무엇을 검색해야 하는가?"를 계획
  • 행동(Action): 필요한 검색 요청을 수행 (예: 벡터DB, 웹 검색, SQL 쿼리 등)
  • 검증(Verification): 가져온 문서가 유효한지/답변에 적합한지 확인
  • 루프(Iteration): 필요하면 추가 검색을 반복

4. 주요 기술 요소

  • Tool Use (도구 사용): LLM이 검색 엔진, DB, API 등을 직접 호출
  • Self-Reflection (자기검증): "이 답변이 충분한가?"를 스스로 평가
  • Adaptive Retrieval (적응형 검색): 단순 검색 vs 다단계 검색 여부를 상황에 따라 결정
  • Multi-hop Reasoning (다단계 추론): 여러 검색을 연결해 복잡한 질문에 답변

Self RAG

1. 정의

  • Self-RAG는 LLM이 스스로 검색 필요성과 활용 방식을 판단하고, 자기 반성을 통해 답변 품질을 높이는 RAG입니다.

2. 기존 RAG와 차이

구분 전통적 RAG Self-RAG
검색 방식 항상 쿼리 → 검색 → 답변 LLM이 “검색 필요 여부”를 판단
흐름 고정된 파이프라인 유연한 파이프라인 (검색 생략 가능)
출력 제어 검색 결과 기반 단일 답변 답변 전에 “이 답변은 신뢰 가능한가?”를 반성(reflect)
장점 간단, 빠름 효율적(불필요한 검색 줄임), 정확성 ↑, 환각(hallucination) ↓

3. 핵심 아이디어

  • 검색 필요성 판단: 쿼리만으로 답변 가능하면 검색 생략
  • 자기 반성(Self-Reflection): LLM이 “내 답변이 근거에 맞는가?”를 검토
  • 검색 활용 방식 선택:
    • 검색 결과를 그대로 인용
    • 여러 문서 비교 후 통합
    • 혹은 무시하고 자체 지식 사용

4. Self-RAG 동작 과정 (간단 흐름도)

  1. 사용자 질문 입력
  2. LLM이 검색 필요 여부 판단
    • 필요 → 벡터DB/검색엔진 호출
    • 불필요 → 내부 지식 기반으로 답변
  3. 답변 초안 작성
  4. Self-Reflection: 답변이 충분히 근거 기반인지 점검
    • 부족하다면 재검색 & 보완
  5. 최종 답변 생성

5. 장점

  • 🔹 효율성: 불필요한 검색을 줄여 속도·비용 절약
  • 🔹 정확성: 자기 검증 단계를 통해 잘못된 답변 감소
  • 🔹 유연성: 질문의 난이도와 성격에 따라 검색 전략을 동적으로 조정

Corrective RAG

1. 정의

  • Corrective RAG는 기존 RAG의 약점인 잘못된 검색 결과나 불필요한 맥락(노이즈) 문제를 보완하기 위한 기법이에요.
  • 핵심은 LLM이 검색된 문서를 무조건 활용하는 것이 아니라, 오류를 감지하고 보정(correct)하는 과정을 포함한다는 점입니다.

2. 동작 원리

  1. 검색 단계
    • 벡터DB/검색엔진에서 관련 청크를 가져옴
  2. 검증 단계(Validation)
    • LLM이 검색된 문서의 정확성·관련성을 점검
    • 불필요한 문서나 잘못된 정보를 필터링
  3. 보정 단계(Correction)
    • 문서가 부족하거나 불완전하다면 추가 검색 수행
    • 또는 LLM 자체 지식으로 보완 답변 생성
  4. 최종 응답 생성
    • 신뢰할 수 있는 근거 위주로 답변

3. 주요 기법

  • Answer Validation: 검색된 정보와 LLM 답변을 비교해 일치 여부 확인
  • Hallucination Detection: 근거 없는 부분을 표시하거나 제거
  • Iterative Retrieval: 검색 결과가 부족할 경우 반복 검색으로 보완
  • Fallback Strategy: 검색이 실패했을 때 LLM 자체 지식이나 외부 소스를 활용

4. 기존 RAG와의 차이

구분 Naive/Advanced RAG Corrective RAG
검색 활용 검색된 문서를 그대로 활용 검색 결과의 정확성·관련성을 점검 후 보정
오류 처리 문서 오류 → 그대로 답변 반영 위험 오류 감지 → 추가 검색 or 답변 수정
강점 단순, 빠름 더 신뢰성 있는 답변, 환각(hallucination) 감소

Adaptive RAG

1. 정의

  • Adaptive RAG는 이름 그대로 질문과 상황에 맞게 검색 전략을 동적으로 조정하는 RAG 방식입니다.
  • 한 가지 고정된 검색 방법을 쓰는 게 아니라, 쿼리 성격·난이도·응답 품질 요구에 따라 “검색할지 / 몇 개 검색할지 / 어떤 검색 방식을 쓸지”를 바꿔줍니다.

2. 동작 원리

  1. 쿼리 분석
    • 질문이 단순 fact인지, 복합 reasoning인지 분류
    • 예: “한국 대통령은 누구?” vs “2010년 이후 한국 대통령의 외교정책 변화를 요약해줘”
  2. 검색 전략 선택
    • 간단한 질문 → 검색 안 하거나 Top-1 검색만
    • 복잡한 질문 → 다중 쿼리 생성, Multi-hop 검색, 다양한 데이터소스 활용
  3. 동적 조정(Adaptation)
    • 검색 결과가 불충분하면 추가 검색 반복
    • 결과가 너무 많으면 필터링·요약 후 사용

3. 핵심 특징

  • Adaptive Retrieval Depth
    • 검색 단계를 1회만 할지, 반복적으로 할지 자동 결정
  • Adaptive Chunk Selection
    • 답변에 맞게 더 작은 청크 or 큰 문서 단위로 검색
  • Adaptive Modality
    • 텍스트뿐 아니라 필요 시 표, 그래프, 웹 검색 등 다른 소스 활용

4. 기존 RAG와 차이

구분 전통적 RAG Adaptive RAG
검색 방식 항상 동일한 방식 (Top-K 고정) 질문·상황에 맞게 Top-K, multi-hop, 반복 검색 조정
효율성 불필요한 검색도 수행 최소 검색으로 효율 ↑
정확성 복잡한 질문엔 부족 질문 난이도에 맞는 전략 적용 → 정확성 ↑

📊 RAG 변형 기법 비교표

구분 Self-RAG Agentic RAG Corrective RAG   Adaptive RAG
핵심 개념 LLM이 검색 필요 여부를 스스로 판단하고, 자기 반성(Self-reflection)으로 답변 품질 개선 LLM이 에이전트처럼 능동적으로 검색 전략을 계획·실행·검증 검색 결과를 검증·보정하여 오류와 환각(Hallucination)을 줄임 질문 성격에 따라 검색 깊이·범위·방식을 동적으로 조정
검색 전략 검색 여부를 선택 (검색 vs 자체 지식) 다단계(Multi-hop) 검색, 반복 검색 가능 검색 결과 재검증, 필요 시 추가 검색 단순 질문→간단 검색 / 복잡 질문→다중·반복 검색
주요 특징 불필요한 검색을 줄여 효율↑ LLM이 검색·추론 전체를 제어 잘못된 검색 결과를 교정 상황 맞춤형 검색 전략으로 최적화
장점 비용·속도 절약, 정확성 ↑ 복잡한 질문 처리, 추론력 강화 신뢰도 ↑, 오류·헛소리 감소 효율성과 정확성 동시 확보
예시 “한국 대통령은 누구?” → 자체 지식으로 답, 검색 생략 “2015년 이후 노벨상 주제?” → 연도별 검색·통합 “아인슈타인 노벨상 연도?” → 잘못된 검색 교정 후 정확 답변 “노벨상 연구 주제 요약” → 질문 난이도에 맞춰 검색 횟수·범위 조정

한 줄 요약

  • Self-RAG → 검색 여부를 스스로 판단
  • Agentic RAG → 검색·추론을 능동적으로 제어
  • Corrective RAG → 잘못된 결과를 검증·보정
  • Adaptive RAG → 질문 성격에 따라 검색 전략을 유연하게 조정
유형 Self-RAG Agentic RAG Corrective RAG Adaptive RAG
검색 여부 필요할 때만 능동적 제어 오류 시 추가 검색 상황 따라 유연 조정
LLM 역할 필요성 판단 + 자기검증 계획·실행·검증 루프 오류 감지·보정 전략 선택·최적화
강점 효율성↑ 추론력↑ 신뢰도↑ 효율+정확성↑