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("Studeni/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-lambdaloss")
# 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.5106 (+0.0210) 0.3326 (+0.0716) 0.6406 (+0.2210)
mrr@10 0.5009 (+0.0234) 0.6001 (+0.1003) 0.6496 (+0.2229)
ndcg@10 0.5723 (+0.0319) 0.3769 (+0.0519) 0.6992 (+0.1985)

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.4946 (+0.1045)
mrr@10 0.5836 (+0.1155)
ndcg@10 0.5495 (+0.0941)

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: 32.93 characters
    • max: 95 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 does vegan mean ['A vegan, a person who practices veganism, is an individual who actively avoids the use of animal products for food, clothing or any other purpose. As with many diets and lifestyles, not all vegans approach animal product avoidance in the same ways. For example, some vegans completely avoid all animal by-products, while others consider it acceptable to use honey, silk, and other by-products produced from insects.', 'Fruitarian: Eats only raw fruit, including raw nuts and seeds. Vegan. Does not eat dairy products, eggs, or any other animal product. So in a nutshell, a vegetarian diet excludes flesh, but includes other animal products: A vegan diet is one that excludes all animal products. And I have to say that I have met very few vegans who stop with what they put in their mouths. ', 'Animal Ingredients and Their Alternatives. Adopting a vegan diet means saying “no” to cruelty to animals and environmental destruction and “yes” to compassion and good health. It also means paying attent... [1, 0, 0, 0, 0, ...]
    difference between viral and bacterial conjunctivitis symptoms ["Viral and bacterial conjunctivitis. Viral conjunctivitis and bacterial conjunctivitis may affect one or both eyes. Viral conjunctivitis usually produces a watery discharge. Bacterial conjunctivitis often produces a thicker, yellow-green discharge. Both types can be associated with colds or symptoms of a respiratory infection, such as a sore throat. Both viral and bacterial types are very contagious. They are spread through direct or indirect contact with the eye secretions of someone who's infected", 'A Honor Society of Nursing (STTI) answered. Viral and bacterial conjunctivitis are similar, but differ in several key ways. First, bacterial conjunctivitis can be cured with antibiotics, while the viral form cannot. Second, there is a slight variation in symptoms. With viral conjunctivitis, the discharge from the eye is clearer and less thick than with the bacterial infection. Viral conjunctivitis can also cause painful swelling in the lymph node nearest the ear, a symptom not experienc... [1, 0, 0, 0, 0, ...]
    can single member llc be taxed as s corp ['A single-member limited liability company, as a solely owned LLC is called, gives the owner a choice of how to be taxed -- as a sole proprietorship, an S corporation or a C corporation. The legal structure of the business itself doesn’t change with any of the choices. Under an S corporation classification, a single-member LLC needs to have a large enough profit in excess of the owner’s salary to realize any tax savings on passive income.', 'An S corp may own up to 100 percent of an LLC, or limited liability company. While all but single-member LLCs cannot be shareholders in S corporations, the reverse -- an S corporation owning an LLC -- is legal. The similarity of tax treatment for S corps and LLCs eliminates most of the common concerns about IRS issues. There is, however, one way for an LLC to own stock in an S corp. A single member LLC, taxed as a sole proprietorship, is called a disregarded entity by the IRS. Treated like an unincorporated individual, this LLC could own stock in ... [1, 0, 0, 0, 0, ...]
  • Loss: LambdaLoss with these parameters:
    {
        "weighing_scheme": "sentence_transformers.cross_encoder.losses.LambdaLoss.NDCGLoss2PPScheme",
        "k": null,
        "sigma": 1.0,
        "eps": 1e-10,
        "reduction": "mean",
        "reduction_log": "binary",
        "activation_fct": "torch.nn.modules.linear.Identity",
        "mini_batch_size": 16
    }
    

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: 11 characters
    • mean: 33.63 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
    define monogenic trait ['An allele is a version of a gene. For example, in fruitflies there is a gene which determines eye colour: one allele gives red eyes, and another gives white eyes; it is the same gene, just different versions of that gene. A monogenic trait is one which is encoded by a single gene. e.g. - cystic fibrosis in humans. There is a single gene which determines this trait: the wild-type allele is healthy, while the disease allele gives you cystic fibrosis', 'Abstract. Monogenic inheritance refers to genetic control of a phenotype or trait by a single gene. For a monogenic trait, mutations in one (dominant) or both (recessive) copies of the gene are sufficient for the trait to be expressed. Digenic inheritance refers to mutation on two genes interacting to cause a genetic phenotype or disease. Triallelic inheritance is a special case of digenic inheritance that requires homozygous mutations at one locus and heterozygous mutations at a second locus to express a phenotype.', 'A trait that is ... [1, 1, 0, 0, 0, ...]
    behavioral theory definition ["Not to be confused with Behavioralism. Behaviorism (or behaviourism) is an approach to psychology that focuses on an individual's behavior. It combines elements of philosophy, methodology, and psychological theory", 'The initial assumption is that behavior can be explained and further described using behavioral theories. For instance, John Watson and B.F. Skinner advocate the theory that behavior can be acquired through conditioning. Also known as general behavior theory. BEHAVIOR THEORY: Each behavioral theory is an advantage to learning, because it provides teachers with a new and different approach.. No related posts. ', 'behaviorism. noun be·hav·ior·ism. : a school of psychology that takes the objective evidence of behavior (as measured responses to stimuli) as the only concern of its research and the only basis of its theory without reference to conscious experience—compare cognitive psychology. : a school of psychology that takes the objective evidence of behavior (as measured ... [1, 0, 0, 0, 0, ...]
    What is a disease that is pleiotropic? ['Unsourced material may be challenged and removed. (September 2013). Pleiotropy occurs when one gene influences two or more seemingly unrelated phenotypic traits, an example being phenylketonuria, which is a human disease that affects multiple systems but is caused by one gene defect. Consequently, a mutation in a pleiotropic gene may have an effect on some or all traits simultaneously. The underlying mechanism is that the gene codes for a product that is, for example, used by various cells, or has a signaling function on various targets. A classic example of pleiotropy is the human disease phenylketonuria (PKU).', 'Pleiotropic, autosomal dominant disorder affecting connective tissue: Related Diseases. Pleiotropic, autosomal dominant disorder affecting connective tissue: Pleiotropic, autosomal dominant disorder affecting connective tissue is listed as a type of (or associated with) the following medical conditions in our database: 1 Heart conditions. Office of Rare Diseases (ORD) of ... [1, 0, 0, 0, 0, ...]
  • Loss: LambdaLoss with these parameters:
    {
        "weighing_scheme": "sentence_transformers.cross_encoder.losses.LambdaLoss.NDCGLoss2PPScheme",
        "k": null,
        "sigma": 1.0,
        "eps": 1e-10,
        "reduction": "mean",
        "reduction_log": "binary",
        "activation_fct": "torch.nn.modules.linear.Identity",
        "mini_batch_size": 16
    }
    

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.0267 (-0.5138) 0.1881 (-0.1369) 0.0425 (-0.4581) 0.0858 (-0.3696)
0.0002 1 1.5003 - - - - -
0.0508 250 1.5173 - - - - -
0.1016 500 1.4255 1.3098 0.4096 (-0.1309) 0.3601 (+0.0351) 0.4597 (-0.0410) 0.4098 (-0.0456)
0.1525 750 1.3298 - - - - -
0.2033 1000 1.2835 1.2014 0.4848 (-0.0557) 0.3687 (+0.0437) 0.5930 (+0.0923) 0.4822 (+0.0268)
0.2541 1250 1.2461 - - - - -
0.3049 1500 1.2354 1.1829 0.5271 (-0.0133) 0.3993 (+0.0743) 0.6625 (+0.1618) 0.5296 (+0.0743)
0.3558 1750 1.2299 - - - - -
0.4066 2000 1.1845 1.1524 0.5418 (+0.0014) 0.3775 (+0.0524) 0.6109 (+0.1102) 0.5100 (+0.0547)
0.4574 2250 1.206 - - - - -
0.5082 2500 1.1974 1.1547 0.5296 (-0.0108) 0.3833 (+0.0582) 0.6066 (+0.1060) 0.5065 (+0.0511)
0.5591 2750 1.1944 - - - - -
0.6099 3000 1.1741 1.1433 0.5723 (+0.0319) 0.3769 (+0.0519) 0.6992 (+0.1985) 0.5495 (+0.0941)
0.6607 3250 1.1792 - - - - -
0.7115 3500 1.1885 1.1333 0.5583 (+0.0179) 0.3450 (+0.0200) 0.6252 (+0.1245) 0.5095 (+0.0541)
0.7624 3750 1.1701 - - - - -
0.8132 4000 1.1832 1.1226 0.5510 (+0.0106) 0.3479 (+0.0229) 0.6318 (+0.1311) 0.5102 (+0.0549)
0.8640 4250 1.152 - - - - -
0.9148 4500 1.1526 1.1197 0.5669 (+0.0265) 0.3516 (+0.0266) 0.6085 (+0.1078) 0.5090 (+0.0536)
0.9656 4750 1.1707 - - - - -
-1 -1 - - 0.5723 (+0.0319) 0.3769 (+0.0519) 0.6992 (+0.1985) 0.5495 (+0.0941)
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.13
  • Sentence Transformers: 3.5.0.dev0
  • Transformers: 4.48.1
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.3.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",
}

LambdaLoss

@inproceedings{wang2018lambdaloss,
  title={The lambdaloss framework for ranking metric optimization},
  author={Wang, Xuanhui and Li, Cheng and Golbandi, Nadav and Bendersky, Michael and Najork, Marc},
  booktitle={Proceedings of the 27th ACM international conference on information and knowledge management},
  pages={1313--1322},
  year={2018}
}
Downloads last month
31
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-classification models for sentence-transformers library.

Model tree for milistu/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-lambdaloss

Finetuned
(55)
this model

Dataset used to train milistu/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-lambdaloss

Evaluation results