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)와 같은 경량화 기법
기존 모델을 재훈련하지 않고 적은 파라미터만 추가해 특정 태스크에 적응하는 방법입니다.
'Data Science > Algorithm' 카테고리의 다른 글
RoBERTa - A Robustly Optimized BERT Pretraining Approach (1) | 2024.11.23 |
---|---|
LoRA (Low-Rank Adaptation) (0) | 2024.11.22 |
Sparse Attention (0) | 2024.11.19 |
특이값 분해 (Singular Value Decomposition, SVD) (1) | 2024.11.18 |
RAG (Retrieval-Augmented Generation) (1) | 2024.11.16 |
댓글