콘텐츠로 이동

P1-13.3 RAG(retrieval-augmented generation)로 이어지는 흐름

Section ID: P1-13.3 Version: v2026.07.20

P1-13.1에서는 텍스트(text)를 벡터(vector)로 표현하는 임베딩(embedding)을 봤습니다. P1-13.2에서는 질문 벡터(query vector)와 가까운 문서 벡터(document vector)를 찾는 유사도 검색(similarity search)을 봤습니다.

이제 검색된 문서 후보를 LLM 답변에 어떻게 연결할 것인가?라는 다음 질문으로 넘어갑니다. RAG(retrieval-augmented generation)는 이 질문에 답하는 대표적인 구조입니다.

RAG는 외부 자료를 검색(retrieval)한 뒤, 검색된 내용을 생성(generation) 입력에 함께 넣어 답변을 만들게 하는 구조다.

여기서 중요한 점은 RAG가 “정답 보장 장치”가 아니라는 것입니다. RAG는 LLM이 참고할 수 있는 문맥(context)을 더해 주는 구조입니다. 검색 결과가 틀리거나 부족하면 답변도 흔들릴 수 있습니다.

Part 1에서 RAG(retrieval-augmented generation), 검색(retrieval), 보강(augmentation), 생성(generation), parametric memory, non-parametric memory, 출처 추적(provenance)의 기본 구분은 여기서 잡습니다. 13.1에서는 임베딩을, 13.2에서는 유사도 검색을 봤고, 여기서는 그 두 단계를 LLM 입력 맥락 보강으로 연결합니다. 구현 세부와 서비스 아키텍처는 뒤 절과 14장에서 다시 다룹니다.

여기서는 RAG의 전체 흐름을 개념적으로 봅니다. 벡터 데이터베이스(vector database), 인덱스(index), 근사 최근접 이웃(approximate nearest neighbor, ANN), 그래프(graph) 기반 검색 구조는 P1-13.4에서 다룹니다.

RAG, 검색, 보강, 생성, parametric memory, provenance는 서로 다른 단계와 기억 자원입니다. 여기서는 각 용어의 역할을 먼저 다음처럼 구분합니다.

용어 아주 짧은 뜻 이 절에서의 역할
RAG 검색 결과를 생성 입력에 붙이는 구조 Chapter 13의 연결 단계
검색 관련 문서 후보를 찾는 단계 외부 자료 준비
보강 검색된 문서를 입력 맥락에 추가하는 단계 LLM 참고 자료 구성
생성 보강된 입력을 바탕으로 답을 만드는 단계 최종 응답 생성
parametric memory 모델 파라미터 안의 내부 지식 모델 단독 지식의 직관
non-parametric memory 외부 문서 저장소 같은 검색 가능한 자료 RAG가 더하는 바깥 지식
provenance 어떤 출처를 참고했는지 추적하는 정보 근거 검토와 연결되는 요소

여기서는 RAG는 검색+생성 연결, 외부 문서는 모델 밖 근거, 출처 추적은 별도 확인 요소라는 구분을 기준선으로 둡니다.

P1-14에서는 RAG가 실제 서비스 아키텍처와 도구 사용(tool use), 에이전트(agent) 구조 안에서 어디에 놓이는지 봅니다. P1-13.3에서는 검색 결과가 LLM 입력으로 들어가는 연결 흐름에 집중합니다.

또한 여기서는 RAG를 환각 제거 장치로 소개하지 않습니다. RAG가 근거 후보를 붙이는 구조라는 점을 분명히 하고, 검증 책임은 여전히 남는다는 점에 집중합니다.

주제 이 절에서 볼 질문
검색(retrieval) 어떤 외부 자료를 가져올 것인가?
보강(augmentation) 가져온 자료를 어떻게 입력 맥락에 붙일 것인가?
생성(generation) LLM은 보강된 입력으로 무엇을 생성하는가?
한계(limit) RAG가 왜 사실 검증을 자동으로 보장하지 않는가?

