Manticore Search, 긴 문서 검색 성능 개선을 위한 내부 청킹 기능 도입
핵심 내용
Manticore Search가 모델 입력 창 제한으로 인한 정보 손실을 해결하기 위해 테이블 정의 내 청킹 전략을 도입했다.
자세히 보기
Manticore Search가 긴 문서 임베딩 시 모델 입력 창(예: 512 tokens) 초과로 인한 정보 손실을 방지하기 위해 chunk_strategy 기능을 도입했다. 이를 통해 애플리케이션 단의 별도 파이프라인 없이도 엔진 내부에서 청킹과 자동 임베딩을 수행할 수 있게 되었다.
청킹 전략 및 성능 향상
제공되는 5가지 전략(truncate, mean, fixed, recursive, sentence) 중 recursive 전략은 자연스러운 경계로 문서를 절단하여 깊은 콘텐츠 검색 성능을 크게 향상시킨다. Manticore 매뉴얼 대상 벤치마크 결과, 모델 창 밖 콘텐츠의 recall@5가 55.1%에서 83.3%로, MRR이 0.44에서 0.70으로 개선되었다. 또한 top-1 정확도(hit@1)도 33.7%에서 58.7%로 증가했다.
리소스 비용 및 튜닝
성능 향상에는 리소스 비용이 수반된다. Index RAM은 약 2.5배(4.2MB → 11.7MB), 벡터 수는 약 25배(189개 → 4,664개) 증가하며, 데이터 로딩 시간은 약 4배(21초 → 86초) 늘어났다. 쿼리 p50 응답 시간도 6.3ms에서 8.5ms로 증가했다. 청크 크기(max_tokens)와 중복 토큰(overlap_tokens), 최대 청크 수(max_chunks) 등을 통해 성능과 리소스 사용량 간 균형을 맞출 수 있다.
구현 특징 및 제한 사항
- 다중 벡터 처리:
recursive,fixed,sentence전략은float_vector_array컬럼에 다수의 벡터를 생성하며, 검색 시 문서는 단일 결과로 반환되고 가장 가까운 청크의 거리가 보고된다. - 기존 시스템 대비: Milvus, Qdrant 등 대부분의 벡터 DB가 애플리케이션 단 청킹을 요구하는 반면, Manticore와 Elasticsearch는 필드 내 청킹을 지원한다. Manticore는 컬럼 옵션 하나로 더 단순한 구현을 제공한다.
- 주의 사항:
max_chunks초과 시 경고 없이 마지막 청크에 병합 및 절단이 발생할 수 있다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.