RAG란

gclee·2026년 1월 21일

LangChain-RAG

목록 보기
6/13

RAG 소개

RAG(Retrieval Augmented Generation)는 LLM이 외부 데이터를 검색하여 답변을 생성하는 기술입니다. LLM은 학습 데이터에 없는 정보나 최신 정보에 대해 답변하기 어렵지만, RAG를 사용하면 외부 문서를 참조하여 정확하고 최신의 답변을 제공할 수 있습니다.

LLM의 한계란?

LLM은 학습 시점까지의 데이터만 알고 있습니다. 이로 인해 다음과 같은 한계가 있습니다.

  • 최신 정보 부재: 학습 이후의 정보를 모름
  • 도메인 지식 부족: 특정 회사/조직의 내부 문서 내용을 모름
  • 할루시네이션: 모르는 내용을 그럴듯하게 지어내는 현상

RAG의 동작 원리란?

RAG는 크게 두 단계로 구성됩니다.

  • Indexing (색인화): 문서를 벡터로 변환하여 저장
  • Retrieval + Generation: 질문과 관련된 문서를 검색하여 답변 생성

RAG 파이프라인 구조

RAG 시스템은 다음 컴포넌트로 구성됩니다.

1. Document Loaders

다양한 형식의 문서를 불러오는 역할을 합니다.

  • TextLoader: 텍스트 파일
  • CSVLoader: CSV 파일
  • PyPDFLoader: PDF 파일
  • WikipediaLoader: 위키피디아 문서

2. Text Splitters

문서를 적절한 크기의 청크(chunk)로 분할합니다.

  • CharacterTextSplitter: 단순 문자 기준 분할
  • RecursiveCharacterTextSplitter: 재귀적 분할 (권장)
  • SemanticChunker: 의미 기반 분할

3. Embeddings

텍스트를 벡터(숫자 배열)로 변환합니다.

  • OpenAIEmbeddings: OpenAI 임베딩 모델
  • HuggingFaceEmbeddings: 무료 로컬 임베딩 모델

4. Vector Stores

벡터화된 문서를 저장하고 검색합니다.

  • Chroma: 가볍고 사용하기 쉬운 벡터 DB
  • FAISS: 대규모 벡터 검색에 최적화

5. Retrievers

질문과 유사한 문서를 검색합니다.

  • 기본 Retriever: 유사도 기반 검색
  • MMR Retriever: 다양성을 고려한 검색
  • MultiQueryRetriever: 질문을 확장하여 검색

RAG의 주요 장점

1. 최신 정보 제공

외부 문서를 참조하므로 LLM 학습 이후의 최신 정보도 답변할 수 있습니다.

2. 도메인 특화 답변

회사 내부 문서, 매뉴얼 등을 참조하여 특정 도메인에 특화된 답변을 생성합니다.

3. 할루시네이션 감소

실제 문서를 기반으로 답변하므로 LLM이 내용을 지어내는 현상을 줄일 수 있습니다.

4. 출처 제공 가능

답변의 근거가 된 문서를 함께 제공할 수 있어 신뢰성이 높아집니다.

RAG 워크플로우 정리

[Indexing 단계]
문서 → Load → Split → Embed → Store

[Query 단계]
질문 → Embed → Retrieve → Generate → 답변
단계설명
Load다양한 형식의 문서를 불러옴
Split문서를 적절한 크기로 분할
Embed텍스트를 벡터로 변환
Store벡터를 데이터베이스에 저장
Retrieve질문과 유사한 문서 검색
Generate검색된 문서를 참조하여 답변 생성

0개의 댓글