cferreiragonz's picture
Add new SentenceTransformer model.
de410b0 verified
metadata
language:
  - en
license: apache-2.0
library_name: sentence-transformers
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:3853
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
base_model: BAAI/bge-base-en-v1.5
datasets: []
metrics:
  - cosine_accuracy@1
  - cosine_accuracy@3
  - cosine_accuracy@5
  - cosine_accuracy@10
  - cosine_precision@1
  - cosine_precision@3
  - cosine_precision@5
  - cosine_precision@10
  - cosine_recall@1
  - cosine_recall@3
  - cosine_recall@5
  - cosine_recall@10
  - cosine_ndcg@10
  - cosine_mrr@10
  - cosine_map@100
widget:
  - source_sentence: |-
      "BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS" <
      "BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS"
    sentences:
      - >-
        What is the primary concept that the Discovery Server mechanism uses
        from the RTPS protocol?
      - >-
        What is the default state of the Verbosity Level component in the
        logging module?
      - >-
        What is the consequence of having a DataWriter kind that is lower than
        the DataReader kind in terms of DestinationOrderQosPolicy?
  - source_sentence: >-
      +-----------------------------------------+-------------------------+--------------------------------------------------------+

      | Data Member Name                        | Type                    |
      Default Value                                          |

      |=========================================|=========================|========================================================|

      | "kind"                                  | DurabilityQosPolicyKind |
      "VOLATILE_DURABILITY_QOS" for DataReaders              |

      |                                         |                         |
      "TRANSIENT_LOCAL_DURABILITY_QOS" for DataWriters       |

      +-----------------------------------------+-------------------------+--------------------------------------------------------+
    sentences:
      - >-
        What is the default value of the "kind" data member for a DataReader in
        the DurabilityQoSPolicy?
      - >-
        What is the main concept of the SQL-like filter syntax used in
        ContentFilteredTopic API?
      - >-
        What is the purpose of the "<shared_dir>" value in the QoS
        configuration?
  - source_sentence: |2-
            git clone https://github.com/eProsima/Fast-DDS.git && cd Fast-DDS
            WORKSPACE=$PWD
    sentences:
      - >-
        What is the primary function of the ThreadSettings parameter in the
        context of Fast DDS thread creation?
      - >-
        What is the primary requirement for installing eProsima Fast DDS library
        on QNX 7.1 from sources?
      - >-
        What's the purpose of the "max_handshake_requests" property in the
        context of authentication handshake settings?
  - source_sentence: |-
      This QoS Policy allows the configuration of the wire protocol. See
      "WireProtocolConfigQos".
    sentences:
      - >-
        What is the primary purpose of the WireProtocolConfigQos policy in a DDS
        (Data Distribution Service) system?
      - >-
        What determines when a DataWriter sends consecutive liveliness messages,
        according to the LivelinessQosPolicy?
      - >-
        What is the purpose of the LivelinessQosPolicy in a DataReader's QoS
        settings?
  - source_sentence: |-
      * "AUTOMATIC_LIVELINESS_QOS": The service takes the responsibility for
        renewing the leases at the required rates, as long as the local
        process where the participant is running and the link connecting it
        to remote participants exists, the entities within the remote
        participant will be considered alive. This kind is suitable for
        applications that only need to detect whether a remote application
        is still running.
    sentences:
      - >-
        What is the primary mechanism used by the service to ensure that a
        particular entity on the network remains considered "alive" when using
        the LivelinessQosPolicy with the "AUTOMATIC_ LIVELINESS_ QOS" kind?
      - >-
        What is the purpose of creating a "DomainParticipant" in the context of
        monitoring application development?
      - >-
        What is the purpose of loading an XML profiles file before creating
        entities in Fast DDS?
pipeline_tag: sentence-similarity
model-index:
  - name: Fine tuning poc1-5e
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 768
          type: dim_768
        metrics:
          - type: cosine_accuracy@1
            value: 0.3333333333333333
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.49184149184149184
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.5524475524475524
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.6247086247086248
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.3333333333333333
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.16394716394716394
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.11048951048951047
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.06247086247086246
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.3333333333333333
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.49184149184149184
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.5524475524475524
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.6247086247086248
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.4719611229721751
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.4239057239057238
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.43117995796594344
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 512
          type: dim_512
        metrics:
          - type: cosine_accuracy@1
            value: 0.331002331002331
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.48717948717948717
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.5454545454545454
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.62004662004662
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.331002331002331
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.16239316239316237
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.10909090909090909
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.062004662004662
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.331002331002331
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.48717948717948717
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.5454545454545454
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.62004662004662
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.46621244210597373
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.4178830428830428
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.42502313070898473
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 256
          type: dim_256
        metrics:
          - type: cosine_accuracy@1
            value: 0.31002331002331
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.4731934731934732
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.5431235431235432
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.6083916083916084
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.31002331002331
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.1577311577311577
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.1086247086247086
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.060839160839160834
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.31002331002331
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.4731934731934732
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.5431235431235432
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.6083916083916084
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.4519785373832247
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.4023217523217523
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.4106739429542078
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 128
          type: dim_128
        metrics:
          - type: cosine_accuracy@1
            value: 0.30303030303030304
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.46386946386946387
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.5268065268065268
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.5967365967365967
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.30303030303030304
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.15462315462315462
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.10536130536130535
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.05967365967365966
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.30303030303030304
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.46386946386946387
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.5268065268065268
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.5967365967365967
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.44299689615589044
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.39438801938801926
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.4031610579311292
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 64
          type: dim_64
        metrics:
          - type: cosine_accuracy@1
            value: 0.27972027972027974
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.4289044289044289
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.49417249417249415
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.5641025641025641
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.27972027972027974
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.14296814296814295
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.09883449883449884
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.05641025641025641
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.27972027972027974
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.4289044289044289
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.49417249417249415
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.5641025641025641
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.41745494156327173
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.37105672105672094
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.3800930218379113
            name: Cosine Map@100

