mrm8488's picture
Add new SentenceTransformer model.
ffad4be verified
metadata
language:
  - en
library_name: sentence-transformers
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - dataset_size:100K<n<1M
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
base_model: distilbert/distilroberta-base
metrics:
  - pearson_cosine
  - spearman_cosine
  - pearson_manhattan
  - spearman_manhattan
  - pearson_euclidean
  - spearman_euclidean
  - pearson_dot
  - spearman_dot
  - pearson_max
  - spearman_max
widget:
  - source_sentence: He shrugged.
    sentences:
      - Then he shrugged.
      - Two people are dancing.
      - The people are Indian.
  - source_sentence: a young girl
    sentences:
      - A girl is playing.
      - A dog playing outside.
      - The men are moving.
  - source_sentence: girl sleeps
    sentences:
      - A little girl is sleep.
      - Two women are walking.
      - three men are pictured
  - source_sentence: He walked.
    sentences:
      - A man is moving around.
      - A young man is running.
      - What idiots girls are!
  - source_sentence: '''Go now.'''
    sentences:
      - Now go.
      - The door did not budge.
      - I never knew the man.
pipeline_tag: sentence-similarity
model-index:
  - name: SentenceTransformer based on distilbert/distilroberta-base
    results:
      - task:
          type: semantic-similarity
          name: Semantic Similarity
        dataset:
          name: sts dev 768
          type: sts-dev-768
        metrics:
          - type: pearson_cosine
            value: 0.8418367310465795
            name: Pearson Cosine
          - type: spearman_cosine
            value: 0.8485984004433933
            name: Spearman Cosine
          - type: pearson_manhattan
            value: 0.8356556933767024
            name: Pearson Manhattan
          - type: spearman_manhattan
            value: 0.8341402433895243
            name: Spearman Manhattan
          - type: pearson_euclidean
            value: 0.8378021883964464
            name: Pearson Euclidean
          - type: spearman_euclidean
            value: 0.8364904078404392
            name: Spearman Euclidean
          - type: pearson_dot
            value: 0.7476524989991268
            name: Pearson Dot
          - type: spearman_dot
            value: 0.744450587024694
            name: Spearman Dot
          - type: pearson_max
            value: 0.8418367310465795
            name: Pearson Max
          - type: spearman_max
            value: 0.8485984004433933
            name: Spearman Max
      - task:
          type: semantic-similarity
          name: Semantic Similarity
        dataset:
          name: sts dev 512
          type: sts-dev-512
        metrics:
          - type: pearson_cosine
            value: 0.8416891989714739
            name: Pearson Cosine
          - type: spearman_cosine
            value: 0.8490082509626217
            name: Spearman Cosine
          - type: pearson_manhattan
            value: 0.8348187780435371
            name: Pearson Manhattan
          - type: spearman_manhattan
            value: 0.8332638443518806
            name: Spearman Manhattan
          - type: pearson_euclidean
            value: 0.837008948364763
            name: Pearson Euclidean
          - type: spearman_euclidean
            value: 0.8356608810942396
            name: Spearman Euclidean
          - type: pearson_dot
            value: 0.7426437744526075
            name: Pearson Dot
          - type: spearman_dot
            value: 0.7393063147821313
            name: Spearman Dot
          - type: pearson_max
            value: 0.8416891989714739
            name: Pearson Max
          - type: spearman_max
            value: 0.8490082509626217
            name: Spearman Max
      - task:
          type: semantic-similarity
          name: Semantic Similarity
        dataset:
          name: sts dev 256
          type: sts-dev-256
        metrics:
          - type: pearson_cosine
            value: 0.8368212220308662
            name: Pearson Cosine
          - type: spearman_cosine
            value: 0.8458532859579723
            name: Spearman Cosine
          - type: pearson_manhattan
            value: 0.8282949195581827
            name: Pearson Manhattan
          - type: spearman_manhattan
            value: 0.8279757292284411
            name: Spearman Manhattan
          - type: pearson_euclidean
            value: 0.8304309516656533
            name: Pearson Euclidean
          - type: spearman_euclidean
            value: 0.8301347336633305
            name: Spearman Euclidean
          - type: pearson_dot
            value: 0.7158283880571648
            name: Pearson Dot
          - type: spearman_dot
            value: 0.7114038350641958
            name: Spearman Dot
          - type: pearson_max
            value: 0.8368212220308662
            name: Pearson Max
          - type: spearman_max
            value: 0.8458532859579723
            name: Spearman Max
      - task:
          type: semantic-similarity
          name: Semantic Similarity
        dataset:
          name: sts dev 128
          type: sts-dev-128
        metrics:
          - type: pearson_cosine
            value: 0.8291552182220155
            name: Pearson Cosine
          - type: spearman_cosine
            value: 0.8410315378567165
            name: Spearman Cosine
          - type: pearson_manhattan
            value: 0.8205197124842151
            name: Pearson Manhattan
          - type: spearman_manhattan
            value: 0.8211956528048456
            name: Spearman Manhattan
          - type: pearson_euclidean
            value: 0.8218377581296912
            name: Pearson Euclidean
          - type: spearman_euclidean
            value: 0.8223376697977559
            name: Spearman Euclidean
          - type: pearson_dot
            value: 0.6736747525126793
            name: Pearson Dot
          - type: spearman_dot
            value: 0.6704632728499174
            name: Spearman Dot
          - type: pearson_max
            value: 0.8291552182220155
            name: Pearson Max
          - type: spearman_max
            value: 0.8410315378567165
            name: Spearman Max
      - task:
          type: semantic-similarity
          name: Semantic Similarity
        dataset:
          name: sts dev 64
          type: sts-dev-64
        metrics:
          - type: pearson_cosine
            value: 0.8201110050860942
            name: Pearson Cosine
          - type: spearman_cosine
            value: 0.835036509147006
            name: Spearman Cosine
          - type: pearson_manhattan
            value: 0.8028297556674707
            name: Pearson Manhattan
          - type: spearman_manhattan
            value: 0.8048509047037822
            name: Spearman Manhattan
          - type: pearson_euclidean
            value: 0.8046682420071583
            name: Pearson Euclidean
          - type: spearman_euclidean
            value: 0.8063788129340022
            name: Spearman Euclidean
          - type: pearson_dot
            value: 0.6171580093307325
            name: Pearson Dot
          - type: spearman_dot
            value: 0.6176751811391049
            name: Spearman Dot
          - type: pearson_max
            value: 0.8201110050860942
            name: Pearson Max
          - type: spearman_max
            value: 0.835036509147006
            name: Spearman Max

