데브허브 | DEVHUB | RAG비법노트 기초편 - 9(끝) 희소벡터와 밀집벡터RAG비법노트 기초편 - 9(끝) 희소벡터와 밀집벡터
- **희소 벡터 (Sparse Vector)**는 대부분의 요소가 0인 벡터로, 엘라스틱 서치나 RDB 풀텍스트 인덱싱 등에서 사용됩니다. 🔍
- BM25 알고리즘(TF-IDF 변형)을 기반으로 하며, CPU 연산에 최적화되어 있어 비용이 매우 저렴하고 빠릅니다. ⚡
- 단점은 토큰 추가/삭제 시 정기적인 재인덱싱이 필요하며, 토큰 수가 많아질수록 벡터 차원이 증가하여 성능이 저하될 수 있습니다. 📉
- **밀집 벡터 (Dense Vector)**는 모든 차원이 의미를 가지며, 신경망 학습(임베딩 모델)을 통해 생성됩니다. 🧠
- 크로마, 포스트그레스 벡터 지원 등 최신 벡터 DB에서 주로 사용되며, 의미론적 질의 처리에 강점을 가집니다. 💡
- 밀집 벡터의 가장 큰 단점은 높은 비용과 의미론적 불일치(Semantic Mismatch) 가능성입니다. 💸
- 의미론적 불일치는 임베딩 모델의 학습 구조, 데이터 청크 사이즈, 질의 방식, 도메인 등이 사용자의 데이터/질의와 맞지 않을 때 발생합니다. 🚧
- 이러한 불일치를 보정하기 위한 세 가지 주요 방법은 벡터 DB 데이터 구조 변경, 사용자 질의 변형, 그리고 임베딩 모델 자체 교체 또는 재학습입니다. 🛠️
- 보정 기법에는 질의 분해/재작성, 다중 범주(여러 관점으로 데이터 저장), 하이브리드 질의(키워드+임베딩), 메타필드 병합 질의 등이 있습니다. 🔄
- 이러한 보정 과정은 자동화되어야 하며, 정확도와 실행 비용 사이의 적절한 트레이드오프가 필수적입니다. ⚖️