개요

RAG (Retrieval Augmented Generation)는 Large Language Models (LLMs)의 응답 생성 시 외부 지식을 검색하여 컨텍스트로 제공하는 기법입니다. LLM의 환각(hallucination)을 줄이고, 학습 데이터에 없는 최신/사내 정보를 활용할 수 있게 합니다.

핵심 개념

[사용자 질문] → [검색(Retrieval)] → [관련 문서 추출] → [LLM에 컨텍스트로 전달] → [답변 생성(Generation)]

왜 RAG인가?

문제RAG 해결
LLM 환각근거 문서 기반 답변 → 정확도 향상
학습 데이터 시점 제한최신 문서 실시간 검색
사내/비공개 데이터파인튜닝 없이 사내 문서 활용
출처 제공검색된 문서를 출처로 인용 가능

RAG vs 파인튜닝

항목RAG파인튜닝
데이터 업데이트즉시 (문서 교체)재학습 필요
비용낮음 (임베딩+검색)높음 (GPU 학습)
정확도검색 품질에 의존도메인 특화
환각줄어듦 (근거 있음)여전히 가능
최적 용도FAQ, 문서 검색, 지식베이스스타일/톤 변경, 특수 태스크

RAG 파이프라인

1단계: 문서 처리 (Ingestion)

[원본 문서] → [청킹(Chunking)] → [임베딩(Embedding)] → [벡터 DB 저장]

청킹 전략:

방식설명적합
고정 크기500~1000 토큰 단위 분할범용
문장/문단의미 단위 분할정확도 우선
재귀적구분자 기반 계층적 분할코드, 구조화 문서
시맨틱임베딩 유사도 기반 분할최고 품질

임베딩 모델:

모델개발사차원특징
text-embedding-3-largeOpenAI3072상용 최고 성능
text-embedding-3-smallOpenAI1536저가, 충분한 성능
Voyage 3Voyage AI1024코드/법률 특화
BGE-M3BAAI1024오픈소스 최강, 다국어
Nomic EmbedNomic768오픈소스, 8K 컨텍스트
mxbai-embed-largeMixedbread1024오픈소스

2단계: 검색 (Retrieval)

방식설명
벡터 검색임베딩 코사인 유사도 (의미 기반)
키워드 검색BM25 등 전통 검색 (정확 매칭)
하이브리드 검색벡터 + 키워드 조합 (가장 효과적)
리랭킹검색 결과를 Cross-encoder로 재정렬

리랭킹 모델: Cohere Rerank, BGE-Reranker, FlashRank

3단계: 생성 (Generation)

검색된 문서를 LLM 프롬프트에 컨텍스트로 삽입:

System: 아래 문서를 참고하여 질문에 답하세요. 문서에 없는 내용은 "모르겠습니다"라고 답하세요.

Context:
{검색된 문서 1}
{검색된 문서 2}
{검색된 문서 3}

User: {사용자 질문}

고급 RAG 기법

기법설명
Query Rewriting사용자 질문을 검색에 최적화된 형태로 변환
HyDE가상 답변 생성 → 가상 답변으로 검색
Multi-Query하나의 질문을 여러 관점으로 변환하여 검색
Parent-Child Chunking작은 청크로 검색, 큰 청크(부모)를 컨텍스트로 전달
Contextual Retrieval청크에 문서 맥락 정보를 추가하여 임베딩
Graph RAG지식 그래프 기반 관계 검색
Agentic RAGAI 에이전트가 검색 전략을 동적 결정
Corrective RAG (CRAG)검색 결과 품질 자체 평가 → 부족하면 웹 검색
Self-RAG모델이 검색 필요 여부를 스스로 판단

RAG 프레임워크 / 도구

도구특징
LangChainRAG 파이프라인 구축 표준, Python/JS
LlamaIndex데이터 인덱싱 특화, 다양한 데이터 소스
Haystackdeepset, 프로덕션 RAG 파이프라인
RAGFlow오픈소스 RAG 엔진, 문서 파싱 강점
VerbaWeaviate 기반 RAG 앱
Dify노코드 RAG 앱 빌더
Flowise드래그앤드롭 RAG 파이프라인

→ 벡터 저장소: 벡터 데이터베이스

RAG 평가

메트릭측정
Faithfulness답변이 검색 문서에 근거하는가
Relevancy검색된 문서가 질문과 관련 있는가
Answer Correctness답변이 정답과 일치하는가
Context Precision관련 문서가 상위에 검색되는가

평가 도구: Ragas, TruLens, DeepEval, LangSmith

관련 항목