RAG (Retrieval-Augmented Generation) 개요

RAG란?

RAG(Retrieval-Augmented Generation)는 대규모 언어 모델(LLM)의 응답을 개선하기 위해 외부 지식 베이스에서 관련 정보를 검색하여 활용하는 기술입니다.

RAG의 필요성

  1. 지식 최신성 문제 해결

    • LLM은 학습 시점까지의 데이터만 알고 있음
    • 최신 정보나 실시간 데이터 제공 불가
    • RAG를 통해 최신 문서/데이터 참조 가능
  2. 환각(Hallucination) 감소

    • LLM이 사실이 아닌 내용을 생성하는 문제
    • 외부 신뢰할 수 있는 소스 참조로 정확성 향상
  3. 도메인 특화 지식 제공

    • 기업 내부 문서, 특정 도메인 지식 활용
    • 재학습 없이 특정 분야 전문성 확보
  4. 비용 효율성

    • 모델 재학습(Fine-tuning) 대비 저렴
    • 데이터 업데이트가 용이

RAG 작동 원리

기본 워크플로우

사용자 질문

1. 질문 임베딩 생성

2. 벡터 DB에서 유사 문서 검색

3. 검색된 문서 + 질문을 LLM에 입력

4. LLM이 컨텍스트 기반 답변 생성

최종 답변 제공

핵심 구성 요소

  1. 문서 처리 (Document Processing)

    • 문서 수집 및 전처리
    • 청크 분할 (Chunking)
    • 임베딩 생성
  2. 검색 시스템 (Retrieval System)

    • 벡터 데이터베이스
    • 유사도 검색 알고리즘
    • 하이브리드 검색 (키워드 + 벡터)
  3. 생성 모델 (Generation Model)

    • LLM (GPT, Claude, Llama 등)
    • 프롬프트 엔지니어링
    • 컨텍스트 윈도우 관리

RAG vs Fine-tuning

구분 RAG Fine-tuning
비용 낮음 높음 (GPU, 시간)
업데이트 실시간 가능 재학습 필요
투명성 출처 추적 가능 블랙박스
정확성 검색 품질에 의존 모델에 지식 내재화
적용 사례 문서 Q&A, 최신 정보 특정 스타일, 작업 최적화

RAG의 장단점

장점

  • ✅ 최신 정보 활용 가능
  • ✅ 출처 추적 및 검증 가능
  • ✅ 낮은 비용과 빠른 구축
  • ✅ 도메인 지식 쉽게 추가
  • ✅ 환각 현상 감소

단점

  • ❌ 검색 품질에 따라 성능 변동
  • ❌ 추가 인프라 필요 (벡터 DB)
  • ❌ 레이턴시 증가 (검색 단계)
  • ❌ 복잡한 추론 작업에는 부적합
  • ❌ 청크 분할 전략에 민감

RAG 성능 향상 전략

1. 청킹 전략 최적화

  • 고정 크기 vs 의미 기반 분할
  • 오버랩 설정
  • 메타데이터 추가

2. 임베딩 모델 선택

  • OpenAI Embeddings
  • Sentence Transformers
  • 도메인 특화 모델

3. 검색 품질 개선

  • 하이브리드 검색 (BM25 + Vector)
  • 재순위화 (Re-ranking)
  • 쿼리 확장 및 재작성

4. 프롬프트 엔지니어링

  • 명확한 지시사항
  • Few-shot 예제 제공
  • 출처 인용 요구
Share