RAG (Retrieval-Augmented Generation) 용어 정리 및 상세 해설
1. RAG(검색 증강 생성)이란?
RAG(Retrieval-Augmented Generation)는 대형 언어 모델(LLM)이 자체 파라미터에만 의존하지 않고, 외부의 신뢰할 수 있는 지식 기반을 실시간으로 검색해 답변을 생성하는 아키텍처입니다.
-
최신 정보와 도메인 특화 지식을 활용해 정확성을 높임
-
LLM 재학습 없이 외부 자료만 보강해 비용을 절감
-
답변에 출처를 명시해 투명성을 확보 • 한계
-
검색된 문서의 품질 의존
-
잘못된 문맥 해석 시 오답 생성 가능
2. RAG의 핵심 모듈
RAG는 여러 역할을 담당하는 모듈을 조합해 설계합니다. 주요 모듈과 동작을 상세히 살펴보겠습니다.
2.1 Routing (라우팅)
사용자의 원질의(원문 질의)를 분석해 어떤 모듈로 넘길지 결정합니다.
-
의미 이해: 문장 구조·키워드·엔티티 추출
-
모듈 매핑: FAQ, 위키 검색, DB 조회 등 목적별 라우팅
-
예시: “사내 인사 정책”이라는 질의는 사내 위키DB 모듈로直送
2.2 Search (검색)
라우팅 단계에서 결정된 타겟 리포지토리(웹, 벡터DB, 관계형DB 등)에서 잠재적 문서를 찾습니다.
-
키워드 검색: 전통적 BM25, TF-IDF 기반
-
시멘틱 검색: 임베딩 벡터를 활용한 의미 기반
-
인덱싱: 문서 청킹 후 임베딩 → 벡터DB 저장
2.3 Retrieve (검색 결과 추출)
검색된 후보군 중 질의와 가장 밀접한 문서를 선별해 반환합니다.
-
유사도 계산: 코사인 유사도, L2 거리 등
-
Top-k 추출: k개 문서 또는 스팬(span)을 선택
-
하이라이팅: 핵심 문장·키워드 컷팅
2.4 Rewrite (질문/문서 재작성)
원질의를 최적화하거나, 검색된 결과를 모델이 더 잘 이해할 형태로 가공합니다.
-
질의 확장: 동의어 추가, 문맥 보강
-
문서 요약: 긴 텍스트를 핵심 문장 중심으로 압축
-
템플릿 변환: FAQ 양식, Q&A 스타일 등
2.5 Rerank (재정렬)
여러 후보 문서를 관련도 순으로 재정렬해 모델 입력 우선순위를 조정합니다.
-
랭킹 모델: 학습된 Rank-Net, LambdaRank
-
점수 퓨전: Reciprocal Rank Fusion(RRF) 같은 기법 적용
-
사용 예: RAG-Fusion 프로젝트에선 다중 쿼리 결과를 RRF로 융합해 정확도 개선.
2.6 Memory (메모리)
대화형 RAG에서 이전 질의·응답 기록을 저장·활용해 맥락을 유지합니다.
-
Short-term: 직전 턴(history) only
-
Long-term: 사용자 프로필, 프로젝트 정보 등 지속 저장
-
활용 예: 고객 지원 봇이 과거 주문 내역까지 참조해 답변
2.7 Predict (예측)
LLM이 최종 답변을 생성하는 단계로, 불필요한 노이즈를 제거하고 자연스러운 문장으로 마무리합니다.
-
프롬프트 디자인: 검색 결과 + 재작성된 질의 결합
-
생성 제어: 온도(temperature), 최대 토큰 수 조정
-
검증 루틴: 사실 검증(fact-checking) 후 신뢰도 스코어링
2.8 Demonstrate (시연/예시)
복잡한 작업이나 설명을 예시 코드, 명령어, 워크플로우 다이어그램으로 보여줍니다.
-
사용 예: “SQL 테이블 생성 방법” → 코드 블록, 쿼리 예시 삽입
-
장점: 이해도 및 실행 가능성 제고
2.9 Fusion (융합)
여러 소스에서 가져온 정보를 통합해 일관된 답변으로 만들어 냅니다.
-
텍스트 퓨전: 생성된 단락 간 연결어 삽입
-
데이터 퓨전: 표, 그래프 등 구조화된 데이터 결합
-
사례: RAG-Fusion 연구에서 문헌 검색·생성 결과를 결합해 최고 성능 달성.
3. RAG의 주요 패턴
모듈을 어떻게 조합하느냐에 따라 RAG 시스템의 패턴이 달라집니다.
3.1 Naive RAG
-
단계: Retrieve → Generate
-
특징: 단순·빠름, 초보적 도메인에 적합
-
제약: 재작성·재정렬 미비로 정확도 낮음
3.2 Advanced RAG
-
단계: Rewrite → Retrieve → Rerank → Generate
-
특징: 쿼리 확장, 결과 필터링, 재정렬 등 정교화
-
효과: 잘못된 스팬 제거, 문맥 일관성 확보
3.3 DSP (Demonstrate-Search-Predict)
-
순서: 예시 제공(Demonstrate) → 검색(Search) → 생성(Predict)
-
장점: 복잡 작업 가이드나 코드 생성에 최적화
3.4 ITER-RETGEN (반복 RAG)
-
순환: Retrieve ↔ Generate 반복
-
목표: 점진적 개선, 부분 답변 피드백 반영
-
사례: 섹션별 요약 후 재검색해 모자란 정보 보강
댓글남기기