본문 바로가기
프로그램 활용/인공지능(AI)

RAG 검색(Retrieval)의 5단계 과정

by 3604 2026. 9. 9.
728x90
 
1단계. 질문 임베딩 (Query Embedding)
  • 어떤 일이 일어나나요? 사용자가 채팅창에 입력한 질문(자연어)을 컴퓨터가 이해할 수 있는 수학적 좌표 형태인 '벡터(Vector)'로 변환합니다.
  • 이유: 문서들이 이미 숫자로 저장되어 있기 때문에, 질문 역시 같은 형태의 숫자로 바꿔야 서로 비교할 수 있습니다.
2단계. 벡터 유사도 검색 (Vector Similarity Search)
  • 어떤 일이 일어나나요? 질문 벡터와 벡터 데이터베이스(Vector DB)에 미리 저장되어 있던 수만, 수억 개의 문서 조각(Chunk) 벡터들을 비교합니다.
  • 어떻게 찾나요? 주로 코사인 유사도(Cosine Similarity) 등의 수학적 알고리즘을 사용해 공간상에서 질문과 가장 가까운 거리에 있는(의미가 가장 비슷한) 문서 조각들을 후보군으로 추출합니다.
3단계. 키워드 검색 결합 (하이브리드 검색, 선택적 단계)
  • 어떤 일이 일어나나요? 의미 기반 검색의 약점을 보완하기 위해 전통적인 키워드 검색(BM25 등)을 동시에 수행하여 결과를 합칩니다.
  • 이유: 의미 검색은 맥락을 잘 짚지만, '상품 번호', '사람 이름', '정확한 날짜' 같은 고유명사나 특정 키워드를 맞춤형으로 콕 집어내는 데는 키워드 검색이 더 정확하기 때문입니다.
4단계. 결과 재정렬 (Reranking)
  • 어떤 일이 일어나나요? 2단계와 3단계를 통해 골라낸 상위 문서 조각들(예: 20~30개)을 리랭커(Reranker)라는 특화된 AI 모델에 다시 통과시켜 순위를 정밀하게 재조정합니다.
  • 이유: 벡터 검색은 속도가 빠른 대신 조금 둔한 구석이 있습니다. 리랭커는 속도는 조금 느리지만 질문과 문서의 연관성을 훨씬 정확하고 꼼꼼하게 채점하여 정말로 가장 가치 있는 탑 3~5개의 문서만 최종적으로 골라냅니다.
5단계. 컨텍스트 전달 (Context Delivery)
  • 어떤 일이 일어나나요? 최종 엄선된 최상위 문서 조각들을 텍스트 형태로 다시 변환하여, 사용자의 원래 질문과 함께 LLM(대규모 언어 모델)에게 전달할 준비를 마칩니다. 이 추출된 문서 데이터를 RAG에서는 컨텍스트(Context, 문맥)라고 부릅니다.

💡 검색 단계 요약
text
[사용자 질문]
      │
      ▼
 1. 질문을 숫자로 변환 (임베딩)
      │
      ▼
 2. DB에서 의미가 비슷한 문서들 1차 추출 (벡터 검색 + 키워드 검색)
      │
      ▼
 3. 가장 정답에 가까운 문서 순으로 정밀 채점 (리랭킹)
      │
      ▼
[최종 문서 조각 3~5개 선정] ──> 생성 모델(LLM)로 전달
코드를 사용할 때는 주의가 필요합니다.
 
RAG의 성능은 이 검색 과정에서 "얼마나 오염되지 않고 정확한 문서를 가져오느냐"에 80% 이상 좌우됩니다.
728x90

'프로그램 활용 > 인공지능(AI)' 카테고리의 다른 글

'DeepSeek(메인 LLM)'과 'vLLM(서빙 프레임워크)' 조합  (0) 2026.09.10
Vector DB  (0) 2026.09.09
프롬프트 작성 예시  (0) 2026.09.08
LLMOps  (0) 2026.09.07
Flower 연합학습 프레임워크 설치 및 실행  (0) 2026.09.04