SentenceTransformer based on answerdotai/ModernBERT-base

This is a sentence-transformers model finetuned from answerdotai/ModernBERT-base on the natural-questions 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.

This is a test model to experiment with the proposed DebiasedMultipleNegativesRankingLoss from Pull Request #3148 in the Sentence Transformers repository, using commit 370bf473e60b57f7d01a6e084b5acaabdac38a2c.

Model Details

Model Description

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

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: ModernBertModel 
  (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("tomaarsen/ModernBERT-base-nq-debiased-mnrl")
# Run inference
sentences = [
    'what is meaning of am and pm in time',
    '12-hour clock The 12-hour clock is a time convention in which the 24 hours of the day are divided into two periods:[1] a.m. (from the Latin, ante meridiem, meaning before midday) and p.m. (post meridiem, meaning past midday).[2] Each period consists of 12 hours numbered: 12 (acting as zero),[3] 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, and 11. The 24 hour/day cycle starts at 12 midnight (often indicated as 12 a.m.), runs through 12 noon (often indicated as 12 p.m.), and continues to the midnight at the end of the day. The 12-hour clock was developed over time from the mid-second millennium BC to the 16th century AD.',
    "America's Got Talent America's Got Talent (often abbreviated as AGT) is a televised American talent show competition, broadcast on the NBC television network. It is part of the global Got Talent franchise created by Simon Cowell, and is produced by Fremantle North America and SYCOtv, with distribution done by Fremantle. Since its premiere in June 2006, each season is run during the network's summer schedule, with the show having featured various hosts - it is currently hosted by Tyra Banks, since 2017.[2] It is the first global edition of the franchise, after plans for a British edition in 2005 were suspended, following a dispute between Paul O'Grady, the planned host, and the British broadcaster ITV; production of this edition later resumed in 2007.[3]",
]
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 NanoMSMARCO NanoHotpotQA
cosine_accuracy@1 0.14 0.14
cosine_accuracy@3 0.24 0.28
cosine_accuracy@5 0.3 0.3
cosine_accuracy@10 0.4 0.36
cosine_precision@1 0.14 0.14
cosine_precision@3 0.08 0.0933
cosine_precision@5 0.06 0.064
cosine_precision@10 0.04 0.038
cosine_recall@1 0.14 0.07
cosine_recall@3 0.24 0.14
cosine_recall@5 0.3 0.16
cosine_recall@10 0.4 0.19
cosine_ndcg@10 0.2508 0.1572
cosine_mrr@10 0.2056 0.2122
cosine_map@100 0.2194 0.1232

Nano BEIR

Metric Value
cosine_accuracy@1 0.14
cosine_accuracy@3 0.26
cosine_accuracy@5 0.3
cosine_accuracy@10 0.38
cosine_precision@1 0.14
cosine_precision@3 0.0867
cosine_precision@5 0.062
cosine_precision@10 0.039
cosine_recall@1 0.105
cosine_recall@3 0.19
cosine_recall@5 0.23
cosine_recall@10 0.295
cosine_ndcg@10 0.204
cosine_mrr@10 0.2089
cosine_map@100 0.1713

Training Details

Training Dataset

natural-questions

  • Dataset: natural-questions at f9e894e
  • Size: 100,231 training samples
  • Columns: query and answer
  • Approximate statistics based on the first 1000 samples:
    query answer
    type string string
    details
    • min: 10 tokens
    • mean: 12.46 tokens
    • max: 25 tokens
    • min: 16 tokens
    • mean: 139.02 tokens
    • max: 537 tokens
  • Samples:
    query answer
    who is required to report according to the hmda Home Mortgage Disclosure Act US financial institutions must report HMDA data to their regulator if they meet certain criteria, such as having assets above a specific threshold. The criteria is different for depository and non-depository institutions and are available on the FFIEC website.[4] In 2012, there were 7,400 institutions that reported a total of 18.7 million HMDA records.[5]
    what is the definition of endoplasmic reticulum in biology Endoplasmic reticulum The endoplasmic reticulum (ER) is a type of organelle in eukaryotic cells that forms an interconnected network of flattened, membrane-enclosed sacs or tube-like structures known as cisternae. The membranes of the ER are continuous with the outer nuclear membrane. The endoplasmic reticulum occurs in most types of eukaryotic cells, but is absent from red blood cells and spermatozoa. There are two types of endoplasmic reticulum: rough and smooth. The outer (cytosolic) face of the rough endoplasmic reticulum is studded with ribosomes that are the sites of protein synthesis. The rough endoplasmic reticulum is especially prominent in cells such as hepatocytes. The smooth endoplasmic reticulum lacks ribosomes and functions in lipid manufacture and metabolism, the production of steroid hormones, and detoxification.[1] The smooth ER is especially abundant in mammalian liver and gonad cells. The lacy membranes of the endoplasmic reticulum were first seen in 1945 using elect...
    what does the ski mean in polish names Polish name Since the High Middle Ages, Polish-sounding surnames ending with the masculine -ski suffix, including -cki and -dzki, and the corresponding feminine suffix -ska/-cka/-dzka were associated with the nobility (Polish szlachta), which alone, in the early years, had such suffix distinctions.[1] They are widely popular today.
  • Loss: DebiasedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 1.0,
        "similarity_fct": "cos_sim"
    }
    

