CrossEncoder based on microsoft/MiniLM-L12-H384-uncased

This is a Cross Encoder model finetuned from microsoft/MiniLM-L12-H384-uncased on the ms_marco dataset using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.

Model Details

Model Description

Model Sources

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 CrossEncoder

# Download from the 🤗 Hub
model = CrossEncoder("tomaarsen/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-plistmle-seeded")
# Get scores for pairs of texts
pairs = [
    ['How many calories in an egg', 'There are on average between 55 and 80 calories in an egg depending on its size.'],
    ['How many calories in an egg', 'Egg whites are very low in calories, have no fat, no cholesterol, and are loaded with protein.'],
    ['How many calories in an egg', 'Most of the calories in an egg come from the yellow yolk in the center.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (3,)

# Or rank different texts based on similarity to a single text
ranks = model.rank(
    'How many calories in an egg',
    [
        'There are on average between 55 and 80 calories in an egg depending on its size.',
        'Egg whites are very low in calories, have no fat, no cholesterol, and are loaded with protein.',
        'Most of the calories in an egg come from the yellow yolk in the center.',
    ]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]

Evaluation

Metrics

Cross Encoder Reranking

  • Datasets: NanoMSMARCO_R100, NanoNFCorpus_R100 and NanoNQ_R100
  • Evaluated with CrossEncoderRerankingEvaluator with these parameters:
    {
        "at_k": 10,
        "always_rerank_positives": true
    }
    
Metric NanoMSMARCO_R100 NanoNFCorpus_R100 NanoNQ_R100
map 0.4900 (+0.0004) 0.3317 (+0.0707) 0.5829 (+0.1632)
mrr@10 0.4792 (+0.0017) 0.5575 (+0.0577) 0.5914 (+0.1647)
ndcg@10 0.5526 (+0.0122) 0.3642 (+0.0391) 0.6488 (+0.1481)

Cross Encoder Nano BEIR

  • Dataset: NanoBEIR_R100_mean
  • Evaluated with CrossEncoderNanoBEIREvaluator with these parameters:
    {
        "dataset_names": [
            "msmarco",
            "nfcorpus",
            "nq"
        ],
        "rerank_k": 100,
        "at_k": 10,
        "always_rerank_positives": true
    }
    
Metric Value
map 0.4682 (+0.0781)
mrr@10 0.5427 (+0.0747)
ndcg@10 0.5219 (+0.0665)

Training Details

Training Dataset

ms_marco

  • Dataset: ms_marco at a47ee7a
  • Size: 78,704 training samples
  • Columns: query, docs, and labels
  • Approximate statistics based on the first 1000 samples:
    query docs labels
    type string list list
    details
    • min: 11 characters
    • mean: 33.61 characters
    • max: 85 characters
    • min: 2 elements
    • mean: 6.00 elements
    • max: 10 elements
    • min: 2 elements
    • mean: 6.00 elements
    • max: 10 elements
  • Samples:
    query docs labels
    what does syllables mean ['A syllable is a unit of organization for a sequence of speech sounds. For example, the word water is composed of two syllables: wa and ter. A syllable is typically made up of a syllable nucleus (most often a vowel) with optional initial and final margins (typically, consonants). Syllables are often considered the phonological building blocks of words. They can influence the rhythm of a language, its prosody, its poetic meter and its stress patterns. The first syllable of a word is the initial syllable and the last syllable is the final syllable. In languages accented on one of the last three syllables, the last syllable is called the ultima, the next-to-last is called the penult, and the third syllable from the end is called the antepenult.', '1 A unit of pronunciation having one vowel sound, with or without surrounding consonants, forming the whole or a part of a word; for example, there are two syllables in water and three in inferno. Example sentences. 1 The vowels of the stresse... [1, 0, 0, 0, 0, ...]
    how long does it take to become a child psychiatrist ["The Path to Becoming a Psychologist. First, you will need a bachelor's degree (4 to 5 years), which teaches the fundamentals of psychology. After that, you will need a master's degree (2 to 3 years), which can qualify you to practice in the field as a case manager, employment specialist, or social worker.", 'For example, becoming a school psychologist can take a little as two years of graduate-level education, and only requires a master’s degree. On the other hand, if you want to become a child psychologist you will need to earn a doctorate degree, which can require up to seven additional years of psychologist schooling.', '1 During the first four years of medical school you take classes, do lab work, and learn about medical ethics. 2 You may not have the opportunity to do hands-on psychiatry work at this stage, but earning your medical degree is a requirement in the path to becoming a psychiatrist, so stick with it.', '1 Clinical Psychologist: Doctorate Degree in Psychology (4 to 7... [1, 0, 0, 0, 0, ...]
    how do great horned owls defend themselves ["Owls can't always successfully defend themselves from other animals, particularly their prey. Great horned owls, for example, are often found either dead or injured as a result of would-be prey like skunks and porcupines fighting back. Feet and Beak. Like other birds in the raptor group, owls of all species use their beaks and talons to defend themselves. An owl's feet are equipped with particularly long, sharp and curved claws, which he can dig into an adversary and use like hooks to tear and rip at flesh.", "Tom Brakefield/Stockbyte/Getty Images. Owls are raptors, birds of prey. They provide sustenance and defend themselves with strong, sharp breaks and talons. The owl's ability to avoid detection is perhaps the most important weapon in his defensive arsenal, since it allows him to avoid confrontation in the first place. Feet and Beak. Like other birds in the raptor group, owls of all species use their beaks and talons to defend themselves. An owl's feet are equipped with particula... [1, 0, 0, 0, 0, ...]
  • Loss: PListMLELoss with these parameters:
    {
        "lambda_weight": "sentence_transformers.cross_encoder.losses.PListMLELoss.PListMLELambdaWeight",
        "activation_fct": "torch.nn.modules.linear.Identity",
        "mini_batch_size": 16,
        "respect_input_order": true
    }
    

Evaluation Dataset

ms_marco

  • Dataset: ms_marco at a47ee7a
  • Size: 1,000 evaluation samples
  • Columns: query, docs, and labels
  • Approximate statistics based on the first 1000 samples:
    query docs labels
    type string list list
    details
    • min: 12 characters
    • mean: 33.62 characters
    • max: 99 characters
    • min: 3 elements
    • mean: 6.50 elements
    • max: 10 elements
    • min: 3 elements
    • mean: 6.50 elements
    • max: 10 elements
  • Samples:
    query docs labels
    what age do kids fly free? ["If you're taking a domestic flight with your infant, your airline will likely allow the baby to fly at no cost -- provided you hold him on your lap throughout the flight. Generally, American Airlines allows children younger than two years of age to fly for free with a parent or another adult over the age of 18. You'll save cash, though you'll likely be uncomfortable after a short time unless you're traveling with a partner or other adult who can take turns holding the baby. ", "Unaccompanied Minor Program. The Unaccompanied Minor Program is required for all children 5-14 years old when not traveling in the same compartment with an adult who is at least 18 years old or the child's parent/legal guardian. The program is optional for children 15-17 years old. ", 'Most airlines let under 2 fly for free (not under 3).If flying internationally,taxes or a small service fee usually 10% of adult fare will have to be paid. ANOTHER ANSWER I totally agree with answer #2. Whether you have a newbor... [1, 0, 0, 0, 0, ...]
    extensor muscles of the hand that are innervated by radial nerve ['Extrinsic muscles of the hand innervated by the radial nerve. extensor digitorum communis (EDC), extensor digiti minimi (EDM), extensor indicis, extensor pollicis longus (EPL), extensor pollicis brevis (EPB), abductor pollicis longus (APL).', 'The radial nerve contributed 1 to 3 branches to the brachialis in 10 of 20 specimens. In all specimens, the radial nerve innervated all of the extensor fore-arm muscles. In 2 of 20 specimens, there was an extensor medius proprius (EMP) muscle.', 'The thenar muscles are three short muscles located at the base of the thumb. The muscle bellies produce a bulge, known as the thenar eminence. They are responsible for the fine movements of the thumb. The median nerve innervates all the thenar muscles.', 'A total of 27 bones constitute the basic skeleton of the wrist and hand. The hand is innervated by 3 nerves — the median, ulnar, and radial nerves — each of which has sensory and motor components. The muscles of the hand are divided into intrinsic and... [1, 0, 0, 0, 0, ...]
    what does domestic limited liability company mean ['2. Domestic limited liability company means an entity that is an unincorporated association having one or more members and that is organized under ORS chapter 63. 4. Look beforeyou eat. Portland-area restaurant health scores. 1. Domestic limited liability company means an entity that is an unincorporated association having one or more members and that is organized under ORS chapter 63.', 'To register a Domestic Limited Liability Company in Hawaii, you must file the Articles of Organization for Limited Liability Company Form LLC-1 with the appropriate filing fee(s) . Use the links above to register and pay online or to access our fillable PDF forms which you can print and mail in with your payment. ', "I was talking to someone the other day who has a limited liability company (LLC). She is doing business in several states and she said she was told she must register as a foreign LLC in each state. She wondered why it was called a foreign LLC, since she wasn't doing business outside t... [1, 0, 0, 0, 0, ...]
  • Loss: PListMLELoss with these parameters:
    {
        "lambda_weight": "sentence_transformers.cross_encoder.losses.PListMLELoss.PListMLELambdaWeight",
        "activation_fct": "torch.nn.modules.linear.Identity",
        "mini_batch_size": 16,
        "respect_input_order": true
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • seed: 12
  • bf16: True
  • 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: 16
  • per_device_eval_batch_size: 16
  • 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: 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: 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: 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
  • 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 Validation Loss NanoMSMARCO_R100_ndcg@10 NanoNFCorpus_R100_ndcg@10 NanoNQ_R100_ndcg@10 NanoBEIR_R100_mean_ndcg@10
-1 -1 - - 0.0300 (-0.5104) 0.2528 (-0.0723) 0.0168 (-0.4839) 0.0999 (-0.3555)
0.0002 1 2.2023 - - - - -
0.0508 250 2.1003 - - - - -
0.1016 500 1.9606 1.9318 0.2069 (-0.3335) 0.2496 (-0.0755) 0.2308 (-0.2699) 0.2291 (-0.2263)
0.1525 750 1.8932 - - - - -
0.2033 1000 1.8711 1.8656 0.4275 (-0.1129) 0.2878 (-0.0372) 0.4897 (-0.0109) 0.4017 (-0.0537)
0.2541 1250 1.8597 - - - - -
0.3049 1500 1.8486 1.8518 0.5873 (+0.0469) 0.3577 (+0.0327) 0.5874 (+0.0868) 0.5108 (+0.0555)
0.3558 1750 1.8415 - - - - -
0.4066 2000 1.8338 1.8441 0.5467 (+0.0062) 0.3619 (+0.0368) 0.5936 (+0.0929) 0.5007 (+0.0453)
0.4574 2250 1.8189 - - - - -
0.5082 2500 1.8338 1.8293 0.5523 (+0.0119) 0.3676 (+0.0426) 0.6452 (+0.1446) 0.5217 (+0.0664)
0.5591 2750 1.8109 - - - - -
0.6099 3000 1.8291 1.8306 0.5489 (+0.0085) 0.3649 (+0.0398) 0.6360 (+0.1353) 0.5166 (+0.0612)
0.6607 3250 1.8124 - - - - -
0.7115 3500 1.8205 1.8301 0.5526 (+0.0122) 0.3642 (+0.0391) 0.6488 (+0.1481) 0.5219 (+0.0665)
0.7624 3750 1.8166 - - - - -
0.8132 4000 1.8223 1.8205 0.5512 (+0.0108) 0.3578 (+0.0328) 0.6173 (+0.1167) 0.5088 (+0.0534)
0.8640 4250 1.8129 - - - - -
0.9148 4500 1.8132 1.8214 0.5364 (-0.0040) 0.3603 (+0.0353) 0.6257 (+0.1251) 0.5075 (+0.0521)
0.9656 4750 1.8188 - - - - -
-1 -1 - - 0.5526 (+0.0122) 0.3642 (+0.0391) 0.6488 (+0.1481) 0.5219 (+0.0665)
  • The bold row denotes the saved checkpoint.

Environmental Impact

Carbon emissions were measured using CodeCarbon.

  • Energy Consumed: 0.239 kWh
  • Carbon Emitted: 0.093 kg of CO2
  • Hours Used: 0.972 hours

Training Hardware

  • On Cloud: No
  • GPU Model: 1 x NVIDIA GeForce RTX 3090
  • CPU Model: 13th Gen Intel(R) Core(TM) i7-13700K
  • RAM Size: 31.78 GB

Framework Versions

  • Python: 3.11.6
  • Sentence Transformers: 3.5.0.dev0
  • Transformers: 4.49.0
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.5.1
  • Datasets: 3.3.2
  • 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",
}

PListMLELoss

@inproceedings{lan2014position,
  title={Position-Aware ListMLE: A Sequential Learning Process for Ranking.},
  author={Lan, Yanyan and Zhu, Yadong and Guo, Jiafeng and Niu, Shuzi and Cheng, Xueqi},
  booktitle={UAI},
  volume={14},
  pages={449--458},
  year={2014}
}
Downloads last month
5
Safetensors
Model size
33.4M params
Tensor type
F32
·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API: The HF Inference API does not support text-ranking models for sentence-transformers library.

Model tree for tomaarsen/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-plistmle-seeded

Finetuned
(81)
this model

Dataset used to train tomaarsen/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-plistmle-seeded

Evaluation results