임베딩 모델 훈련 개요
임베딩 모델 훈련 개요
목적에 맞는 임베딩을 만들고 싶다면 Sentence-Transformers로 직접 훈련하거나 파인튜닝할 수 있어요. SentenceTransformer에 훈련 데이터와 손실 함수를 연결하고 model.fit()을 호출하는 구조예요.
훈련 데이터 형태
대표적으로 문장 쌍 (anchor, positive) 형태가 많아요. 다중 부정 손실(Multiple Negatives Ranking Loss)은 (anchor, positive) 쌍이면서 나머지를 부정으로 치는 방식이라 라벨 없이도 훈련할 수 있어요.
from sentence_transformers import SentenceTransformer, losses
from torch.utils.data import DataLoader
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
train_dataloader = DataLoader(train_examples, shuffle=True)
loss = losses.MultipleNegativesRankingLoss(model)
model.fit(train_objectives=[(train_dataloader, loss)], epochs=1)
확인 포인트
- 손실 함수에 따라 데이터 형태(쌍, 삼중, 라벨 포함)가 달라져요.
- 파인튜닝 전에 평가 지표로 기준선을 잡아 두는 게 좋아요.
출처: https://www.sbert.net/docs/sentence_transformer/training_overview.html