Skip to main content
Korean only
This page is available in Korean only. An English version will be added later.

07. RAG (검색 증강 생성)

RAG = Retrieval-Augmented Generation(검색 증강 생성). LLM이 답하기 전에 관련 자료를 찾아와(Retrieval) 함께 넣어주고(Augmented), 그걸 근거로 답을 생성(Generation) 하는 방식이다.

왜 필요한가​

LLM 혼자서는 두 가지를 못 한다.

  • 최신 정보: 학습 시점 이후를 모른다 (04 참고)
  • 내부 지식: 우리 회사 문서·규정은 학습에 없다

RAG는 이 둘을 해결한다. 모델을 다시 학습시키지 않고도, 필요한 자료를 그때그때 붙여줘서 최신·내부 지식에 답하게 한다.

어떻게 동작하나​

사용자 질문
│
▼
① 검색: 질문과 관련된 문서 조각을 자료 저장소에서 찾음
│ (의미 기반 검색 → 08. 임베딩/벡터 DB)
▼
② 결합: 찾은 문서 조각 + 원래 질문을 하나의 프롬프트로 합침
│ "다음 자료를 근거로 답하라: [문서조각] 질문: [질문]"
▼
③ 생성: LLM이 그 자료를 바탕으로 답 생성 (+ 출처 표시 가능)

비유: 오픈북 시험. 외워서 답하는 게 아니라, 관련 페이지를 펴놓고 그걸 보며 답하는 것.

RAG의 장점​

장점설명
최신·내부 지식 반영저장소만 갱신하면 됨. 모델 재학습 불필요
환각 감소근거 자료 안에서 답하므로 지어내기가 줄어듦 (05 참고)
출처 제시"이 문서의 이 부분"처럼 근거를 보여줄 수 있음
비용·속도파인튜닝보다 싸고 빠르게 지식 반영

한계​

  • 검색 품질에 좌우: 엉뚱한 자료를 찾아오면 답도 틀린다.
  • 자료가 없으면 여전히 모르거나 지어낼 수 있다.
  • 자료 정리·청크 분할·검색 튜닝 등 파이프라인 구성이 필요하다.

어디에 쓰나​

  • 사내 문서 Q&A 봇, 고객지원 챗봇
  • 매뉴얼·규정·위키 기반 검색형 도우미
  • 최신 뉴스·데이터를 붙이는 비서형 서비스

다음​

RAG의 "관련 문서 찾기"는 어떻게 가능할까? 그 핵심이 임베딩이다. → 08. 임베딩과 벡터 DB