KR-SBERT는 한국어에 특화된 Sentence-BERT 문장 임베딩 모델입니다. 문장이나 단락을 768차원 밀집 벡터로 변환하여, 문장 간 의미 유사도 계산·의미 기반 검색·문장 군집화 등에 활용할 수 있습니다. 여기서 소개하는 버전은 snunlp/KR-SBERT-V40K-klueNLI-augSTS입니다.

구조와 학습

  • BERT 인코더(max_seq_length 128) 위에 평균 풀링(mean pooling)을 얹어 768차원 문장 임베딩을 만듭니다.
  • 40K 어휘(V40K) 모델을 기반으로 KLUE-NLI와 증강 STS(klueNLI-augSTS) 데이터로 미세조정했습니다.

사용법

sentence-transformers로 간단히 불러와 쓸 수 있습니다.

from sentence_transformers import SentenceTransformer

model = SentenceTransformer('snunlp/KR-SBERT-V40K-klueNLI-augSTS')
embeddings = model.encode(["이것은 예시 문장입니다", "각 문장이 벡터로 변환됩니다"])
print(embeddings)

정보

인용

@misc{kr-sbert,
  author    = {Park, Suzi and Shin, Hyopil},
  title     = {KR-SBERT: A Pre-trained Korean-specific Sentence-BERT model},
  year      = {2021},
  publisher = {GitHub},
  journal   = {GitHub repository},
  url       = {https://github.com/snunlp/KR-SBERT}
}

@phdthesis{park2021fusion,
  author = {Park, Suzi},
  title  = {Fusion models for news quality prediction: Combining textual features with sentence embeddings},
  school = {Department of Linguistics, Seoul National University},
  year   = {2021},
  type   = {Ph.D. dissertation},
  url    = {https://s-space.snu.ac.kr/handle/10371/177766},
}