SentenceTransformer based on distilbert/distilroberta-base

This is a sentence-transformers model finetuned from distilbert/distilroberta-base on the sentence-transformers/all-nli 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 Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: RobertaModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

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("sentence_transformers_model_id")
# Run inference
sentences = [
    "'Go now.'",
    'Now go.',
    'The door did not budge.',
]
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.8418
spearman_cosine 0.8486
pearson_manhattan 0.8357
spearman_manhattan 0.8341
pearson_euclidean 0.8378
spearman_euclidean 0.8365
pearson_dot 0.7477
spearman_dot 0.7445
pearson_max 0.8418
spearman_max 0.8486

Semantic Similarity

Metric Value
pearson_cosine 0.8417
spearman_cosine 0.849
pearson_manhattan 0.8348
spearman_manhattan 0.8333
pearson_euclidean 0.837
spearman_euclidean 0.8357
pearson_dot 0.7426
spearman_dot 0.7393
pearson_max 0.8417
spearman_max 0.849

Semantic Similarity

Metric Value
pearson_cosine 0.8368
spearman_cosine 0.8459
pearson_manhattan 0.8283
spearman_manhattan 0.828
pearson_euclidean 0.8304
spearman_euclidean 0.8301
pearson_dot 0.7158
spearman_dot 0.7114
pearson_max 0.8368
spearman_max 0.8459

Semantic Similarity

Metric Value
pearson_cosine 0.8292
spearman_cosine 0.841
pearson_manhattan 0.8205
spearman_manhattan 0.8212
pearson_euclidean 0.8218
spearman_euclidean 0.8223
pearson_dot 0.6737
spearman_dot 0.6705
pearson_max 0.8292
spearman_max 0.841

Semantic Similarity

Metric Value
pearson_cosine 0.8201
spearman_cosine 0.835
pearson_manhattan 0.8028
spearman_manhattan 0.8049
pearson_euclidean 0.8047
spearman_euclidean 0.8064
pearson_dot 0.6172
spearman_dot 0.6177
pearson_max 0.8201
spearman_max 0.835

Training Details

Training Dataset

