RAG의 성능을 최적화하기 위해서는 여러 단계에서 세밀한 조정이 필요합니다. 각 단계별로 성능에 영향을 미치는 주요 요인과 설명을 정리했습니다.
요인:
1) 파일 형식 및 변환
2) 메타데이터 유지
3) 데이터 정제 및 전처리
| 추가 요인 | 설명 |
|---|---|
| Chunking 방법 | 고정 길이, 의미 단위, 하이브리드 방식 선택 |
| 문서 타입별 크기 조정 | 문서 종류에 따라 적절한 Chunk 크기 설정 |
| Overlap 크기 | 문맥 연결성을 유지하기 위해 적절한 오버랩 설정 |
| 계층적 Chunking | 큰 문서와 작은 단위를 함께 저장하여 검색 효율 증대 |
| Chunk 내 정보 밀도 | 검색 효율을 높이기 위해 핵심 정보만 유지 |
| 도메인 최적화 | 코드, JSON, 대화 데이터 등 특수 문서에 적합한 방식 사용 |
| 추가 요인 | 설명 | 예시 |
|---|---|---|
| 임베딩 모델 선택 | 도메인에 맞는 모델 선택 | 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 시스템의 검색 정확도를 극대화할 수 있습니다! 🚀
| 추가 요인 | 설명 | 예시 |
|---|---|---|
| 벡터DB 선택 | FAISS, Pinecone, Weaviate, Milvus 비교 | Pinecone = 클라우드 기반, FAISS = 로컬 |
| 인덱싱 방식 | 검색 속도와 정확도에 영향 | HNSW = 빠름, IVF = 대량 데이터 |
| 유사도 측정 | Cosine, Euclidean, Dot Product 비교 | 문서 검색 = Cosine, 이미지 검색 = Euclidean |
| 차원 수 최적화 | 차원이 높을수록 정확하지만 속도 저하 | 일반 문서 = 512차원, 고정밀 = 1024차원 |
| Hybrid Search | BM25 + 벡터 검색 조합 | 키워드 검색 + 의미 기반 검색 |
| 실시간 업데이트 | CRUD 성능 고려 | 실시간 검색 필요 = Pinecone, Weaviate |
| Sharding & Scaling | 대량 데이터 처리 위한 확장성 | 클러스터 지원 = Milvus, Weaviate |
| Filtering 및 Metadata | 추가적인 메타데이터 활용 | 날짜, 카테고리 필터링 |
| 추가 요인 | 설명 | 예시 |
|---|---|---|
| Top-K 값 조정 | 검색할 문서 개수 최적화 | Top-K=3~5 적절 |
| Multi-stage Retrieval | 다단계 검색으로 정확도 향상 | 1차 검색 후 Reranking |
| Hybrid Search | BM25 + 벡터 검색 조합 | 의미 검색 + 키워드 검색 |
| Query Expansion | 검색어를 자동 확장 | "AI 검색" → "AI 정보 검색 개선" |
| Reranking | 검색된 문서 순위를 다시 정렬 | BERT Cross-Encoder 활용 |
| Context Filtering | 불필요한 문서 필터링 | "최신 논문" 필터 |
| Query vs Document Embedding | 검색 질문과 문서 임베딩 일치 | 같은 모델 사용 필수 |
| Negative Sampling | 부정 샘플을 학습하여 검색 개선 | 관련 없는 결과 제거 |
요인:
1) 컨텍스트 창 활용
2) 프롬프트 템플릿 최적화
3) Chain-of-Thought (CoT) 기법 활용
요인:
1) LLM 모델 선택
GPT-4, Claude, Mistral, LLaMA 등 다양한 모델 사용 가능.2) Fine-tuning 가능 여부
3) Temperature 조정
Temperature=0에 가까울수록 일관된 답변, 1에 가까울수록 창의적인 답변 생성.요인:
1) 출력 가독성 개선
2) 출처 제공
3) Fact-checking (사실 검증)
이 모든 요소를 최적화하면 RAG 시스템의 검색 정확도와 응답 품질을 극대화할 수 있습니다!