임베딩 모델 훈련 개요

임베딩 모델 훈련 개요

목적에 맞는 임베딩을 만들고 싶다면 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

더 알아보기