- RAG 검색의 핵심 문제는 임베딩 불일치이며, 이는 임베딩 모델의 구식화와 사용자 질의 및 데이터 간의 본질적인 차이에서 발생합니다. 📉
- 현재 임베딩 모델은 주로 구글 버트와 같은 인코더 기반이며, GPU 발전으로 디코더 모델에 모든 자원이 집중되면서 인코더의 어텐션 시스템은 발전이 멈춰 의미론적 반영이 허접합니다. 🕰️
- 사용자 질의는 의도, 배경 등 복합적인 의미를 담는 반면, 데이터는 주로 팩트 위주로 구성되어 임베딩 시 시맨틱 불일치가 발생합니다. ❓↔️❗
- 그럼에도 임베딩은 키워드 검색이 불가능한 의도/시맨틱 검색과 이미지, 사운드 등 멀티모달 데이터를 시맨틱 공간으로 가져오는 유일한 방법이기에 여전히 중요합니다. 🖼️🔊
- 임베딩 불일치를 보완하기 위한 방법으로 문서 압축, 키워드 검색 통합, 부모 문서 추가 검색, LLM을 활용한 질의 변환 및 다중 벡터 스토어 구축 등이 있습니다. 🛠️
- 벡터 DB는 메타데이터 필드, 키워드 인덱싱 등 다양한 추가 기능을 제공하며, 사용자 질의에서 메타데이터를 추출하여 검색에 활용하는 셀프 쿼리 기법도 있습니다. 🔍
- 벡터 DB 운영 시 데이터 삭제의 어려움으로 인해 오래된 데이터가 계속 쌓이는 문제가 있으며, 이를 해결하기 위해 시간 요소를 고려하여 최신 데이터에 가중치를 부여해야 합니다. ⏳
- 검색 정확도를 높이기 위해 초기 벡터 검색 결과에 대해 질의와 문서 쌍의 유사도를 재평가하여 순위를 조정하는 리랭커 모델이 상업적으로 널리 사용됩니다. 🔄
- RAPTOR 기법은 청크 임베딩을 군집화하고 LLM으로 요약하여 새로운 임베딩을 생성하는 다단계 방식이지만, 비용 대비 효과가 미미하여 실제 적용은 제한적입니다. 🐢
- '임베딩', '벡터', '차원'과 같은 AI 용어들은 처음에는 혼란스럽지만, '숫자가 아닌 것을 숫자 배열로 바꾸는 과정/결과', '순서 있는 숫자 배열', '배열의 인덱스'로 이해하면 학습이 훨씬 쉬워집니다. 🔢