RAG[Retrieval-Augmented Generation]란?

직역하면 “검색으로 보강된 생성” 정도로 볼 수 있다.

LLM이 답변하기 전에 관련 자료를 먼저 검색하고,

그 자료를 참고해서 답변을 생성하는 방식

기본 LLM은 자신이 학습한 지식이나 입력된 프롬프트를 바탕으로 답변한다. 하지만 RAG를 사용하면 답변 전에 외부 문서나 DB에서 관련 정보를 가져온 뒤, 그 내용을 함께 넣어 답변하게 만들 수 있다.

사용자 질문
   ↓
관련 문서 검색
   ↓
검색된 문서를 LLM에게 전달
   ↓
LLM이 문서를 참고해서 답변 생성

즉, RAG는 LLM에게 필요한 참고자료를 찾아주는 구조라고 볼 수 있다.


왜 RAG가 필요할까?

LLM은 똑똑해 보이지만, 항상 모든 정보를 알고 있는 것은 아니다.

특히 다음과 같은 정보는 기본 모델만으로 답하기 어렵다.

회사 내부 문서
개인 프로젝트 문서
최근 업데이트된 정보
DB에 저장된 사용자 데이터
서비스 운영 로그
사내 정책
특정 도메인 지식
“우리 서비스에서 알림 재시도 정책이 어떻게 되어 있어?”

이 질문에 답하려면 LLM이 우리 서비스의 내부 문서를 알아야 한다. 하지만 일반 LLM은 내 프로젝트 문서를 기본적으로 알지 못한다. 그래서 필요한 것이 RAG다.

사용자 질문
→ 내부 문서에서 관련 내용 검색
→ 알림 재시도 정책 부분을 찾음
→ LLM에게 해당 내용을 같이 전달
→ 문서 기반으로 답변

즉, RAG는 LLM이 모르는 정보를 외부에서 찾아서 붙여주는 방식이다.


RAG의 기본 흐름

RAG는 크게 두 단계로 나눠볼 수 있다.

1. 저장 단계
2. 검색 및 답변 단계

1. 저장 단계