SPARSEUP: 정확도·속도·설명 가능성을 함께 고려한 희소 검색 모델
검색 모델을 선택할 때 정확도만 비교해서는 부족하다. 색인 크기와 응답 속도, 검색 결과를 해석할 수 있는지도 함께 살펴야 한다. Linkup Research가 공개한 SPARSEUP은 이러한 균형을 겨냥한 1억 4,900만 매개변수의 오픈소스 희소 임베딩 모델이다. ModernBERT를 기반으로 하며 Apache 2.0 라이선스로 배포된다.1
희소 임베딩이 제공하는 가치
희소 임베딩은 수만 개의 어휘 차원 가운데 일부만 활성화한다. 각 차원이 어휘와 연결되므로 어떤 표현이 검색 점수에 영향을 미쳤는지 비교적 쉽게 확인할 수 있다. 원문에 없는 연관어도 활성화해 단순 키워드 검색에서 발생하는 어휘 불일치 문제를 줄일 수 있다.2
SPARSEUP은 검색 아키텍처를 통제된 조건에서 비교하도록 설계됐다는 점에서도 의미가 있다. DenseOn·LateOn과 동일한 백본 계열과 미세조정 데이터를 사용하므로 밀집 벡터, 후기 상호작용, 희소 벡터의 차이를 보다 직접적으로 살펴볼 수 있다.1
초기화에는 LateOn-unsupervised와 ModernBERT의 MLM 헤드 및 decoder.bias가 사용됐으며, decoder.weight는 LateOn 임베딩과 가중치를 공유한다. 대조 학습에서는 후보 50개 중 샘플링한 하드 네거티브 7개와 인배치 네거티브를 사용했다. 크로스 인코더 증류는 적용하지 않았다.1
통제된 어휘 확장이 작동하는 방식
SPARSEUP의 인코딩 과정은 다음 순서로 진행된다.1
MLM 출력을 계산한다.
로짓 시프트를 적용해 임계값 이하의 값을 비활성화한다.
각 토큰에서 상위 12개 어휘 차원만 선택한다.
위치별 값을 최대 풀링해 하나의 벡터로 만든다.
대소문자와 공백 차이로 생긴 어휘 표면형을 통합한다.
표면형 통합을 거치면 어휘 차원은 약 5만 개에서 약 3만4천 개로 줄어든다. 토큰마다 활성화할 차원을 제한하는 방식은 확장어가 무분별하게 늘어나는 것을 막고 색인 크기와 검색 지연을 관리하는 데 도움이 된다. 다만 활성 차원을 지나치게 줄이면 검색 품질이 떨어질 수 있으므로, 상위 12개 설정은 단순한 압축이 아니라 정확도와 비용 사이의 절충으로 이해해야 한다.
입력 형식도 구분된다. 쿼리와 문서에는 각각 [Q]와 [D] 접두사가 붙는다. 이 접두사는 어텐션에는 참여하지만 최종 풀링에는 포함되지 않는다. 검색 점수는 쿼리와 문서의 희소 벡터 간 내적으로 계산한다.1
벤치마크를 실제 도입 판단으로 연결하기
SPARSEUP은 BEIR-13에서 56.4 nDCG@10을 기록했다. 또한 Seismic 인덱스에서는 쿼리당 약 380마이크로초의 검색 시간으로 97% 이상의 재현율을 기록했다.1 이는 희소 벡터의 품질뿐 아니라 근사 검색 인덱스와 결합했을 때의 속도 잠재력도 보여준다.
그러나 공개 벤치마크 수치를 실제 서비스 성능으로 그대로 받아들여서는 안 된다. 공식 평가의 최대 입력 길이는 쿼리 128토큰, 문서 512토큰이며 평가 언어는 영어다.1 도입 전에는 다음 조건을 자사 데이터에서 다시 확인해야 한다.
문서와 쿼리의 언어 및 길이 분포
필요한 검색 품질과 재현율
색인 크기와 갱신 비용
목표 응답 시간과 운영 환경
활성 어휘를 활용한 결과 설명 가능성
요약: SPARSEUP의 핵심 가치는 단일 벤치마크 점수에만 있지 않다. 비교 가능한 학습 조건과 통제된 어휘 확장을 바탕으로 희소 검색의 품질, 속도, 색인 비용, 설명 가능성을 함께 조정할 수 있다는 데 있다.
참고
1Linkup-Platform/linkup-sparseup-embed-v1 · Hugging Face
2Training and Finetuning Sparse Embedding Models with Sentence Transformers
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
