통계 실험실 차트
넘스탯 로고
넘스탯
LEARN · SIMULATE · VERIFY

확률부터 LLM까지, 원리부터 제대로 배우는 자기주도 학습 플랫폼

로그인
학습 메뉴
도움말

RAG(검색 증강 생성)

마일스톤 학습법으로 단계별 완전 정복
LLM
RAG
검색 증강 생성
검색
임베딩
문맥 창
청크
Top-k
할루시네이션
출처
이 개념 직접 실험하기 — RAG 검색 대결 시뮬레이터
이 학습을 통해 달성할 수 있는 목표
기초 이해
  • • RAG의 세 단계(질문 → 문서 검색 → 문서와 질문을 함께 프롬프트에 넣기)를 설명
  • • 모델을 재학습하지 않고 입력만 바뀐다는 점, 그래서 문서 창고 갱신만으로 지식이 최신이 된다는 점을 이해
  • • 검색이 틀리면 답도 틀린다는 RAG의 근본 의존 관계를 파악
심화 학습
  • • 파라미터 기억과 비파라미터 기억의 결합이라는 Lewis et al.(2020)의 틀을 설명
  • • 청크·Top-k·문맥 창 한계라는 세 설계 선택의 관계를 예산 계산으로 확인
  • • Liu et al.(2023)의 "Lost in the Middle"에 근거해 문서를 많이 넣는 것이 답이 아닌 이유를 설명
  • • 파인튜닝은 말투·능력을, RAG는 사실을 다룬다는 역할 구분을 사례에 적용
실무 적용
  • • Gao et al.(2024)의 Naive / Advanced / Modular 세 단계로 RAG 파이프라인 설계를 위치시키기
  • • RAG 실패를 검색 단계와 생성 단계로 갈라 진단하는 절차 수행
  • • RAG가 할루시네이션을 없애는 것이 아니라 줄이고 확인 가능하게 만드는 기술임을 설명
한눈에 보기

RAG(Retrieval-Augmented Generation, 검색 증강 생성)는 질문이 들어오면 외부 문서 창고에서 관련 문서를 먼저 검색하고, 찾은 문서를 질문과 함께 프롬프트에 넣어 "이 문서를 근거로 답하라"고 지시하는 방식이다. 모델을 재학습하지 않고 입력만 바꾼다.

이 내용은 넘스탯의 RAG 검색 대결 시뮬레이터에서 직접 실험으로 확인할 수 있습니다.

학습 로드맵

각 단계를 클릭하면 해당 학습 내용을 볼 수 있습니다

기초 이해
개념 정의와 기본 원리
15
클릭
심화 학습
공식 유도와 다양한 예시
35
클릭
실무 적용
실제 케이스와 고급 응용
50

학습 진도 (완료한 단계)

0%

기초 이해기억나는 대로 답하지 말고, 문서를 찾아서 답하라

기초 이해: 기억나는 대로 답하지 말고, 문서를 찾아서 답하라

난이도 2/5
약 15분

언어모델은 학습할 때 본 것을 가중치 안에 담아 두고, 질문을 받으면 그 기억에 의존해 답합니다. 문제는 이 기억이 흐릿하고, 학습 이후에 바뀐 일은 아예 모르며, 모르는 것도 그럴듯하게 지어낸다는 점입니다. RAG는 이 문제를 아주 단순한 방법으로 돌파합니다. 답하기 전에 관련 문서를 찾아서, 그 문서를 질문과 함께 모델에게 건네주는 것입니다. 구조는 세 단계뿐입니다. ① 사용자가 질문한다 → ② 문서 창고에서 그 질문과 관련 있는 문서를 검색한다 → ③ 찾은 문서를 질문과 함께 프롬프트에 넣고 "이 문서를 근거로 답하라"고 지시한다. 여기서 가장 중요한 사실은 모델을 다시 학습시키지 않는다는 것입니다. 바뀌는 것은 오직 입력뿐입니다.

