본문 바로가기
Data Science/Algorithm

Sentence Transformer

by leanu 2024. 11. 21.

Sentence Transformer는 Sentence embedding 을 생성하는 모델로,

문장을 고차원 벡터로 변환하여 의미를 유지하면서 비교 가능하게 만들어주는 역할을 합니다.

원래 BERT와 같은 Transformer모델은 문장 단위 입력에 대한 표현을 생성할 수 있었지만,

sentence embedding을 효율적으로 생성하기 위해서는 추가적인 fine-tuning과정이 필요했습니다.

 

Sentence Transformer는 BERT RoBERTa 같은 Transformer 기반 모델을 활용하면서도

효율적이고 품질 높은 문장 임베딩을 생성하도록 설계된 프레임워크입니다.

특히, Siamese Network 아키텍처를 사용해 두 문장 간의 유사도를 빠르게 계산할 수 있습니다.

 

Sentence Transformer 종류

SBERT (Sentence-BERT)

BERT를 기반으로 문장 임베딩을 생성하기 위해 설계한 구조로 STS (Semantic Textual Similarity)와 같은 테스크에서 뛰어난 성능을 보입니다.

대표적인 Pre-trained 모델로는 all-MiniLM-L6-V2, paraphrase-MPNet-base-v2 가 있습니다.

 

LaBSE (Language-agnostic BERT Sentence Embedding)

Google 에서 개발한 다국어 Sentence Transformer로 100개 이상의 언어를 지원하며, 다국어 간 유사도 계산에 강점이 있습니다.

 

 

Sentence Transformer 주요 기법

 

Siamese Network

두 분장을 각각 Transformer 모델에 통과시켜 독립적으로 임베딩을 생성하여

두 벡터간 유사도를 계산하는 구조로 매우 효율적인 네트워크입니다.

Cosine Similarity 또는 Manhattan / Euclidean Distance를 활용해 문장간 유사도를 계산합니다.

 

 

Loss

  • Triplet Loss : 세개의 샘플 (Anchor, Positive, Negative) 간의 관계를 학습하는 방법입니다.
  • Contrastive Loss : 유사한 문장은 가까이, 다른 문장은 멀리 위치하도록 조정하는 방법입니다.
  • Classification Loss : 두 문장의 관계 (긍정 / 부정 등)를 학습하는 방법입니다.

 

LoRA (Low-Rank Adaptation)와 같은 경량화 기법

기존 모델을 재훈련하지 않고 적은 파라미터만 추가해 특정 태스크에 적응하는 방법입니다.

 

 

댓글