Evaluation Dataset

natural-questions

  • Dataset: natural-questions at f9e894e
  • Size: 100,231 evaluation samples
  • Columns: query and answer
  • Approximate statistics based on the first 1000 samples:
    query answer
    type string string
    details
    • min: 10 tokens
    • mean: 12.46 tokens
    • max: 22 tokens
    • min: 12 tokens
    • mean: 138.0 tokens
    • max: 649 tokens
  • Samples:
    query answer
    difference between russian blue and british blue cat Russian Blue The coat is known as a "double coat", with the undercoat being soft, downy and equal in length to the guard hairs, which are an even blue with silver tips. However, the tail may have a few very dull, almost unnoticeable stripes. The coat is described as thick, plush and soft to the touch. The feeling is softer than the softest silk. The silver tips give the coat a shimmering appearance. Its eyes are almost always a dark and vivid green. Any white patches of fur or yellow eyes in adulthood are seen as flaws in show cats.[3] Russian Blues should not be confused with British Blues (which are not a distinct breed, but rather a British Shorthair with a blue coat as the British Shorthair breed itself comes in a wide variety of colors and patterns), nor the Chartreux or Korat which are two other naturally occurring breeds of blue cats, although they have similar traits.
    who played the little girl on mrs doubtfire Mara Wilson Mara Elizabeth Wilson[2] (born July 24, 1987) is an American writer and former child actress. She is known for playing Natalie Hillard in Mrs. Doubtfire (1993), Susan Walker in Miracle on 34th Street (1994), Matilda Wormwood in Matilda (1996) and Lily Stone in Thomas and the Magic Railroad (2000). Since retiring from film acting, Wilson has focused on writing.
    what year did the movie the sound of music come out The Sound of Music (film) The film was released on March 2, 1965 in the United States, initially as a limited roadshow theatrical release. Although critical response to the film was widely mixed, the film was a major commercial success, becoming the number one box office movie after four weeks, and the highest-grossing film of 1965. By November 1966, The Sound of Music had become the highest-grossing film of all-time—surpassing Gone with the Wind—and held that distinction for five years. The film was just as popular throughout the world, breaking previous box-office records in twenty-nine countries. Following an initial theatrical release that lasted four and a half years, and two successful re-releases, the film sold 283 million admissions worldwide and earned a total worldwide gross of $286,000,000.
  • Loss: DebiasedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 1.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 128
  • per_device_eval_batch_size: 128
  • learning_rate: 8e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.05
  • seed: 12
  • 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: 128
  • per_device_eval_batch_size: 128
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 8e-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.05
  • 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: 12
  • 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: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • 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
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss Validation Loss NanoMSMARCO_cosine_ndcg@10 NanoHotpotQA_cosine_ndcg@10 NanoBEIR_mean_cosine_ndcg@10
0 0 - - 0.0785 0.1489 0.1137
0.0129 10 4.8033 - - - -
0.0258 20 4.5295 - - - -
0.0387 30 4.2124 - - - -
0.0515 40 4.0863 - - - -
0.0644 50 4.0048 3.9563 0.1444 0.1660 0.1552
0.0773 60 3.9686 - - - -
0.0902 70 3.9192 - - - -
0.1031 80 3.9276 - - - -
0.1160 90 3.9104 - - - -
0.1289 100 3.8971 3.8877 0.2041 0.1293 0.1667
0.1418 110 3.8987 - - - -
0.1546 120 3.8861 - - - -
0.1675 130 3.8987 - - - -
0.1804 140 3.8811 - - - -
0.1933 150 3.8697 3.8478 0.1918 0.1084 0.1501
0.2062 160 3.8621 - - - -
0.2191 170 3.8628 - - - -
0.2320 180 3.8733 - - - -
0.2448 190 3.8551 - - - -
0.2577 200 3.862 3.8324 0.1940 0.0977 0.1458
0.2706 210 3.8545 - - - -
0.2835 220 3.8495 - - - -
0.2964 230 3.8459 - - - -
0.3093 240 3.8438 - - - -
0.3222 250 3.8425 3.8238 0.1933 0.1498 0.1716
0.3351 260 3.843 - - - -
0.3479 270 3.8486 - - - -
0.3608 280 3.8409 - - - -
0.3737 290 3.8345 - - - -
0.3866 300 3.8446 3.8154 0.1937 0.1532 0.1735
0.3995 310 3.8281 - - - -
0.4124 320 3.8316 - - - -
0.4253 330 3.8325 - - - -
0.4381 340 3.8298 - - - -
0.4510 350 3.8379 3.8104 0.1690 0.1559 0.1624
0.4639 360 3.821 - - - -
0.4768 370 3.8297 - - - -
0.4897 380 3.8206 - - - -
0.5026 390 3.8222 - - - -
0.5155 400 3.8243 3.8031 0.2141 0.1544 0.1843
0.5284 410 3.8328 - - - -
0.5412 420 3.8211 - - - -
0.5541 430 3.82 - - - -
0.5670 440 3.8167 - - - -
0.5799 450 3.8062 3.7988 0.2281 0.1392 0.1837
0.5928 460 3.8166 - - - -
0.6057 470 3.8164 - - - -
0.6186 480 3.8207 - - - -
0.6314 490 3.815 - - - -
0.6443 500 3.813 3.7943 0.2381 0.1260 0.1821
0.6572 510 3.8144 - - - -
0.6701 520 3.8172 - - - -
0.6830 530 3.8175 - - - -
0.6959 540 3.8126 - - - -
0.7088 550 3.8077 3.7913 0.2501 0.1395 0.1948
0.7216 560 3.8022 - - - -
0.7345 570 3.8131 - - - -
0.7474 580 3.8067 - - - -
0.7603 590 3.8175 - - - -
0.7732 600 3.8084 3.7870 0.2751 0.1480 0.2116
0.7861 610 3.8029 - - - -
0.7990 620 3.8125 - - - -
0.8119 630 3.817 - - - -
0.8247 640 3.8038 - - - -
0.8376 650 3.8054 3.7877 0.2274 0.1449 0.1861
0.8505 660 3.8041 - - - -
0.8634 670 3.8012 - - - -
0.8763 680 3.8117 - - - -
0.8892 690 3.8098 - - - -
0.9021 700 3.8008 3.7848 0.2466 0.1551 0.2008
0.9149 710 3.8038 - - - -
0.9278 720 3.7949 - - - -
0.9407 730 3.8044 - - - -
0.9536 740 3.7982 - - - -
0.9665 750 3.804 3.7832 0.2585 0.1587 0.2086
0.9794 760 3.8038 - - - -
0.9923 770 3.8046 - - - -
1.0 776 - - 0.2508 0.1572 0.2040

Framework Versions

  • Python: 3.11.10
  • Sentence Transformers: 3.4.0.dev0
  • Transformers: 4.48.0.dev0
  • PyTorch: 2.6.0.dev20241112+cu121
  • Accelerate: 1.2.0
  • 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",
}

DebiasedMultipleNegativesRankingLoss

@inproceedings{chuang2020debiased,
    title={Debiased Contrastive Learning},
    author={Ching-Yao Chuang and Joshua Robinson and Lin Yen-Chen and Antonio Torralba and Stefanie Jegelka},
    booktitle={Advances in Neural Information Processing Systems},
    year={2020},
    url={https://arxiv.org/pdf/2007.00224}
}
Downloads last month
3
Safetensors
Model size
149M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for tomaarsen/test-ModernBERT-base-nq-debiased-mnrl

Finetuned
(173)
this model

Dataset used to train tomaarsen/test-ModernBERT-base-nq-debiased-mnrl

Evaluation results