검색 결과를 생성 맥락으로 연결하는 기준

  • RAG(retrieval-augmented generation)를 검색과 생성을 결합한 구조로 이해합니다.
  • 검색 결과가 LLM 입력의 맥락(context)으로 들어간다는 흐름을 설명합니다.
  • 모델 내부 지식(parametric memory)과 외부 검색 자료(non-parametric memory)의 차이를 직관적으로 구분합니다.
  • RAG가 최신성(recency), 근거성(evidence), 출처 추적(provenance)에 도움을 줄 수 있지만 자동 보장은 아님을 이해합니다.
  • P1-14의 AI 서비스 구조로 넘어갈 준비를 합니다.

세 가지 기준

여기서는 RAG 프레임워크 사용법보다, 왜 검색을 생성 앞에 붙이는지 이해하는 데 집중합니다. 본문을 읽을 때 기준이 되는 세 가지 관점은 다음과 같습니다.

기준 왜 중요한가 이 절에서 필요한 이해 수준
RAG는 검색과 생성을 연결하는 구조라는 점 모델 단독 답변과 검색 보강 답변의 차이를 보여 줍니다. 필요한 문서를 먼저 찾고 그 문서를 바탕으로 답한다고 이해합니다.
외부 문서는 파라미터 밖의 최신 근거를 보충할 수 있다는 점 모델 기억과 문서 근거를 구분하게 해 줍니다. 모델이 모를 수 있는 정보나 최신 정보를 문서에서 가져온다고 이해합니다.
RAG가 있어도 결과 검토는 여전히 필요하다는 점 검색이 붙었다고 자동으로 정확해진다고 오해하지 않게 해 줍니다. 문서를 잘못 찾거나 잘못 읽을 수 있으므로 검증이 필요하다고 이해합니다.

RAG는 검색한 뒤 생성한다

RAG를 가장 단순하게 쓰면 다음 흐름입니다.

사용자 질문 -> 질문 임베딩 생성 -> 문서 저장소에서 관련 후보 검색 -> 검색된 문서 조각을 프롬프트 맥락에 추가 -> LLM이 답변 생성

예를 들어 사용자가 이렇게 묻는다고 합시다.

프롬프트는 왜 사실성을 보장하지 못하는가?

검색 시스템은 질문과 가까운 문서 조각을 찾습니다.

검색 후보 역할
P1-12.3 프롬프트의 한계와 평가 사실성, 근거성, 평가 기준 제공
P1-10.3 생성 결과의 품질과 위험 환각, 근거 누락 위험 설명
P1-13.2 유사도 검색의 직관 검색 결과가 후보라는 관점 제공

그다음 시스템은 검색된 조각을 LLM 입력에 함께 넣을 수 있습니다.

질문: 프롬프트는 왜 사실성을 보장하지 못하는가?

참고 자료: - P1-12.3의 관련 문단 - P1-10.3의 관련 문단 - P1-13.2의 관련 문단

지시: 참고 자료를 근거로 답하라.

LLM은 이 입력을 바탕으로 답변을 생성합니다. 이때 답변은 모델 내부 지식만으로 생성된 것이 아니라, 검색된 외부 자료를 참고한 생성 결과가 됩니다.

검색은 외부 기억을 붙이는 방식이다

RAG 논문에서는 사전학습된 모델이 파라미터(parameter) 안에 지식을 저장하지만, 지식을 정밀하게 접근하거나 갱신하는 데 한계가 있다는 문제의식이 제시됩니다. RAG는 여기에 외부의 비파라미터 기억(non-parametric memory)을 결합하는 방식으로 설명됩니다.

여기서는 이렇게 이해하면 됩니다.

구분 직관
모델 내부 지식(parametric memory) 모델이 학습 과정에서 파라미터 안에 압축해 둔 지식
외부 검색 자료(non-parametric memory) 문서 저장소, 데이터베이스, 검색 인덱스처럼 나중에 바꾸거나 추가할 수 있는 자료

