본문으로 건너뛰기
김신건의 로그

LLM RAG: Retrieval-Augmented Generation

· 수정 · 📖 약 1분 · 323자/단어 #ai #llm #rag #retrieval
LLM RAG, RAG, Retrieval Augmented Generation, 검색 증강 생성

정의

RAG (Retrieval-Augmented Generation) 는 LLM 생성 전에 외부 지식 베이스에서 관련 문서를 검색 하여 프롬프트에 삽입하는 패턴. 최신 정보, 도메인 지식, 사설 데이터 접근 필요할 때 사용.

왜 필요한가

  • 최신 정보: LLM 학습 컷오프 이후 지식
  • 도메인 데이터: 회사 내부 문서, 개인 지식
  • hallucination 감소: “출처” 를 명시
  • 비용 절감: 파인튜닝 대신

파이프라인

  질의 → embed → vector search → 상위 K 문서 → prompt 조합 → LLM → 답변

핵심 구성 요소

1. 문서 chunk 화

문서를 청크 (5001000 토큰) 로 분할. 겹치는 슬라이딩 윈도우 (100200 토큰) 로 문맥 유지.

2. Embedding

각 청크를 벡터로 변환. text-embedding-3-small, bge-large-en, nomic-embed 등.

3. Vector Store

4. Retrieval

  • Dense: cosine similarity, HNSW 인덱스
  • Sparse (BM25): 정확 매칭
  • Hybrid: 두 점수 결합
  • Reranker: cross-encoder 로 상위 K 재순위

5. Prompt Composition

Context:
[문서 1 요약]
[문서 2 요약]

Question: {질의}
Answer based on the context above.

최적화 기법

  • HyDE: 가상 답변 embedding 으로 검색
  • Multi-query rewriting: 질의 확장
  • Contextual compression: chunk 내 관련 부분만 추출
  • Query routing: 질의 종류별 다른 인덱스

평가 지표

  • Retrieval: recall@k, MRR
  • Generation: faithfulness (사실성), answer relevance
  • Ragas 프레임워크

참고

이 글의 용어 (3개)
[LLM Eval] HELM: Holistic Evaluation of Language Modelsai
정의 HELM (Holistic Evaluation of Language Models) 는 Stanford CRFM (Center for Research on Foundation…
[Redis] Vector Search: HNSW, SVS-VAMANA, Semantic Cachedatabase-internals
정의 Vector Search 는 임베딩 벡터의 거리/유사도 기준으로 근접한 K 개 를 찾는 검색. Redis 는 RediSearch 모듈 (Redis 8 부터는 코어) 과 Va…
Function Calling / Tool Use: LLM 도구 사용ai
정의 Function Calling (또는 Tool Use) 은 LLM 이 정의된 함수/도구를 호출 인자를 생성 하는 기능. JSON schema 로 함수 시그니처를 알려주면, …

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기