RAG - 성능에 미치는 요인

문건희·2025년 2월 25일

RAG

목록 보기
4/12

RAG(Retrieval-Augmented Generation)의 성능을 높이기 위해 각 단계에서 고려해야 할 요소들

RAG의 성능을 최적화하기 위해서는 여러 단계에서 세밀한 조정이 필요합니다. 각 단계별로 성능에 영향을 미치는 주요 요인과 설명을 정리했습니다.


1. 문서 로드(Document Loading)

요인:
1) 파일 형식 및 변환

  • PDF, HTML, Word, TXT 등 다양한 문서 형식이 존재하며, 적절한 변환 및 파싱이 필요함.
  • 예를 들어 PDF에서 텍스트를 추출할 때 표나 이미지에 포함된 정보를 잃을 수 있음.
  • OCR(광학 문자 인식, Optical Character Recognition) 기술이 필요한 경우 정확도를 고려해야 함.

2) 메타데이터 유지

  • 문서의 출처, 작성 날짜, 주제 등 메타데이터를 유지하면 검색 성능이 향상될 수 있음.
  • Retrieval 시 문서의 신뢰성을 높이는 데 도움을 줌.

3) 데이터 정제 및 전처리

  • 불필요한 공백, 특수 문자, HTML 태그 등을 제거하여 깨끗한 텍스트를 확보해야 함.
  • 문서 내 의미 없는 내용(예: 광고, 푸터 정보 등)을 제거하는 것이 Retrieval의 정확도에 영향을 줌.

2. 분할(Chunking)

추가 요인설명
Chunking 방법고정 길이, 의미 단위, 하이브리드 방식 선택
문서 타입별 크기 조정문서 종류에 따라 적절한 Chunk 크기 설정
Overlap 크기문맥 연결성을 유지하기 위해 적절한 오버랩 설정
계층적 Chunking큰 문서와 작은 단위를 함께 저장하여 검색 효율 증대
Chunk 내 정보 밀도검색 효율을 높이기 위해 핵심 정보만 유지
도메인 최적화코드, JSON, 대화 데이터 등 특수 문서에 적합한 방식 사용

3. 임베딩(Embedding)

추가 요인설명예시
임베딩 모델 선택도메인에 맞는 모델 선택all-MiniLM-L6-v2, BioBERT
차원 수차원이 높으면 정확도 증가, 낮으면 속도 증가512 ~ 1024 차원
정규화 (Normalization)L2 정규화 적용하여 유사도 계산 최적화np.linalg.norm() 사용
토크나이제이션모델마다 다르게 적용됨WordPiece vs BPE
Contrastive Learning의미가 유사한 문장을 학습하여 검색 성능 향상"벡터 표현" ↔ "임베딩"
Context Window모델이 처리할 수 있는 최대 문맥 크기256 ~ 8192 토큰
Multi-Vector 방식단일 벡터보다 문서의 일부를 나눠 저장문서 섹션별 임베딩 생성
Hybrid Search키워드 검색 + 벡터 검색 혼합BM25 + Vector Search

이러한 요소들을 최적화하면 RAG 시스템의 검색 정확도를 극대화할 수 있습니다! 🚀


4. 벡터DB (Vector Database)

추가 요인설명예시
벡터DB 선택FAISS, Pinecone, Weaviate, Milvus 비교Pinecone = 클라우드 기반, FAISS = 로컬
인덱싱 방식검색 속도와 정확도에 영향HNSW = 빠름, IVF = 대량 데이터
유사도 측정Cosine, Euclidean, Dot Product 비교문서 검색 = Cosine, 이미지 검색 = Euclidean
차원 수 최적화차원이 높을수록 정확하지만 속도 저하일반 문서 = 512차원, 고정밀 = 1024차원
Hybrid SearchBM25 + 벡터 검색 조합키워드 검색 + 의미 기반 검색
실시간 업데이트CRUD 성능 고려실시간 검색 필요 = Pinecone, Weaviate
Sharding & Scaling대량 데이터 처리 위한 확장성클러스터 지원 = Milvus, Weaviate
Filtering 및 Metadata추가적인 메타데이터 활용날짜, 카테고리 필터링

5. Retrieval (검색)

추가 요인설명예시
Top-K 값 조정검색할 문서 개수 최적화Top-K=3~5 적절
Multi-stage Retrieval다단계 검색으로 정확도 향상1차 검색 후 Reranking
Hybrid SearchBM25 + 벡터 검색 조합의미 검색 + 키워드 검색
Query Expansion검색어를 자동 확장"AI 검색""AI 정보 검색 개선"
Reranking검색된 문서 순위를 다시 정렬BERT Cross-Encoder 활용
Context Filtering불필요한 문서 필터링"최신 논문" 필터
Query vs Document Embedding검색 질문과 문서 임베딩 일치같은 모델 사용 필수
Negative Sampling부정 샘플을 학습하여 검색 개선관련 없는 결과 제거

6. Prompt (프롬프트 엔지니어링)

요인:
1) 컨텍스트 창 활용

  • LLM의 컨텍스트 창 크기(예: GPT-4는 8K~32K 토큰)를 고려하여 적절한 Retrieval 문서를 제공해야 함.
  • 너무 많은 정보를 넣으면 핵심 문맥이 흐려질 수 있음.

2) 프롬프트 템플릿 최적화

  • Retrieval된 문서를 LLM에 전달할 때, 명확한 지시사항을 포함해야 함.

3) Chain-of-Thought (CoT) 기법 활용

  • LLM이 논리적으로 추론하도록 유도하는 질문 방식 사용.

7. LLM 모델

요인:
1) LLM 모델 선택

  • GPT-4, Claude, Mistral, LLaMA 등 다양한 모델 사용 가능.

2) Fine-tuning 가능 여부

  • 특정 도메인에서는 사전 학습된 모델보다 미세 조정된 모델이 더 좋은 성능을 발휘할 수 있음.

3) Temperature 조정

  • Temperature=0에 가까울수록 일관된 답변, 1에 가까울수록 창의적인 답변 생성.

8. 결과 (Post-processing)

요인:
1) 출력 가독성 개선
2) 출처 제공
3) Fact-checking (사실 검증)

이 모든 요소를 최적화하면 RAG 시스템의 검색 정확도와 응답 품질을 극대화할 수 있습니다!

0개의 댓글