모델 내부 지식은 빠르게 사용할 수 있지만, 최신 자료나 특정 조직 문서, 개인 기록, 나중에 추가된 자료처럼 새로 생긴 내용을 자동으로 알지는 못합니다.

반대로 외부 검색 자료는 바꿀 수 있습니다. 문서를 추가하거나 수정하면 검색 대상도 바뀝니다. 그래서 RAG는 다음 문제에 도움이 될 수 있습니다.

문제 RAG가 도울 수 있는 지점
최신성(recency) 최신 문서를 검색 대상으로 넣을 수 있음
근거성(evidence) 답변에 사용할 참고 문단을 제공할 수 있음
출처 추적(provenance) 어떤 문서를 참고했는지 기록할 수 있음
도메인 지식(domain knowledge) 특정 조직, 프로젝트, 책의 자료를 연결할 수 있음

하지만 “도움이 된다”와 “보장한다”는 다릅니다. 검색된 자료가 틀렸거나, 질문과 맞지 않거나, LLM이 자료를 잘못 해석하면 답변도 틀릴 수 있습니다.

RAG는 프롬프트를 대체하지 않는다

RAG는 프롬프트(prompt)를 없애는 구조가 아닙니다. 오히려 프롬프트에 들어갈 맥락(context)을 검색으로 준비하는 구조에 가깝습니다.

요소 역할
프롬프트(prompt) LLM에 작업 지시, 형식, 제약을 전달
검색(retrieval) 참고할 외부 자료 후보를 찾음
보강(augmentation) 검색된 자료를 입력 맥락에 추가
생성(generation) LLM이 보강된 입력을 바탕으로 답변 생성

프롬프트만 쓰는 경우에는 사람이 직접 참고 자료를 넣어야 합니다. RAG를 쓰면 시스템이 먼저 관련 자료를 찾고, 그 결과를 프롬프트 맥락에 넣을 수 있습니다.

프롬프트만 사용: 사람이 질문과 참고 자료를 직접 구성한다.

RAG 사용: 시스템이 질문과 관련된 자료를 검색해 입력 맥락에 붙인다.

따라서 RAG는 프롬프트 엔지니어링(prompt engineering)의 반대편에 있는 개념이 아닙니다. RAG는 프롬프트에 넣을 맥락을 더 체계적으로 준비하는 방법입니다.

RAG의 품질은 여러 단계에 걸려 흔들린다

RAG는 한 번에 작동하는 마법 같은 기능이 아닙니다. 여러 단계가 이어진 파이프라인(pipeline)에 가깝습니다.

문서 준비 -> 조각 나누기(chunking) -> 임베딩 생성 -> 검색 -> 재정렬 또는 필터링 -> 프롬프트 구성 -> 답변 생성 -> 출처 표시와 검토

각 단계에서 문제가 생길 수 있습니다.

단계 생길 수 있는 문제
문서 준비 오래된 문서, 잘못된 문서, 중복 문서가 섞일 수 있음
조각 나누기(chunking) 필요한 맥락이 여러 조각으로 갈라질 수 있음
임베딩(embedding) 질문과 문서가 같은 의미 공간에서 잘 표현되지 않을 수 있음
검색(retrieval) 관련 없는 후보가 상위에 나올 수 있음
프롬프트 구성 너무 많은 자료가 들어가 핵심이 흐려질 수 있음
생성(generation) LLM이 자료 밖의 내용을 섞거나 잘못 요약할 수 있음
출처 표시 실제 답변 근거와 표시된 출처가 어긋날 수 있음

그래서 RAG 시스템을 만들 때는 “검색을 붙였으니 안전하다”가 아니라 “검색, 입력 구성, 생성, 검토를 함께 설계해야 한다”로 봐야 합니다.

RAG는 사실 검증 장치가 아니다

RAG를 처음 접할 때 가장 조심해야 할 오해는 이것입니다.