Fine tuning poc1-5e

This is a sentence-transformers model finetuned from BAAI/bge-base-en-v1.5. 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: BAAI/bge-base-en-v1.5
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 tokens
  • Similarity Function: Cosine Similarity
  • Language: en
  • License: apache-2.0

Model Sources

Full Model Architecture

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

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("cferreiragonz/bge-base-fastdds-questions-5b-epochs")
# Run inference
sentences = [
    '* "AUTOMATIC_LIVELINESS_QOS": The service takes the responsibility for\n  renewing the leases at the required rates, as long as the local\n  process where the participant is running and the link connecting it\n  to remote participants exists, the entities within the remote\n  participant will be considered alive. This kind is suitable for\n  applications that only need to detect whether a remote application\n  is still running.',
    'What is the primary mechanism used by the service to ensure that a particular entity on the network remains considered "alive" when using the LivelinessQosPolicy with the "AUTOMATIC_ LIVELINESS_ QOS" kind?',
    'What is the purpose of loading an XML profiles file before creating entities in Fast DDS?',
]
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

Information Retrieval

Metric Value
cosine_accuracy@1 0.3333
cosine_accuracy@3 0.4918
cosine_accuracy@5 0.5524
cosine_accuracy@10 0.6247
cosine_precision@1 0.3333
cosine_precision@3 0.1639
cosine_precision@5 0.1105
cosine_precision@10 0.0625
cosine_recall@1 0.3333
cosine_recall@3 0.4918
cosine_recall@5 0.5524
cosine_recall@10 0.6247
cosine_ndcg@10 0.472
cosine_mrr@10 0.4239
cosine_map@100 0.4312

Information Retrieval

Metric Value
cosine_accuracy@1 0.331
cosine_accuracy@3 0.4872
cosine_accuracy@5 0.5455
cosine_accuracy@10 0.62
cosine_precision@1 0.331
cosine_precision@3 0.1624
cosine_precision@5 0.1091
cosine_precision@10 0.062
cosine_recall@1 0.331
cosine_recall@3 0.4872
cosine_recall@5 0.5455
cosine_recall@10 0.62
cosine_ndcg@10 0.4662
cosine_mrr@10 0.4179
cosine_map@100 0.425

Information Retrieval

Metric Value
cosine_accuracy@1 0.31
cosine_accuracy@3 0.4732
cosine_accuracy@5 0.5431
cosine_accuracy@10 0.6084
cosine_precision@1 0.31
cosine_precision@3 0.1577
cosine_precision@5 0.1086
cosine_precision@10 0.0608
cosine_recall@1 0.31
cosine_recall@3 0.4732
cosine_recall@5 0.5431
cosine_recall@10 0.6084
cosine_ndcg@10 0.452
cosine_mrr@10 0.4023
cosine_map@100 0.4107

Information Retrieval

Metric Value
cosine_accuracy@1 0.303
cosine_accuracy@3 0.4639
cosine_accuracy@5 0.5268
cosine_accuracy@10 0.5967
cosine_precision@1 0.303
cosine_precision@3 0.1546
cosine_precision@5 0.1054
cosine_precision@10 0.0597
cosine_recall@1 0.303
cosine_recall@3 0.4639
cosine_recall@5 0.5268
cosine_recall@10 0.5967
cosine_ndcg@10 0.443
cosine_mrr@10 0.3944
cosine_map@100 0.4032

Information Retrieval

Metric Value
cosine_accuracy@1 0.2797
cosine_accuracy@3 0.4289
cosine_accuracy@5 0.4942
cosine_accuracy@10 0.5641
cosine_precision@1 0.2797
cosine_precision@3 0.143
cosine_precision@5 0.0988
cosine_precision@10 0.0564
cosine_recall@1 0.2797
cosine_recall@3 0.4289
cosine_recall@5 0.4942
cosine_recall@10 0.5641
cosine_ndcg@10 0.4175
cosine_mrr@10 0.3711
cosine_map@100 0.3801

Training Details

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 5
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • fp16: True
  • tf32: False
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • eval_accumulation_steps: None
  • learning_rate: 2e-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: 5
  • max_steps: -1
  • lr_scheduler_type: cosine
  • 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: False
  • fp16: True
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: False
  • 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: True
  • 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_fused
  • 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 dim_128_cosine_map@100 dim_256_cosine_map@100 dim_512_cosine_map@100 dim_64_cosine_map@100 dim_768_cosine_map@100
0.6639 10 5.0927 - - - - -
0.9959 15 - 0.3916 0.3898 0.4021 0.3546 0.4027
1.3278 20 3.3958 - - - - -
1.9917 30 2.6034 0.3893 0.4034 0.4163 0.3719 0.4222
2.6556 40 2.1012 - - - - -
2.9876 45 - 0.3975 0.4085 0.4240 0.3780 0.4291
3.3195 50 1.8189 - - - - -
3.9834 60 1.715 0.4029 0.411 0.4236 0.3794 0.4288
4.6473 70 1.6089 - - - - -
4.9793 75 - 0.4032 0.4107 0.4250 0.3801 0.4312
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.13
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2
  • Accelerate: 0.30.1
  • Datasets: 2.19.1
  • 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}
}