핵심 포인트
  • 핵심 구조는 세 단계: 질문 → 문서 창고 검색 → 찾은 문서를 질문과 함께 프롬프트에 넣어 근거로 삼게 지시
  • 모델을 재학습하지 않는다 — 가중치는 그대로이고 바뀌는 것은 입력(프롬프트)뿐
  • 문서 창고만 갱신하면 지식이 최신이 되고, 답변에 출처를 함께 제시할 수 있다
  • 검색이 틀리면 답도 틀린다 — RAG의 성능 상한은 문서 창고와 검색의 품질이 정한다
간단한 예시

사내 문서 창고에 문서가 4개뿐이라고 합시다. D1 「출장비 정산 지침」 — 출장 후 7일 이내 영수증 제출 D2 「제품 반품·환불 규정」 — 구매일로부터 14일 이내 환불 신청 가능 D3 「신규 입사자 온보딩 안내」 — 첫 주 교육 일정 D4 「고객센터 응대 매뉴얼」 — 환불 문의는 주문번호 확인 후 규정 문서를 안내 질문: "환불은 며칠 안에 신청해야 하나요?" 1단계(질문): 질문 문장을 임베딩 벡터로 바꿉니다. 2단계(검색): 질문 벡터와 문서 벡터의 유사도를 잰 결과가 아래와 같았다고 가정합니다(설명용 예시 값). D2 0.81 <- "환불", "신청", "기간"이 겹침 D4 0.66 <- "환불"은 겹치지만 기간 수치는 없음 D1 0.12 D3 0.09 Top-2를 고르면 D2, D4가 선택됩니다. 3단계(프롬프트 조립): 실제로 모델에 들어가는 입력은 이렇게 생겼습니다. [지시] 아래 문서만을 근거로 답하라. 문서에 없는 내용은 "문서에 없음"이라고 답하라. 답변 끝에 사용한 문서 번호를 밝혀라. [문서 1 · 제품 반품·환불 규정] 환불은 구매일로부터 14일 이내에 신청해야 한다. [문서 2 · 고객센터 응대 매뉴얼] 환불 문의가 오면 주문번호를 확인한 뒤 반품·환불 규정을 안내한다. [질문] 환불은 며칠 안에 신청해야 하나요? 모델의 답: "구매일로부터 14일 이내입니다. (근거: 문서 1)" 여기서 확인할 점 — 모델은 "14일"을 기억해 낸 것이 아니라 눈앞의 문서에서 읽었습니다. 규정이 30일로 바뀌면 D2 한 줄만 고치면 되고, 모델은 손대지 않습니다. 반대 상황도 보세요. 창고에 D2가 아예 없었다면 검색은 D4만 찾아 주고, D4에는 기간 수치가 없습니다. 이때 지시가 없으면 모델은 "보통 30일입니다" 같은 그럴듯한 답을 지어낼 수 있습니다. 검색이 못 찾은 것을 생성이 메워 주지는 못합니다.

이해도 확인하기

정답: 아니요. 모델 가중치는 전혀 바뀌지 않습니다. 바뀌는 것은 입력뿐입니다. 검색해 온 문서가 프롬프트에 붙어 들어가고, 모델은 그 문서를 읽고 답합니다. 그래서 회사 규정이 바뀌면 모델을 다시 학습시키는 대신 문서 창고의 해당 문서만 갱신하면 됩니다.

정답: 검색은 그래도 "가장 비슷한" 문서를 골라 오지만, 그 문서에 답이 없으므로 모델은 근거 없이 답을 지어낼 수 있습니다. 그래서 실무에서는 "문서에 없으면 없다고 답하라"는 지시를 프롬프트에 명시하고, 유사도가 일정 수준에 못 미치면 아예 답하지 않도록 설계합니다. RAG는 할루시네이션을 없애는 기술이 아니라 줄이고 확인 가능하게 만드는 기술입니다.

정답: 그렇지 않습니다. 문맥 창에는 한계가 있고, Liu et al.(2023)은 관련 정보가 긴 입력의 한가운데 놓이면 모델이 그것을 잘 활용하지 못한다는 것을 보였습니다. 무관한 문서를 많이 넣으면 정작 필요한 문서가 중간에 파묻히고 성능이 떨어집니다. 적게, 정확하게 넣는 편이 낫습니다.

딥러닝 이론 페이지로 돌아가기