ModernBERT-SimCSE / README.md
CocoRoF's picture
Update README.md
55de05a verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:392702
  - loss:CosineSimilarityLoss
base_model: answerdotai/ModernBERT-base
widget:
  - source_sentence: 우리는 움직이는 동행 우주 정지 좌표계에 비례하여 이동하고 있습니다 ...  371km / s에서 별자리 leo 쪽으로. "
    sentences:
      - 두 마리의 독수리가 가지에 앉는다.
      - 다른 물체와는 관련이 없는 '정지'는 없다.
      - 소녀는 버스의 열린 문 앞에 서 있다.
  - source_sentence: 숲에는 개들이 있다.
    sentences:
      - 양을 보는 아이들.
      - 여왕의 배우자를 "왕"이라고 부르지 않는 것은 아주 좋은 이유가 있다. 왜냐하면 그들은 왕이 아니기 때문이다.
      - 개들은 숲속에 혼자 있다.
  - source_sentence: '첫째, 두 가지 다른 종류의 대시가 있다는 것을 알아야 합니다 : en 대시와 em 대시.'
    sentences:
      - 그들은  물건들을  주변에 두고 가거나 집의 정리를 해칠 의도가 없다.
      - 세미콜론은 혼자 있을  있는 문장에 참여하는데 사용되지만, 그들의 관계를 강조하기 위해 결합됩니다.
      - 그의 남동생이 지켜보는 동안  앞에서 트럼펫을 연주하는 금발의 아이.
  - source_sentence:  여성이 생선 껍질을 벗기고 있다.
    sentences:
      -  남자가 수영장으로 뛰어들었다.
      -  여성이 프라이팬에 노란 혼합물을 부어 넣고 있다.
      -  마리의 갈색 개가  속에서 서로 놀고 있다.
  - source_sentence: 버스가 바쁜 길을 따라 운전한다.
    sentences:
      - 우리와 같은 태양계가 은하계 밖에서 존재할 수도 있을 것입니다.
      -  여자는 데이트하러 가는 중이다.
      - 녹색 버스가 도로를 따라 내려간다.
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - pearson_cosine
  - spearman_cosine
  - pearson_euclidean
  - spearman_euclidean
  - pearson_manhattan
  - spearman_manhattan
  - pearson_dot
  - spearman_dot
  - pearson_max
  - spearman_max
model-index:
  - name: SentenceTransformer based on answerdotai/ModernBERT-base
    results:
      - task:
          type: semantic-similarity
          name: Semantic Similarity
        dataset:
          name: sts dev
          type: sts_dev
        metrics:
          - type: pearson_cosine
            value: 0.8273878707711191
            name: Pearson Cosine
          - type: spearman_cosine
            value: 0.8298080691919564
            name: Spearman Cosine
          - type: pearson_euclidean
            value: 0.8112987734110177
            name: Pearson Euclidean
          - type: spearman_euclidean
            value: 0.8214596205940881
            name: Spearman Euclidean
          - type: pearson_manhattan
            value: 0.8125188338482303
            name: Pearson Manhattan
          - type: spearman_manhattan
            value: 0.8226861322419045
            name: Spearman Manhattan
          - type: pearson_dot
            value: 0.7646820898603437
            name: Pearson Dot
          - type: spearman_dot
            value: 0.7648333772102188
            name: Spearman Dot
          - type: pearson_max
            value: 0.8273878707711191
            name: Pearson Max
          - type: spearman_max
            value: 0.8298080691919564
            name: Spearman Max

SentenceTransformer based on answerdotai/ModernBERT-base

This is a sentence-transformers model finetuned from answerdotai/ModernBERT-base on the korean_nli_dataset dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: answerdotai/ModernBERT-base
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: ModernBertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': True, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
  (2): Dense({'in_features': 768, 'out_features': 768, 'bias': True, 'activation_function': 'torch.nn.modules.activation.Tanh'})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("x2bee/sts_nli_tune_test")
# Run inference
sentences = [
    '버스가 바쁜 길을 따라 운전한다.',
    '녹색 버스가 도로를 따라 내려간다.',
    '그 여자는 데이트하러 가는 중이다.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Semantic Similarity

Metric Value
pearson_cosine 0.8273
spearman_cosine 0.8298
pearson_euclidean 0.8112
spearman_euclidean 0.8214
pearson_manhattan 0.8125
spearman_manhattan 0.8226
pearson_dot 0.7648
spearman_dot 0.7648
pearson_max 0.8273
spearman_max 0.8298

Training Details

Training Dataset

korean_nli_dataset

  • Dataset: korean_nli_dataset at ef305ef
  • Size: 392,702 training samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 score
    type string string float
    details
    • min: 4 tokens
    • mean: 35.7 tokens
    • max: 194 tokens
    • min: 4 tokens
    • mean: 19.92 tokens
    • max: 64 tokens
    • min: 0.0
    • mean: 0.48
    • max: 1.0
  • Samples:
    sentence1 sentence2 score
    개념적으로 크림 스키밍은 제품과 지리라는 두 가지 기본 차원을 가지고 있다. 제품과 지리학은 크림 스키밍을 작동시키는 것이다. 0.5
    시즌 중에 알고 있는 거 알아? 네 레벨에서 다음 레벨로 잃어버리는 거야 브레이브스가 모팀을 떠올리기로 결정하면 브레이브스가 트리플 A에서 한 남자를 떠올리기로 결정하면 더블 A가 그를 대신하러 올라가고 A 한 명이 그를 대신하러 올라간다. 사람들이 기억하면 다음 수준으로 물건을 잃는다. 1.0
    우리 번호 중 하나가 당신의 지시를 세밀하게 수행할 것이다. 우리 팀의 일원이 당신의 명령을 엄청나게 정확하게 실행할 것이다. 1.0
  • Loss: CosineSimilarityLoss with these parameters:
    {
        "loss_fct": "torch.nn.modules.loss.MSELoss"
    }
    

Evaluation Dataset

sts_dev

  • Dataset: sts_dev at 1de0cdf
  • Size: 1,500 evaluation samples
  • Columns: text, pair, and label
  • Approximate statistics based on the first 1000 samples:
    text pair label
    type string string float
    details
    • min: 7 tokens
    • mean: 20.38 tokens
    • max: 52 tokens
    • min: 6 tokens
    • mean: 20.52 tokens
    • max: 54 tokens
    • min: 0.0
    • mean: 0.42
    • max: 1.0
  • Samples:
    text pair label
    안전모를 가진 한 남자가 춤을 추고 있다. 안전모를 쓴 한 남자가 춤을 추고 있다. 1.0
    어린아이가 말을 타고 있다. 아이가 말을 타고 있다. 0.95
    한 남자가 뱀에게 쥐를 먹이고 있다. 남자가 뱀에게 쥐를 먹이고 있다. 1.0
  • Loss: CosineSimilarityLoss with these parameters:
    {
        "loss_fct": "torch.nn.modules.loss.MSELoss"
    }
    

Framework Versions

  • Python: 3.11.10
  • Sentence Transformers: 3.3.1
  • Transformers: 4.48.0
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.2.1
  • Datasets: 3.2.0
  • Tokenizers: 0.21.0

Citation

BibTeX

Sentence Transformers

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}