오해: RAG를 쓰면 LLM의 환각이 사라진다.

더 안전한 설명: RAG는 LLM이 참고할 외부 자료를 제공해 근거 있는 답변을 만들 가능성을 높일 수 있지만, 검색과 생성의 오류를 자동으로 없애지는 않는다.

예를 들어 다음과 같은 상황이 가능합니다.

상황 결과
잘못된 문서가 검색됨 LLM이 틀린 근거를 바탕으로 답할 수 있음
관련 문서가 검색되지 않음 LLM이 일반 지식이나 추측으로 답할 수 있음
문서 일부만 검색됨 맥락이 빠진 답변이 나올 수 있음
상충하는 자료가 검색됨 어느 자료가 더 신뢰할 만한지 판단이 필요함
출처가 표시됨 출처 표시 자체가 답변의 정확성을 보장하지는 않음

이 관점은 학습용 문서 작성 원칙과도 연결됩니다. AI가 생성한 설명은 초안이고, 사실 주장은 근거와 함께 검토해야 합니다. RAG는 근거 후보를 찾는 데 도움을 줄 수 있지만, 최종 판단은 여전히 검토 과정이 필요합니다.

작은 예시로 보는 RAG 흐름

하나의 학습용 문서 모음을 검색 대상으로 삼는다고 생각해 봅니다.

질문: 임베딩은 의미 자체인가?

검색 단계에서는 다음 조각이 후보가 될 수 있습니다.

후보 이유
P1-13.1 임베딩은 의미 자체가 아니다 질문과 직접 연결됨
P1-13.2 가까운 벡터가 항상 좋은 답은 아니다 검색 결과의 한계와 연결됨
P1-11.1 통계적 언어 모델과 임베딩 역사적 배경과 연결됨

RAG 입력은 대략 이렇게 구성될 수 있습니다.

질문: 임베딩은 의미 자체인가?

참고 자료: [P1-13.1에서 검색된 문단] [P1-13.2에서 검색된 문단]

답변 지시: 참고 자료에 근거해 입문자가 이해할 수 있게 설명하라. 자료에 없는 내용은 단정하지 말라.

좋은 답변은 다음 관점을 포함해야 합니다.

임베딩은 의미 자체가 아니라 학습된 벡터 표현이다. 검색 결과는 관련 후보이지 정답 판정이 아니다. 필요하면 출처 문단을 다시 확인해야 한다.

이 예시는 RAG가 답을 “알아내는” 장치라기보다, 답변에 필요한 근거 후보를 LLM 입력에 연결하는 장치임을 보여 줍니다.

체크리스트

  • RAG(retrieval-augmented generation)를 검색과 생성을 결합한 구조로 설명할 수 있다.
  • 검색(retrieval), 보강(augmentation), 생성(generation)의 역할을 구분할 수 있다.
  • 모델 내부 지식(parametric memory)과 외부 검색 자료(non-parametric memory)의 차이를 직관적으로 설명할 수 있다.
  • RAG가 프롬프트(prompt)를 대체하는 것이 아니라 맥락(context)을 준비하는 구조임을 설명할 수 있다.
  • RAG가 최신성(recency), 근거성(evidence), 출처 추적(provenance)에 도움을 줄 수 있음을 말할 수 있다.
  • RAG가 사실 검증이나 환각 제거를 자동으로 보장하지 않는다고 설명할 수 있다.
  • RAG의 품질이 문서 준비, 조각 나누기, 검색, 프롬프트 구성, 생성 단계에 영향을 받는다고 설명할 수 있다.
  • 검색, 보강, 생성, 검토를 나누어 RAG를 정답 보장 장치가 아니라 외부 근거 후보 연결 구조로 설명할 수 있다.
  • 모델 내부 지식과 외부 검색 자료를 나누어 보고, 검색이 붙어도 검토 책임이 남는다는 점을 설명할 수 있다.

출처와 참고 자료