Introduction to RAG
Last updated
Last updated
본 튜토리얼을 시작하기 전에, 아래 개념들을 먼저 알고 오시면 이해가 훨씬 쉽습니다.
→ LLM(Large Language Model)이 무엇인지, 어떤 일을 할 수 있는지에 대해 배워보세요.
→ LLM이 무엇을 잘하고 못하는 지 그리고 한계 및 주의사항에 대한 개념이 필요합니다.
→ RAG에서 핵심인 "외부 문서"를 어떻게 AI가 읽고 이해할 수 있게 만드는지, Document Parsing 개념을 미리 익혀두세요.
요즘 RAG를 써야한다, RAG 기술의 중요하다 등 자주 언급되고 있는데요, "도대체 RAG가 무엇인지", 한 번쯤 궁금하셨던 적 있으시죠?
이번 튜토리얼에서는 바로 그 궁금증을 함께 풀어보려고 합니다.
우리가 자주 사용하는 대규모 언어 모델(LLM)이 외부 문서를 읽고 이해하는 능력이 추가로 필요한지를 RAG(Retrieval-Augmented Generation)이라는 개념을 통해 자세히 알아보겠습니다.
RAG는 Retrieval-Augmented Generation의 약자로, 검색(Retrieval)과 생성(Generation)을 결합한 AI 기술입니다.
기존 LLM(Large Language Model)은 훈련 시점 이전의 정보만을 기억하지만, RAG는 외부 지식 저장소에서 관련 정보를 검색하여 이를 바탕으로 응답을 생성함으로써 보다 정확하고 신뢰할 수 있는 결과를 제공합니다.
RAG는 외부 지식을 LLM에게 제공하기에 LLM의 한계인 Hallucination과 Knowledge Cutoff 를 해결할 수 있는 방법론 중 하나로 각광받고 있습니다.
RAG는 크게 세 가지로 나뉩니다:
Retrieval (검색)
벡터, 키워드, 그래프 등 다양한 방식으로 외부 데이터베이스에서 필요한 정보를 검색
Augmented (증강)
검색된 정보를 기반으로 LLM 입력에 문맥을 보완
Generation (생성)
LLM이 증강된 정보를 바탕으로 응답 생성
예: 질의응답(QA), 요약(Summarization), 분류(Classification) 등
RAG의 핵심 가치는 지식의 증강(Augmentation of Knowledge)입니다. 이는 다음 두 가지 방향에서 설명할 수 있습니다:
LLM이 학습한 시점 이후에 생성된 지식을 반영하고 싶을 때 활용
실시간으로 변화하는 최신 정보를 반영하고 싶을 때 활용
예를 들어:
2023년에 학습된 LLM은 2025년 출시된 노트북의 기능을 모릅니다.
하지만 외부 웹사이트나 제품 설명서를 RAG로 연결하면 최신 기종의 사양과 특징에 대해 설명할 수 있습니다.
부동산 시세나 환율처럼 실시간으로 바뀌는 데이터를 반영해 설명하고자 할 때도 RAG가 필요합니다.
LLM이 학습한 일반적인 범용 지식 외의 특수 지식을 반영하고 싶을 때 활용
도메인 특화 지식(예: 법률, 의료, 사내 문서)에 집중하고 싶을 때 활용
예를 들어:
한 기업의 내부 매뉴얼이나 정책 문서를 기반으로 직원 질문에 답변하는 챗봇을 제작 시, RAG를 활용할 수 있습니다.
변호사 사무소에서 국내 법률 문서나 판례를 참고한 법률 상담 요약본을 만들 때, RAG가 필요합니다.
RAG는 이런 니즈를 충족하며, 지식 최신성과 정확성을 모두 확보할 수 있는 방법입니다.
RAG는 외부 정보를 일련의 과정을 거쳐서 처리한 후, 사용자의 질문(쿼리)와 관련된 문서를 검색하여 질문과 관련된 문서를 참조하여 LLM이 답변을 생성하는 기술입니다.
이제 본격적으로 RAG 구현 단계에 대해서 알아보겠습니다.
일단 먼저 RAG 구현 단계를 기획해야 합니다.
문제 정의
RAG로 무엇을 해결할 것인지 명확히 해야 합니다.
“그냥 챗봇 만들기”라고만 하면 어떠한 가치도 제공할 수 없습니다.
데이터 기획
어떤 문서를 사용할지, 형식은 무엇인지, 최신성은 어떻게 유지할지 고민해야 합니다.
보안/권한 설계
문서 접근 권한이 사용자별로 다른 경우, 접근 제한과 관리가 필요합니다.
평가 기획
답변이 정확한지 어떻게 평가할지 기준을 정해두어야 합니다.
정답셋 만들기, 사용자 피드백 등
UI/UX 기획
어떤 UI가 문제를 풀기에 가장 적합할 지 고민해야합니다.
챗봇 UI가 항상 정답은 아닙니다.
예를 들어, 요약이라면 카드형 UI가 더 적절할 수 있습니다.
기획이 완료되면 본격적으로 외부 문서를 LLM이 이해할 수 있도록 준비하는 과정이 필요합니다.
Data Loading
먼저, PDF, Word, 웹페이지 등 다양한 문서를 불러오는 작업입니다.
데이터 확장자, 데이터 형태, 데이터 종류에 따라서 적절하게 로드해야합니다.
Upstage Document Parse를 활용하면 텍스트 뿐만 아니라 문서 구조까지 불러올 수 있습니다.
Chunking (청킹)
데이터 청킹은 긴 문서를 적절한 크기의 조각(chunk)으로 잘라서 저장해두는 것을 의미합니다.
청크의 사이즈가 너무 작으면 맥락을 놓칠 수 있고, 너무 길면 LLM 호출 시 에러가 나거나 호출 비용이 증가하기 때문에 적절한 사이즈로 균형을 유지하는 것이 중요합니다.
또한, 청킹을 잘못하게 되면 청킹으로 인해 정보의 맥락이 소실될 수 있기 때문에 문서에 따라 적절한 청킹 기법을 도입할 필요가 있습니다.
Embedding
임베딩은 텍스트를 숫자 벡터로 변환해 질문 ↔ 문서 간 유사도 비교 가능하게 합니다.
Upstage Solar Embedding 등 임베딩 API를 활용하실수 있습니다.
Indexing
임베딩된 데이터를 벡터 데이터베이스(VectorStore)에 저장하고, 자료구조를 이용하여 데이터를 인덱싱 합니다.
이를 통해 나중에 질문이 들어오면 관련 문서를 빠르게 찾을 수 있습니다.
이제 사용자가 질문을 하면, 그에 대해 문서를 검색하고, 답변을 생성하는 단계입니다.
Prompt Engineering
검색된 문서 Context를 기반으로 LLM에게 어떻게 물어볼지 설계하는 과정입니다.
적절한 Instruction을 통해서 원하는 결과를 유도할 수 있습니다.
예: 예시 추가, 페르소나 제공, 구분자 사용 등
Workflow Engineering
질문이 들어오면 → 관련 문서를 찾고 → 프롬프트를 만들고 → 답변을 생성하는 전 과정을 자동화하는 단계입니다.
요즘은 단순한 흐름을 넘어서, 에이전트(Agent) 워크플로우를 를 설계하여 더 적절한 답변을 생성할 수 있도록 유도하기도 합니다.
예: 질문이 "오늘 날씨 어때?"면 날씨 API를 호출하여, 결과 요약해서 보여줍니다.
Agent에 대한 더 자세한 설명은 “Upstage Product Use Case : Paper Processing : AI Agent” 를 참고하세요!
Demo
직접 제작한 RAG 파이프라인을 실제로 사용자가 사용할 수 있도록 구현하는 단계입니다.
Gradio, Streamlit 등으로 쉽게 챗봇 UI로 구현하실 수 있습니다.
RAG는 규칙 기반 평가가 어렵고, 사람들마다 기대하는 정답이 다를 수 있습니다.
QA Set 구축
질문 - 정답 셋을 만들고, 평가기준을 구축할 수 있습니다.
질문 - 정답 셋을 구축하는 과정에서, 전문가 혹은 사용자 인터뷰가 필요할 수 있습니다.
또한, 검색 문서가 적절한 지 검색 결과에 대한 정답과, 생성된 답변이 정확한 지 생성 결과에 대한 정답을 각각 만들고 나눠 평가하면, 병목 지점을 파악하기에 용이합니다.
LLM 기반 평가
질문 - 정답 셋이 매우 많거나, 여러 번 평가를 반복해야하는 경우, 생성 결과 평가를 위해 LLM 기반 평가를 고려할 수 있습니다.
LLM에게 질문 / 생성결과 / 정답을 제공하고, 정답과 얼마나 일치하는지 평가를 요구하는 방법입니다.
지금까지 RAG 제작 파이프라인에 대해서 알아보았습니다.
이제 실습을 통해서 본격적으로 RAG 파이프라인을 구현하러 가볼까요?
이번 튜토리얼에서는 RAG(Retrieval-Augmented Generation)의 개념부터 실제 구현 단계까지 차근차근 알아보았습니다.
🔹 RAG란? : 검색(Retrieval)과 생성(Generation)을 결합하여, 외부 문서를 기반으로 LLM의 응답을 강화하는 기술입니다.
🔹 왜 RAG가 필요한가? : LLM은 학습된 지식에 한계가 있으며 최신 정보나 도메인 지식에 취약합니다. RAG는 이런 한계를 해결하여 정확하고 맥락 있는 응답을 가능하게 합니다.
🔹RAG 구현 단계
1️⃣ 기획 (Planning) : 문제 정의, 데이터 설계, 평가/UX 기획
2️⃣ 데이터 준비 (Ingestion) : 문서 불러오기 → 청킹 → 임베딩 → 벡터 DB 저장
3️⃣ 질문 처리 (Querying) : 관련 문서 검색 → 프롬프트 생성 → LLM 응답
4️⃣ 평가 (Evaluation) : 질문-답변 셋 생성 또는 LLM을 통한 자동 평가
이제는 실습을 통해 직접 RAG 파이프라인을 구축하러 가볼까요?
Suwan Kim | AI Edu | Upstage