RAG (Retrieval-Augmented Generation, 검색 증강 생성)
Term (용어)aiverifiedFri Apr 24

RAG (Retrieval-Augmented Generation, 검색 증강 생성)

별칭: 검색 증강 생성 · RAG · Open-Book Test

#기술용어#RAG#검색증강생성#오픈북테스트#환각방지#ContextWindow

RAG (Retrieval-Augmented Generation, 검색 증강 생성)

정의

LLM이 답변을 생성할 때, 외부 지식 베이스에서 관련 문서를 먼저 검색(Retrieval)한 후 그 내용을 컨텍스트로 함께 사용하는 기법. LLM 자체의 학습 지식만으로는 부족하거나 부정확할 수 있는 영역을 외부 문서로 보강.

본문 — 기술 상세

작동 흐름

사용자 질의 → [임베딩 변환] → 벡터 DB에서 유사도 검색
           → Top-K 관련 문서 추출 → LLM 컨텍스트에 주입
           → LLM이 검색된 문서 + 질의를 보고 답변 생성

비유 — 오픈북 테스트

LLM에게 "오직 이 책 안에서만 답을 찾아라"라고 제약하는 것. 시험에서 폐쇄형 시험(LLM의 학습 지식만)이 아닌 오픈북 시험(검증된 자료를 펴놓고)을 보게 하는 것과 같다.

구성 요소

  1. 문서 청킹(Chunking) — 긴 문서를 적절한 크기(예: 500토큰)로 분할
  2. 임베딩(Embedding)term/vector-embedding으로 청크를 벡터화
  3. 벡터 DB — Pinecone, Weaviate, Chroma, pgvector 등
  4. 검색(Retrieval) — 질의 임베딩과 유사도 Top-K
  5. 재순위(Re-ranking) — BM25·LLM 재평가로 정확도 향상
  6. 생성(Generation) — LLM에게 질의 + 검색 결과를 함께 입력

변형

  • Naive RAG — 단순 1회 검색·생성
  • Advanced RAG — 청킹·검색·재순위 모두 정교화
  • Modular RAG — 모듈식 파이프라인
  • Self-RAG — LLM이 스스로 추가 검색 필요 여부 판단
  • GraphRAG — 지식 그래프 기반 검색 (Microsoft, 2024)

환각 방지

RAG의 가장 중요한 효과 = term/hallucination-환각 감소. LLM이 "기억"하지 않고 "찾아서 답"하면 거짓 정보 생성 위험이 줄어든다. 다만 검색 결과 자체가 부정확하면 RAG도 한계.

사역 적용

본 LLMWiki는 RAG의 한 형태이지만, Karpathy 패턴은 표준 RAG와 결정적으로 다르다 (concept/karpathy-llm-wiki-pattern):

표준 RAGLLMWiki (Compilation 방식)
매 질의마다 raw 문서 검색·합성한 번 컴파일해 wiki Card로 누적
누적되는 것 ✗ (매번 처음부터)복리로 축적 (교차참조 이미 존재)
임베딩 인프라 필수옵션 (~100 source까지 wikilink만으로 충분)
검색 품질이 답변 품질 결정wiki Card 자체가 사람·LLM 함께 관리한 정제물

→ 본 프로젝트의 자동 저작(소책자·PPT·칼럼)은 RAG over LLMWiki 형태. 즉 검색 대상이 raw sources가 아니라 이미 정제된 wiki Card.

4층 신학 가드레일에서 RAG 활용:

  • 1층 성경 원문·원어를 RAG 코퍼스로 → 신학적 정확성 보장
  • 2층 정통 주석을 RAG → 이단 해석 차단
  • A04.04 doctrine-sidecar가 RAG 결과의 정통성 검증

한계와 주의사항

  • 검색 품질 의존성 — 좋은 청킹·임베딩·재순위 없으면 RAG는 더 큰 환각을 만들 수 있음
  • 컨텍스트 윈도우 제한 — Top-K가 너무 크면 LLM 컨텍스트 초과
  • 신학적 검증 한계 — 코사인 유사도가 신학적 정통성을 보장하지 ✗
  • 임베딩 비용 — 큰 코퍼스는 임베딩·저장·검색 비용 누적

관련