Instructions to use jhgan/ko-sroberta-sts-mrl with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use jhgan/ko-sroberta-sts-mrl with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("jhgan/ko-sroberta-sts-mrl") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Transformers
How to use jhgan/ko-sroberta-sts-mrl with Transformers:
# Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("jhgan/ko-sroberta-sts-mrl") model = AutoModel.from_pretrained("jhgan/ko-sroberta-sts-mrl") - Notebooks
- Google Colab
- Kaggle
jhgan/ko-sroberta-sts-mrl
This is a sentence-transformers model fine-tuned with
Matryoshka Representation Learning (MRL)
on top of klue/roberta-base. The model produces 768-dim embeddings, but the first
m dims for m β {768, 512, 256, 128, 64, 32} are themselves valid
sentence representations β you can slice the embedding to trade accuracy for
storage/latency without retraining.
- Training data: KorSTS
- Base model: klue/roberta-base
- Nested dims: 768, 512, 256, 128, 64, 32
KorSTS test set results
All values are reported as percentages (Γ100).
| dim | cosine_pearson | cosine_spearman | euclidean_pearson | euclidean_spearman | manhattan_pearson | manhattan_spearman | dot_pearson | dot_spearman |
|---|---|---|---|---|---|---|---|---|
| 768 | 82.02 | 81.84 | 81.42 | 81.44 | 81.38 | 81.40 | 78.66 | 77.88 |
| 512 | 81.79 | 81.68 | 81.48 | 81.46 | 81.47 | 81.46 | 78.07 | 77.26 |
| 256 | 81.44 | 81.44 | 81.29 | 81.28 | 81.19 | 81.19 | 76.77 | 76.13 |
| 128 | 80.43 | 80.72 | 80.82 | 80.85 | 80.63 | 80.71 | 73.76 | 73.35 |
| 64 | 78.55 | 79.37 | 79.54 | 79.68 | 79.13 | 79.38 | 69.65 | 69.37 |
| 32 | 75.81 | 77.50 | 77.02 | 77.41 | 76.30 | 76.91 | 64.91 | 64.81 |
Usage
Full 768-dim embedding
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("jhgan/ko-sroberta-sts-mrl")
embeddings = model.encode(["μλ
νμΈμ", "λ°κ°μ΅λλ€"])
print(embeddings.shape) # (2, 768)
Truncated embedding (recommended pattern)
import torch.nn.functional as F
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("jhgan/ko-sroberta-sts-mrl")
emb = model.encode(["μλ
νμΈμ", "λ°κ°μ΅λλ€"], convert_to_tensor=True)
# Slice to the first 64 dims and re-normalise for cosine similarity
emb_64 = F.normalize(emb[:, :64], p=2, dim=1)
Or fix the truncation at load time
(requires sentence-transformers >= 2.7.0):
model = SentenceTransformer("jhgan/ko-sroberta-sts-mrl", truncate_dim=64)
Citation
@inproceedings{kusupati2022matryoshka,
title = {Matryoshka Representation Learning},
author = {Kusupati, Aditya and Bhatt, Gantavya and Rege, Aniket and
Wallingford, Matthew and Sinha, Aditya and Ramanujan, Vivek and
Howard-Snyder, William and Chen, Kaifeng and Kakade, Sham and
Jain, Prateek and Farhadi, Ali},
booktitle = {Advances in Neural Information Processing Systems},
year = {2022},
url = {https://arxiv.org/abs/2205.13147}
}
This model is part of the
ko-sentence-transformers
project; see the repository for training scripts and the non-MRL baselines
(jhgan/ko-sroberta-sts, jhgan/ko-sroberta-nli, jhgan/ko-sroberta-multitask).
- Downloads last month
- 19
Model tree for jhgan/ko-sroberta-sts-mrl
Base model
klue/roberta-base