Sentence Transformers를 사용한 희소 임베딩 모델의 학습 및 파인튜닝
Hugging Face는 Sentence Transformers 라이브러리를 사용하여 희소 임베딩 모델을 학습 및 파인튜닝하는詳細한 기술 가이드를リリース했습니다. 이러한 모델은 하이브리드 검색 시나리오에 필수적이며, BM25와 같은 전통적인 어휘적 방법과 밀집 임베딩 모델 사이의 중간의 역할을 수행하며, 해석 가능한 고차원 희소 표현을 제공합니다.
희소 임베딩 모델 이해
희소 임베딩 모델은 텍스트를 고차원 벡터(예: 30,000+ 차원)로 변환하며, 여기서 대부분의 값은 0입니다. 대부분의 값이 0이 아닌 저차원 벡터를 사용하는 밀집 모델과 달리, 희소 모델은 활성 차원을 모델 어휘의 특정 토큰에 매핑합니다.
주요 기능
- 쿼리 및 문서 확장: 신경망 기반 희소 임베딩 모델은 의미적으로 관련된 용어(예: "weather"를 "sunny" 또는 "beautiful"로 확장)로 텍스트를 자동으로 확장하여 어휘 불일치 문제를 극복할 수 있습니다.
- 해석 가능성: 각 차원이 토큰에 대응하기 때문에, 사용자는 임베딩을 디코딩하여 유사도 점수에 기여하는 단어를 정확히 확인할 수 있습니다.
- 하이브리드 검색 잠재력: 희소 모델은 밀집 모델과 결합될 때 정확한 어휘 일치와 의미론적 의미를 모두 포착하는 데 매우 효과적입니다.
희소 인코더의 아키텍처 옵션
구체적인 사용 사례에 따라 개발자는 Sentence Transformers 프레임워크 내에서 여러 가지 다양한 아키텍처 중 선택할 수 있습니다.
SPLADE
SPLADE 모델은 Masked Language Modeling (MLM) transformer 뒤에 SpladePooling 모듈을 따릅니다. 이 아키텍처는 SparseEncoder 클래스에 fill-mask 모델을 제공할 때의 기본값입니다.
Inference-free SPLADE
이 아키텍처는 쿼리와 문서를 다르게 처리하기 위해 Router 모듈을 사용합니다. 쿼리에 대해 near-instantaneous 추론을 보장하기 위해 경량 SparseStaticEmbedding을 사용하며, 문서는 전체 MLM transformer와 SpladePooling을 사용하여 처리됩니다. 이는 쿼리 지연 시간이 중요한 애플리케이션에 적합합니다.
Contrastive Sparse Representation (CSR)
CSR 모델은 밀집 Sentence Transformer 모델 위에 SparseAutoEncoder 모듈을 적용합니다. SPLADE와 달리, CSR 임베딩은 기본 모델의 어휘 크기와 동일하지 않아 토큰 디코딩을 통한 직접적인 해석이 불가능하지만, 고차원 밀집 인코더에 매우 효과적입니다.
파인튜닝 워크플로우
파인튜닝을 통해 희소 모델은 도메인별 용어를 학습할 수 있습니다(예: "cephalalgia"가 "headache"의 동의어임을 인식). 학습 프로세스는 여러 핵심 구성 요소로 구성됩니다.
학습 구성 요소
- 모델: 사전 학습된 희소 인코더 또는 기본 모델(BERT 또는 RoBERTa 등).
- 데이터셋: Hugging Face Hub 또는 로컬 파일(CSV, JSON, Parquet 등)에서
datasets라이브러리를 통해 로드된 데이터. - 손실 함수: 주요 손실 함수에 희소성 정규화를 추가하는
SpladeLoss또는CSRLoss같은 함수. - 평가 도구: NDCG, MRR, MAP과 같은 메트릭을 사용하여 성능을 평가하는 도구. 사용 가능한 평가 도구에는
SparseNanoBEIREvaluator와SparseTripletEvaluator가 포함됩니다. - 트레이너: 모든 구성 요소를 통합하여 훈련 루프를 실행하는
SparseEncoderTrainer클래스.
학습 팁 및 모범 사례
- 증류: 더 강한 희소 모델은 텍스트 쌍으로부터 직접 훈련하는 대신, 더 강한 교사 모델(예: Cross-Encoder)으로부터 증류를 통해 자주 훈련됩니다.
- 희소성 모니터링: 모델은 검색 정확도뿐만 아니라 임베딩의 희소성도 평가해야 합니다; 희소성이 낮으면 저장 비용과 검색 지연 시간이 증가합니다.
- 멀티 데이터셋 학습:
SparseEncoderTrainer는MultiDatasetBatchSamplers(예:ROUND_ROBIN또는PROPORTIONAL)를 사용하여 여러 데이터셋에서 동시에 학습을 지원합니다.
평가 및 배포
하이브리드 파이프라인에서의 성능
실증 결과는 Sparse 및 Dense 순위를 결합하는 것(예: Reciprocal Rank Fusion과 같은 방법 사용)이 단독으로 사용하는 어느 방법보다도 현저히 우수함을 보여줍니다. 예를 들어, NanoMSMARCO 데이터셋에서 하이브리드 접근 방식은 dense-only 기준선에 비해 NDCG@10을 substantially 증가시킬 수 있습니다.
벡터 데이터베이스 통합
프로덕션 배포를 위해 희소 임베딩은 Qdrant, OpenSearch, Elasticsearch, Seismic과 같은 벡터 데이터베이스에 인덱싱할 수 있습니다. 예를 들어, Qdrant는 희소 벡터에 대한 기본 지원을 제공하여 규모에 맞는 효율적인 의미적 검색을 가능하게 합니다.