[13. Langchain][RAG] RAG 문서 저장 - 검색 요약 (250617)

해피해피슈크림·2025년 6월 17일

RAG 개요

  • RAG는 검색 기반 생성(Retireval Augmented Generation)으로, LLM 모델이 답변을 생성할 때 외부 문서를 참조할 수 있도록 하는 것이다.
  • 크게 두 단계로 나뉜다. 1. 문서 저장, 2. 검색 및 생성

1. 문서 저장

답변을 생성할 때 참조할 문서를 벡터 데이터베이스에 저장한다.
1. Load: 문서를 로드한다.
2. Split: 텍스트를 적절한 크기로 쪼갠다. (Chunking)
3. Embed: 각 청크를 임베딩(벡터화)한다.
4. Store: 벡터 데이터베이스에 저장한다.

이때 관계형 데이터베이스가 아닌 벡터 데이터베이스에 저장하는 이유는, 문서 검색을 할 때 "일치"가 아닌 "유사성"을 고려해야 하기 때문이다.

2. 검색


쿼리를 받아 벡터 데이터베이스에 검색한다.
1. 사용자의 쿼리를 받아 임베딩 한다.
2. 벡터 데이터베이스에 있는 문서들과 유사도를 계산한다.
3. 유사도가 높은, 즉 관련성이 높은 문서 청크들을 추출한다.
4. 이를 LLM에 전달한다.

  • MMR(Maximal Marginal Relevance): RAG의 검색 과정에서, 단순히 쿼리와 가장 유사한 문서만을 고르는 것이 아니라, 유사성과 다양성의 균형을 맞춰서 결과를 선정하는 알고리즘이다.
  • 단순히 쿼리를 받아 그대로 임베딩 하지 않고, ReRank RAG, HyDE, MultiQueryRetriever, MAP Reduce RAG 등 고도화된 RAG를 쓸 수 있다.

1개의 댓글

comment-user-thumbnail
2025년 6월 22일

복습하러 왔습니다~ 정리해놓으니 보기 좋네요 굿👍🏼 기특해요🥰

답글 달기