본문 바로가기
카테고리 없음

RAG 구현시 고려사항 : (2) RAG 아키텍처 구성요소

by 데이터 쿡북 2025. 7. 11.

 

 

 

1. Query Embedding (임베딩 모델)

역할: 사용자의 질문을 의미 벡터로 변환하여 검색에 활용할 수 있게 합니다.

  • 대부분의 RAG 시스템은 Dense Embedding을 사용합니다. (ex. text-embedding-ada-002, bge, E5 등)
  • 문장의 의미적 유사성을 보존하는 것이 핵심.
  • 문서 인덱싱 시에도 같은 모델로 임베딩하여 저장합니다.

임베딩 모델 선택 시 고려사항:

항목설명
다국어 지원 한국어, 영어 등 대상 언어 지원 여부
성능 semantic similarity 기준의 평가 (e.g. MTEB, BEIR)
토큰 제한 문서 단위 처리 가능 여부
라이선스 상용 사용 가능 여부 (OpenAI vs 오픈소스)
 

2. Retriever (벡터 검색기)

역할: 벡터화된 쿼리와 벡터 DB에 저장된 문서 임베딩 간의 유사도를 계산하여 관련성이 높은 상위 K개 문서를 반환합니다.

주요 구성 요소:

  • Vector Store: 문서 벡터가 저장된 데이터베이스
  • Similarity Metric: L2 거리, Cosine 유사도 등
  • Indexing 구조: Flat, IVF, HNSW 등

대표 기술 스택:

기술설명
FAISS 빠르고 유연한 오픈소스 라이브러리
Weaviate REST API 기반, 필터링 기능 강력
Pinecone 클라우드 기반 관리형 서비스
Milvus 대규모 엔터프라이즈 검색에 적합
 

고급 옵션:

  • Filtering by metadata: 날짜, 문서 타입, 권한 등에 따라 검색 제한 가능
  • Hybrid Retrieval: Dense + BM25 혼합

3. Prompt 구성기 (Context Formatter)

역할: 검색된 문서를 LLM이 잘 이해할 수 있도록 포맷팅합니다.

주요 고려사항:

  • 문서 수 제한: LLM context window 제한 (예: GPT-4는 최대 128K tokens)
  • 문서 순서: 유사도 기준 정렬 / 최신순 / 우선도 기반
  • 문서 구분자 삽입: 각 문서 간 경계를 명확히
  • Query Rewriting (선택): 검색 시의 질문과 응답 생성 시 질문을 분리 설계 가능

예시 Prompt 구조:

text
복사편집
[Question] 대한민국의 대통령은 누구입니까? [Context] 1. 윤석열은 2022년 대한민국의 대통령으로 선출되었습니다. 2. 대통령은 국가원수이며 행정부 수반입니다. [Instruction] 위 정보를 바탕으로 질문에 정확히 답하세요.

4. Generator (LLM)

역할: 검색된 문서(Context)를 바탕으로 사용자의 질문에 답을 생성합니다.

핵심 기능:

  • Context-aware generation
  • 정보 통합 및 자연어 표현
  • 근거 기반 응답 생성 (Faithful Generation)

고려할 요소:

항목설명
Context 길이 긴 문맥을 얼마나 잘 처리하는지
Fact-groundedness 실제 문서 기반으로 응답 생성 가능 여부
비용 호출당 토큰 단가 및 응답 시간
통합 전략 Prepend 방식, Chain-of-Thought 방식 등
 

사용 예시:

모델특징
GPT-4 / GPT-4o 높은 정밀도와 컨텍스트 이해력
Claude 3 긴 context 대응 우수
LLaMA 3 오픈소스 환경에 적합
 

🧠 전체 흐름 요약

단계주요 기능
Query Embedding 사용자 질문을 의미 벡터로 변환
Retriever 의미 유사한 문서 Top-k 검색
Prompt 구성 문서들을 LLM 입력 형식으로 정제
Generator 문서 기반으로 자연어 응답 생성
 

✅ 핵심 인사이트

  • RAG는 단순히 검색과 생성을 이어붙이는 것이 아닙니다.
  • 각 구성요소가 정확하게 설계되고 연결되어야 성능이 극대화됩니다.
  • 특히 "어떤 임베딩을 쓰는가", "검색된 문서를 어떻게 LLM에 넣을 것인가"가 실제 결과의 품질을 크게 좌우합니다.

 

[AI를 활용해 작성되었습니다.]

[공감 버튼이 큰 힘이 됩니다]

댓글