SBERT 개요

SBERT 개요

Sentence Transformers는 문장을 벡터로 바꿔 '의미가 비슷하면 벡터도 비슷하다'는 원리를 활용하는 라이브러리예요. 검색이나 유사도 계산을 할 때 단어 일치가 아니라 의미 단위로 비교하고 싶을 때 사용해요.

출처: Sentence Transformers 문서

Sentence Transformers(줄여서 SBERT)는 고정 크기 벡터(임베딩)를 계산하는 게 핵심이에요. 임베딩 계산 자체는 효율적이고, 임베딩끼리의 유사도 계산은 아주 빨라요. 그래서 시맨틱 텍스트 유사도, 시맨틱 검색, 클러스터링, 분류, paraphrase mining(의역 탐지) 같은 다양한 작업에 쓸 수 있어요.

텍스트뿐 아니라 이미지·오디오·비디오까지 지원하는 멀티모달 모델도 있어요. SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")처럼 모델 이름을 넘기면 사전 학습된 모델을 바로 내려받아 사용할 수 있죠. Hugging Face에는 미리 학습된 모델이 1만 개 이상 올라와 있어서, MTEB 리더보드의 최신 모델도 쉽게 쓸 수 있어요.

사용 흐름은 아주 단순해요. 모델을 로드하고, encode()로 벡터를 만들고, similarity()로 유사도를 계산하면 끝이에요. 특히 검색에서는 bi-encoder(문장 인코더)가 후보를 빠르게 뽑고, Cross-Encoder(reranker)가 상위 결과를 다시 정렬하는 2단계 구조를 자주 써요.

더 알아보기