최근 “LLM과 RAG 기술 활용편” 해커톤에 참여하며, 대형 언어 모델(LLM)의 한계와 이를 극복하기 위한 Retrieval-Augmented Generation(RAG)의 개념을 깊이 탐구했습니다. 본 TIL에서는 RAG의 이론적 원리, 구성 요소, 구현 파이프라인, 주요 프레임워크, 그리고 축구 MBTI 챗봇 프로젝트 사례를 토대로 ‘나만의 RAG’를 설계해 보겠습니다.
핵심: LLM 단독으로는 정확도와 최신성을 동시에 담보하기 어려우므로, 외부 문서를 활용해 문맥을 보강하는 RAG가 주목받는다.
flowchart LR
Q[사용자 질문] --> R[Retrieval: 문서 검색]
R --> A[Augmentation: 문맥 결합]
A --> G[Generation: 답변 생성]
G --> O[응답 출력]
임베딩(Embedding)
유사도 측정
포인트: 임베딩 품질이 곧 검색 정확도로 직결되므로, 도메인 특화 임베딩 모델을 활용하거나 후처리(차원 축소, Clustering 등)를 적용하면 성능을 높일 수 있다.
| 프레임워크 | 특징 | 장점 | 단점 |
|---|---|---|---|
| LangChain | 모듈화된 컴포넌트 제공 | 유연한 파이프라인 설계 | 초기 러닝커브 높음 |
| LlamaIndex | 문서 중심 인덱싱 | 간편한 문서 관리 | 커스터마이징 제한 |
| Haystack | 엔터프라이즈 지원 | 다양한 백엔드 연동 | 설정 복잡도 높음 |
“RAG는 단순히 검색+생성이 아니라, 문서 품질 관리와 임베딩 효율화가 생명입니다. 직접 구축해 보니, 데이터 수집·전처리 파이프라인이 곧 사용자 경험을 좌우하더군요. 다음에는 Transformer 기반 Retrieval 모델(예: DPR, ColBERT)을 적용해 검색 정확도를 비교 분석해 보겠습니다.” ([Hippo's data][1])