RAG는 Retrieval-Augmented Generation의 줄임말로, 정보 검색(Retrieval)과 생성(Generation)을 결합한 구조이다. LLM이 단순히 학습된 지식만으로 응답하는 것이 아니라, 외부 지식 기반에서 정보를 가져온 뒤, 그 정보를 바탕으로 더욱 정확하고 근거 있는 응답을 생성하는 방식이다.
기존의 LLM은 아래 한계점을 가지고 있다.
이런 문제를 해결하기 위해, LLM에 검색 능력을 더한 것이 바로 RAG다.
graph LR
A[User Query] --> B[Retriever (벡터 검색)]
B --> C[Relevant Documents]
C --> D[Generator (LLM)]
D --> E[Final Answer]
| 구성 요소 | 설명 |
|---|---|
| Query Encoder | 사용자 질문을 임베딩하여 검색에 적합한 벡터로 변환 |
| Retriever | 문서들을 벡터화하고, 질문과 유사한 문서를 빠르게 검색 |
| Context Passer | 검색된 문서를 LLM의 입력으로 넣어줌 (prompt에 삽입) |
| Generator (LLM) | 문맥 기반으로 답변을 생성 (GPT, LLaMA 등 사용) |
사용자가 “AWS에서 VPC가 뭐야?”라고 질문한다면…
VPC는 Virtual Private Cloud의 약자로…"| 항목 | 설명 |
|---|---|
| 문서 전처리 | 검색 성능을 위해 문서를 잘게 쪼개고 임베딩 처리해야 함 |
| 벡터 데이터베이스 | FAISS, Weaviate, Qdrant, Pinecone 등 사용 |
| 프롬프트 길이 제한 | LLM 입력 토큰 수에 따라 검색 결과 일부만 반영될 수 있음 |
| 문서 품질 관리 | 불필요한 데이터가 포함되면 헛소리 가능성 증가 |
| 분야 | 사용 사례 |
|---|---|
| 챗봇 | 사내 위키, 매뉴얼 기반의 답변 제공 |
| 검색 엔진 | 질의 응답형 검색 시스템 구축 |
| 학술 도우미 | 논문 요약 기반 질의 응답 |
| 코드 도우미 | 내부 코드베이스 검색 + 답변 생성 |
RAG는 단순히 LLM에 검색을 덧붙인 것이 아니다.
"검색의 정확도"와 "생성의 자연스러움"을 동시에 끌어올리는 방법이며,
특히 사내 문서 검색, 고객지원 자동화, 전문 분야 지식 답변 등에서
실용성과 정확도를 동시에 잡을 수 있는 강력한 방식이다.