--- language: - en license: apache-2.0 tags: - sentence-transformers - cross-encoder - generated_from_trainer - dataset_size:2223773 - loss:BinaryCrossEntropyLoss base_model: cross-encoder/ms-marco-MiniLM-L6-v2 pipeline_tag: text-ranking library_name: sentence-transformers metrics: - map - mrr@10 - ndcg@10 model-index: - name: ModernBERT-base trained on GooAQ results: - task: type: cross-encoder-reranking name: Cross Encoder Reranking dataset: name: gooaq dev type: gooaq-dev metrics: - type: map value: 0.638 name: Map - type: mrr@10 value: 0.6361 name: Mrr@10 - type: ndcg@10 value: 0.6822 name: Ndcg@10 - task: type: cross-encoder-reranking name: Cross Encoder Reranking dataset: name: NanoMSMARCO R100 type: NanoMSMARCO_R100 metrics: - type: map value: 0.5437 name: Map - type: mrr@10 value: 0.5348 name: Mrr@10 - type: ndcg@10 value: 0.606 name: Ndcg@10 - task: type: cross-encoder-reranking name: Cross Encoder Reranking dataset: name: NanoNFCorpus R100 type: NanoNFCorpus_R100 metrics: - type: map value: 0.3885 name: Map - type: mrr@10 value: 0.563 name: Mrr@10 - type: ndcg@10 value: 0.4077 name: Ndcg@10 - task: type: cross-encoder-reranking name: Cross Encoder Reranking dataset: name: NanoNQ R100 type: NanoNQ_R100 metrics: - type: map value: 0.4626 name: Map - type: mrr@10 value: 0.4628 name: Mrr@10 - type: ndcg@10 value: 0.5091 name: Ndcg@10 - task: type: cross-encoder-nano-beir name: Cross Encoder Nano BEIR dataset: name: NanoBEIR R100 mean type: NanoBEIR_R100_mean metrics: - type: map value: 0.4649 name: Map - type: mrr@10 value: 0.5202 name: Mrr@10 - type: ndcg@10 value: 0.5076 name: Ndcg@10 --- # ModernBERT-base trained on GooAQ This is a [Cross Encoder](https://www.sbert.net/docs/cross_encoder/usage/usage.html) model finetuned from [cross-encoder/ms-marco-MiniLM-L6-v2](https://huggingface.co/cross-encoder/ms-marco-MiniLM-L6-v2) using the [sentence-transformers](https://www.SBERT.net) library. It computes scores for pairs of texts, which can be used for text reranking and semantic search. ## Model Details ### Model Description - **Model Type:** Cross Encoder - **Base model:** [cross-encoder/ms-marco-MiniLM-L6-v2](https://huggingface.co/cross-encoder/ms-marco-MiniLM-L6-v2) - **Maximum Sequence Length:** 512 tokens - **Number of Output Labels:** 1 label - **Language:** en - **License:** apache-2.0 ### Model Sources - **Documentation:** [Sentence Transformers Documentation](https://sbert.net) - **Documentation:** [Cross Encoder Documentation](https://www.sbert.net/docs/cross_encoder/usage/usage.html) - **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers) - **Hugging Face:** [Cross Encoders on Hugging Face](https://huggingface.co/models?library=sentence-transformers&other=cross-encoder) ## Usage ### Direct Usage (Sentence Transformers) First install the Sentence Transformers library: ```bash pip install -U sentence-transformers ``` Then you can load this model and run inference. ```python from sentence_transformers import CrossEncoder # Download from the 🤗 Hub model = CrossEncoder("ayushexel/reranker-ms-marco-MiniLM-L6-v2-gooaq-bce") # Get scores for pairs of texts pairs = [ ['what does it mean when you get a sharp pain in your left arm?', 'Pain in the left arm A pain in your left arm could mean you have a bone or joint injury, a pinched nerve, or a problem with your heart. Read on to learn more about the causes of left arm pain and what symptoms could signal a serious problem.'], ['what does it mean when you get a sharp pain in your left arm?', "In this Article Whether it's throbbing, aching, or sharp, everyone has been in pain. The uncomfortable sensation is a red flag. Pain in your armpit could mean that you've simply strained a muscle, which is eased with ice and rest. It could also be a sign of more serious conditions, like an infection or breast cancer."], ['what does it mean when you get a sharp pain in your left arm?', 'Sharp: When you feel a sudden, intense spike of pain, that qualifies as “sharp.” Sharp pain may also fit the descriptors cutting and shooting. Stabbing: Like sharp pain, stabbing pain occurs suddenly and intensely. However, stabbing pain may fade and reoccur many times.'], ['what does it mean when you get a sharp pain in your left arm?', 'Symptoms. A herniated disc in the neck can cause neck pain, radiating arm pain, shoulder pain, and numbness or tingling in the arm or hand. The quality and type of pain can vary from dull, aching, and difficult to localize to sharp, burning, and easy to pinpoint.'], ['what does it mean when you get a sharp pain in your left arm?', 'Injuries or trauma to any part of the arm or shoulder, including bone fractures, joint dislocations, and muscle strains and sprains, are common causes of arm pain. Sometimes diseases that affect other organs in the body, like peripheral vascular disease or arthritis, can be the cause of pain in the arm.'], ] scores = model.predict(pairs) print(scores.shape) # (5,) # Or rank different texts based on similarity to a single text ranks = model.rank( 'what does it mean when you get a sharp pain in your left arm?', [ 'Pain in the left arm A pain in your left arm could mean you have a bone or joint injury, a pinched nerve, or a problem with your heart. Read on to learn more about the causes of left arm pain and what symptoms could signal a serious problem.', "In this Article Whether it's throbbing, aching, or sharp, everyone has been in pain. The uncomfortable sensation is a red flag. Pain in your armpit could mean that you've simply strained a muscle, which is eased with ice and rest. It could also be a sign of more serious conditions, like an infection or breast cancer.", 'Sharp: When you feel a sudden, intense spike of pain, that qualifies as “sharp.” Sharp pain may also fit the descriptors cutting and shooting. Stabbing: Like sharp pain, stabbing pain occurs suddenly and intensely. However, stabbing pain may fade and reoccur many times.', 'Symptoms. A herniated disc in the neck can cause neck pain, radiating arm pain, shoulder pain, and numbness or tingling in the arm or hand. The quality and type of pain can vary from dull, aching, and difficult to localize to sharp, burning, and easy to pinpoint.', 'Injuries or trauma to any part of the arm or shoulder, including bone fractures, joint dislocations, and muscle strains and sprains, are common causes of arm pain. Sometimes diseases that affect other organs in the body, like peripheral vascular disease or arthritis, can be the cause of pain in the arm.', ] ) # [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...] ``` ## Evaluation ### Metrics #### Cross Encoder Reranking * Dataset: `gooaq-dev` * Evaluated with [CrossEncoderRerankingEvaluator](https://sbert.net/docs/package_reference/cross_encoder/evaluation.html#sentence_transformers.cross_encoder.evaluation.CrossEncoderRerankingEvaluator) with these parameters: ```json { "at_k": 10, "always_rerank_positives": false } ``` | Metric | Value | |:------------|:---------------------| | map | 0.6380 (+0.2121) | | mrr@10 | 0.6361 (+0.2199) | | **ndcg@10** | **0.6822 (+0.2001)** | #### Cross Encoder Reranking * Datasets: `NanoMSMARCO_R100`, `NanoNFCorpus_R100` and `NanoNQ_R100` * Evaluated with [CrossEncoderRerankingEvaluator](https://sbert.net/docs/package_reference/cross_encoder/evaluation.html#sentence_transformers.cross_encoder.evaluation.CrossEncoderRerankingEvaluator) with these parameters: ```json { "at_k": 10, "always_rerank_positives": true } ``` | Metric | NanoMSMARCO_R100 | NanoNFCorpus_R100 | NanoNQ_R100 | |:------------|:---------------------|:---------------------|:---------------------| | map | 0.5437 (+0.0541) | 0.3885 (+0.1275) | 0.4626 (+0.0430) | | mrr@10 | 0.5348 (+0.0573) | 0.5630 (+0.0632) | 0.4628 (+0.0361) | | **ndcg@10** | **0.6060 (+0.0655)** | **0.4077 (+0.0827)** | **0.5091 (+0.0084)** | #### Cross Encoder Nano BEIR * Dataset: `NanoBEIR_R100_mean` * Evaluated with [CrossEncoderNanoBEIREvaluator](https://sbert.net/docs/package_reference/cross_encoder/evaluation.html#sentence_transformers.cross_encoder.evaluation.CrossEncoderNanoBEIREvaluator) with these parameters: ```json { "dataset_names": [ "msmarco", "nfcorpus", "nq" ], "rerank_k": 100, "at_k": 10, "always_rerank_positives": true } ``` | Metric | Value | |:------------|:---------------------| | map | 0.4649 (+0.0749) | | mrr@10 | 0.5202 (+0.0522) | | **ndcg@10** | **0.5076 (+0.0522)** | ## Training Details ### Training Dataset #### Unnamed Dataset * Size: 2,223,773 training samples * Columns: question, answer, and label * Approximate statistics based on the first 1000 samples: | | question | answer | label | |:--------|:-----------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------|:------------------------------------------------| | type | string | string | int | | details | | | | * Samples: | question | answer | label | |:---------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------| | what does it mean when you get a sharp pain in your left arm? | Pain in the left arm A pain in your left arm could mean you have a bone or joint injury, a pinched nerve, or a problem with your heart. Read on to learn more about the causes of left arm pain and what symptoms could signal a serious problem. | 1 | | what does it mean when you get a sharp pain in your left arm? | In this Article Whether it's throbbing, aching, or sharp, everyone has been in pain. The uncomfortable sensation is a red flag. Pain in your armpit could mean that you've simply strained a muscle, which is eased with ice and rest. It could also be a sign of more serious conditions, like an infection or breast cancer. | 0 | | what does it mean when you get a sharp pain in your left arm? | Sharp: When you feel a sudden, intense spike of pain, that qualifies as “sharp.” Sharp pain may also fit the descriptors cutting and shooting. Stabbing: Like sharp pain, stabbing pain occurs suddenly and intensely. However, stabbing pain may fade and reoccur many times. | 0 | * Loss: [BinaryCrossEntropyLoss](https://sbert.net/docs/package_reference/cross_encoder/losses.html#binarycrossentropyloss) with these parameters: ```json { "activation_fn": "torch.nn.modules.linear.Identity", "pos_weight": 7 } ``` ### Training Hyperparameters #### Non-Default Hyperparameters - `eval_strategy`: steps - `per_device_train_batch_size`: 2048 - `per_device_eval_batch_size`: 2048 - `learning_rate`: 2e-05 - `warmup_ratio`: 0.1 - `seed`: 12 - `bf16`: True - `dataloader_num_workers`: 12 - `load_best_model_at_end`: True #### All Hyperparameters
Click to expand - `overwrite_output_dir`: False - `do_predict`: False - `eval_strategy`: steps - `prediction_loss_only`: True - `per_device_train_batch_size`: 2048 - `per_device_eval_batch_size`: 2048 - `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`: 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`: 3 - `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`: 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`: 12 - `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} - `tp_size`: 0 - `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`: batch_sampler - `multi_dataset_batch_sampler`: proportional
### Training Logs | Epoch | Step | Training Loss | gooaq-dev_ndcg@10 | NanoMSMARCO_R100_ndcg@10 | NanoNFCorpus_R100_ndcg@10 | NanoNQ_R100_ndcg@10 | NanoBEIR_R100_mean_ndcg@10 | |:----------:|:--------:|:-------------:|:--------------------:|:------------------------:|:-------------------------:|:--------------------:|:--------------------------:| | -1 | -1 | - | 0.6371 (+0.1550) | 0.6686 (+0.1282) | 0.3930 (+0.0680) | 0.7599 (+0.2592) | 0.6072 (+0.1518) | | 0.0009 | 1 | 2.1175 | - | - | - | - | - | | 0.1842 | 200 | 1.1892 | - | - | - | - | - | | 0.3683 | 400 | 0.676 | - | - | - | - | - | | 0.5525 | 600 | 0.6268 | - | - | - | - | - | | 0.7366 | 800 | 0.606 | - | - | - | - | - | | 0.9208 | 1000 | 0.5933 | 0.6731 (+0.1910) | 0.6038 (+0.0634) | 0.4572 (+0.1321) | 0.5220 (+0.0213) | 0.5277 (+0.0723) | | 1.1050 | 1200 | 0.5756 | - | - | - | - | - | | 1.2891 | 1400 | 0.5625 | - | - | - | - | - | | 1.4733 | 1600 | 0.5575 | - | - | - | - | - | | 1.6575 | 1800 | 0.549 | - | - | - | - | - | | 1.8416 | 2000 | 0.5475 | 0.6799 (+0.1977) | 0.6072 (+0.0667) | 0.4278 (+0.1028) | 0.5031 (+0.0024) | 0.5127 (+0.0573) | | 2.0258 | 2200 | 0.5391 | - | - | - | - | - | | 2.2099 | 2400 | 0.5276 | - | - | - | - | - | | 2.3941 | 2600 | 0.5271 | - | - | - | - | - | | 2.5783 | 2800 | 0.5264 | - | - | - | - | - | | **2.7624** | **3000** | **0.5244** | **0.6822 (+0.2001)** | **0.6060 (+0.0655)** | **0.4077 (+0.0827)** | **0.5091 (+0.0084)** | **0.5076 (+0.0522)** | | 2.9466 | 3200 | 0.5235 | - | - | - | - | - | | -1 | -1 | - | 0.6822 (+0.2001) | 0.6060 (+0.0655) | 0.4077 (+0.0827) | 0.5091 (+0.0084) | 0.5076 (+0.0522) | * The bold row denotes the saved checkpoint. ### Framework Versions - Python: 3.11.0 - Sentence Transformers: 4.0.1 - Transformers: 4.50.3 - PyTorch: 2.6.0+cu124 - Accelerate: 1.5.2 - Datasets: 3.5.0 - Tokenizers: 0.21.1 ## Citation ### BibTeX #### Sentence Transformers ```bibtex @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", } ```