sentence-transformers/all-nli

  • Dataset: sentence-transformers/all-nli at d482672
  • Size: 557,850 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 7 tokens
    • mean: 10.38 tokens
    • max: 45 tokens
    • min: 6 tokens
    • mean: 12.8 tokens
    • max: 39 tokens
    • min: 6 tokens
    • mean: 13.4 tokens
    • max: 50 tokens
  • Samples:
    anchor positive negative
    A person on a horse jumps over a broken down airplane. A person is outdoors, on a horse. A person is at a diner, ordering an omelette.
    Children smiling and waving at camera There are children present The kids are frowning
    A boy is jumping on skateboard in the middle of a red bridge. The boy does a skateboarding trick. The boy skates down the sidewalk.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Evaluation Dataset

sentence-transformers/all-nli

  • Dataset: sentence-transformers/all-nli at d482672
  • Size: 6,584 evaluation samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 6 tokens
    • mean: 18.02 tokens
    • max: 66 tokens
    • min: 5 tokens
    • mean: 9.81 tokens
    • max: 29 tokens
    • min: 5 tokens
    • mean: 10.37 tokens
    • max: 29 tokens
  • Samples:
    anchor positive negative
    Two women are embracing while holding to go packages. Two woman are holding packages. The men are fighting outside a deli.
    Two young children in blue jerseys, one with the number 9 and one with the number 2 are standing on wooden steps in a bathroom and washing their hands in a sink. Two kids in numbered jerseys wash their hands. Two kids in jackets walk to school.
    A man selling donuts to a customer during a world exhibition event held in the city of Angeles A man selling donuts to a customer. A woman drinks her coffee in a small cafe.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 256
  • per_device_eval_batch_size: 256
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • bf16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 256
  • per_device_eval_batch_size: 256
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • learning_rate: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss loss sts-dev-128_spearman_cosine sts-dev-256_spearman_cosine sts-dev-512_spearman_cosine sts-dev-64_spearman_cosine sts-dev-768_spearman_cosine
0.0459 100 19.459 8.2665 0.7796 0.8046 0.8114 0.8082 0.7996
0.0917 200 11.0035 7.6606 0.7696 0.7971 0.8083 0.7987 0.7933
0.1376 300 9.7634 6.4912 0.7992 0.8126 0.8190 0.8062 0.8127
0.1835 400 9.1103 5.9960 0.8081 0.8229 0.8263 0.8136 0.8224
0.2294 500 8.7099 5.9388 0.7984 0.8138 0.8189 0.8021 0.8166
0.2752 600 8.1215 5.6457 0.7963 0.8104 0.8149 0.8057 0.8121
0.3211 700 7.7441 5.4632 0.7937 0.8153 0.8199 0.8119 0.8150
0.3670 800 7.4849 5.1815 0.8076 0.8208 0.8238 0.8152 0.8172
0.4128 900 7.1386 5.1419 0.8035 0.8181 0.8235 0.8139 0.8189
0.4587 1000 6.839 5.1548 0.7943 0.8118 0.8172 0.8054 0.8153
0.5046 1100 6.6597 5.1015 0.7895 0.8066 0.8119 0.8059 0.8063
0.5505 1200 6.7172 5.3707 0.7753 0.7987 0.8068 0.7989 0.8014
0.5963 1300 6.6514 4.9368 0.7904 0.8086 0.8139 0.8051 0.8083
0.6422 1400 6.5573 5.0196 0.7882 0.8066 0.8128 0.8035 0.8091
0.6881 1500 6.7596 4.9381 0.7960 0.8120 0.8169 0.8058 0.8140
0.7339 1600 6.2686 4.4018 0.8136 0.8245 0.8268 0.8160 0.8244
0.7798 1700 3.4607 3.8397 0.8415 0.8466 0.8502 0.8345 0.8503
0.8257 1800 2.6912 3.7914 0.8415 0.8459 0.8493 0.8350 0.8488
0.8716 1900 2.4958 3.7752 0.8402 0.8450 0.8484 0.8340 0.8478
0.9174 2000 2.3413 3.7997 0.8410 0.8459 0.8490 0.8350 0.8486

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.0
  • Transformers: 4.41.1
  • PyTorch: 2.3.0+cu121
  • Accelerate: 0.30.1
  • Datasets: 2.19.2
  • Tokenizers: 0.19.1

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",
}

MatryoshkaLoss

@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning}, 
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

MultipleNegativesRankingLoss

@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply}, 
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}